Commit f854d4bc authored by Romain Courteaud's avatar Romain Courteaud

Move getVariationCategoryItemList & co from DeliveryLine.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3082 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent c2867bee
...@@ -34,6 +34,7 @@ from Products.ERP5Type.Base import Base ...@@ -34,6 +34,7 @@ from Products.ERP5Type.Base import Base
from Products.ERP5.VariationValue import VariationValue from Products.ERP5.VariationValue import VariationValue
from Products.ERP5.Variated import Variated from Products.ERP5.Variated import Variated
from Products.ERP5Type.Base import TempBase from Products.ERP5Type.Base import TempBase
from Products.CMFCategory.Renderer import Renderer
from zLOG import LOG from zLOG import LOG
...@@ -87,6 +88,47 @@ class Amount(Base, Variated): ...@@ -87,6 +88,47 @@ class Amount(Base, Variated):
result = self.getAcquiredCategoryMembershipList(variation_list, base = 1) result = self.getAcquiredCategoryMembershipList(variation_list, base = 1)
return result return result
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
security.declareProtected(Permissions.ModifyPortalContent, '_setVariationCategoryList') security.declareProtected(Permissions.ModifyPortalContent, '_setVariationCategoryList')
def _setVariationCategoryList(self, value): def _setVariationCategoryList(self, value):
result = [] result = []
...@@ -131,35 +173,38 @@ class Amount(Base, Variated): ...@@ -131,35 +173,38 @@ class Amount(Base, Variated):
self._setVariationValue(variation_value) self._setVariationValue(variation_value)
self.reindexObject() self.reindexObject()
security.declareProtected(Permissions.AccessContentsInformation, \
security.declareProtected(Permissions.AccessContentsInformation, 'getVariationRangeCategoryItemList')
'getVariationRangeCategoryItemList') def getVariationRangeCategoryItemList(self, base_category_list=(),
def getVariationRangeCategoryItemList(self, base_category_list = (), display_id='getTitle', base=1,
display_id='getTitle', base=1, current_category=None): current_category=None):
""" """
Returns possible category items for this amount ie. Returns possible variation category values for the
the variation of the resource (not the variation range) 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.
""" """
try: resource = self.getResourceValue()
return self.getDefaultResourceValue().getVariationCategoryItemList( if resource != None:
base_category_list, display_id=display_id, base=base, current_category=current_category) result = resource.getVariationCategoryItemList(
except: omit_individual_variation=0)
# FIXME: method_name vs. method_id, current_category vs. start_with_empty, etc. -yo else:
return self.portal_categories.getCategoryChildItemList(base=base, display_id=display_id) # return self.portal_categories.getCategoryChildItemList(
# base=base,
# display_id=display_id)
result = []
return result
security.declareProtected(Permissions.AccessContentsInformation, security.declareProtected(Permissions.AccessContentsInformation, \
'getVariationRangeCategoryList') 'getVariationRangeCategoryList')
def getVariationRangeCategoryList(self, base_category_list = (), base=1): def getVariationRangeCategoryList(self, base_category_list=(), base=1):
""" """
Returns possible categories for this amount ie. Returns possible variation category values for the
the variation of the resource (not the variation range) order line according to the default resource.
""" """
try: return [x[1] for x in self.getVariationRangeCategoryItemList()]
# FIXME: no base argument in getVariationCategoryList -yo
return self.getDefaultResourceValue().getVariationCategoryList(base_category_list=base_category_list)
except:
# FIXME: method_name vs. method_id, etc. -yo
return self.portal_categories.getCategoryChildList()
security.declareProtected(Permissions.AccessContentsInformation, security.declareProtected(Permissions.AccessContentsInformation,
'getVariationRangeBaseCategoryList') 'getVariationRangeBaseCategoryList')
...@@ -484,3 +529,4 @@ class Amount(Base, Variated): ...@@ -484,3 +529,4 @@ class Amount(Base, Variated):
def _setLostQuantity(self, value): def _setLostQuantity(self, value):
return self._setProfitQuantity(- value) return self._setProfitQuantity(- value)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment