diff --git a/product/ERP5/Document/DeliveryLine.py b/product/ERP5/Document/DeliveryLine.py index 8f0dffd3b12d00df6cc29b985eacf63989acf813..4924dc1c6eae395e863e6289bef0aa2cad25c89d 100755 --- a/product/ERP5/Document/DeliveryLine.py +++ b/product/ERP5/Document/DeliveryLine.py @@ -38,6 +38,7 @@ from Products.ERP5Type.Base import Base from Products.ERP5.Document.Movement import Movement from Products.ERP5.Variated import Variated +from Products.CMFCategory.Renderer import Renderer from zLOG import LOG @@ -387,3 +388,73 @@ class DeliveryLine(Movement, XMLObject, XMLMatrix, Variated): parent = self.getParent() if parent is not None: parent.updateSimulationDeliveryProperties(movement_list, self) + + # XXX Copied + security.declareProtected(Permissions.AccessContentsInformation, \ + 'getVariationRangeCategoryItemList') + def getVariationRangeCategoryItemList(self): + """ + Returns possible variation category values for the + order line according to the default resource. + Possible category values is provided as a list of + tuples (id, title). This is mostly + useful in ERP5Form instances to generate selection + menus. + """ + resource = self.getResourceValue() + if resource != None: + result = resource.getVariationCategoryItemList( + omit_individual_variation=0) + else: + result = [] + return result + + security.declareProtected(Permissions.AccessContentsInformation, \ + 'getVariationRangeCategoryList') + def getVariationRangeCategoryList(self): + """ + Returns possible variation category values for the + order line according to the default resource. + """ + return [x[1] for x in self.getVariationRangeCategoryItemList()] + + # XXX Copied from Transformation + security.declareProtected(Permissions.AccessContentsInformation, 'getVariationCategoryItemList') + def getVariationCategoryItemList(self, base_category_list=(), base=1, + display_id='title', + current_category=None): + """ + Returns the list of possible variations + XXX Copied and modified from Variated + Result is left display. + """ + variation_category_item_list = [] + if base_category_list == (): + base_category_list = self.getVariationRangeBaseCategoryList() + + for base_category in base_category_list: + variation_category_list = self.getVariationCategoryList( + base_category_list=[base_category]) + + resource_list = [self.portal_categories.resolveCategory(x) for x in\ + variation_category_list] + category_list = [x for x in resource_list \ + if x.getPortalType() == 'Category'] + variation_category_item_list.extend(Renderer( + is_right_display=0, + display_base_category=1, + display_none_category=0, base=base, + current_category=current_category, + display_id='logical_path').\ + render(category_list)) + object_list = [x for x in resource_list \ + if x.getPortalType() != 'Category'] + variation_category_item_list.extend(Renderer( + is_right_display=0, + display_base_category=1, + base_category=base_category, + display_none_category=0, base=base, + current_category=current_category, + display_id=display_id).\ + render(object_list)) + return variation_category_item_list