Commit ea488e40 authored by Julien Muchembled's avatar Julien Muchembled

Variated -> VariatedMixin

git-svn-id: https://svn.erp5.org/repos/public/erp5/sandbox/amount_generator@39281 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 8ceef6bd
...@@ -82,7 +82,7 @@ variation_list = kwargs.get(\'variation_list\')\n ...@@ -82,7 +82,7 @@ variation_list = kwargs.get(\'variation_list\')\n
variation_text = \'\'\n variation_text = \'\'\n
\n \n
if variation_list is not None and len(variation_list) > 0:\n if variation_list is not None and len(variation_list) > 0:\n
# imitate behaviour from ERP5/Variated.py:getVariationText\n # imitate behaviour from VariatedMixin.getVariationText\n
# to create text\n # to create text\n
variation_list.sort()\n variation_list.sort()\n
variation_text = \'\\n\'.join(variation_list)\n variation_text = \'\\n\'.join(variation_list)\n
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
import zope.interface import zope.interface
from math import log from math import log
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5.Variated import Variated from Products.ERP5.mixin.variated import VariatedMixin
from Products.ERP5.VariationValue import VariationValue from Products.ERP5.VariationValue import VariationValue
from Products.ERP5Type import Permissions, PropertySheet, interfaces from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5Type.Base import Base from Products.ERP5Type.Base import Base
...@@ -41,7 +41,7 @@ from zLOG import LOG, ERROR ...@@ -41,7 +41,7 @@ from zLOG import LOG, ERROR
from warnings import warn from warnings import warn
class Amount(Base, Variated): class Amount(Base, VariatedMixin):
""" """
A mix-in class which provides some utilities A mix-in class which provides some utilities
(variations, conversions, etc.) (variations, conversions, etc.)
...@@ -61,8 +61,7 @@ class Amount(Base, Variated): ...@@ -61,8 +61,7 @@ class Amount(Base, Variated):
security.declareObjectProtected(Permissions.AccessContentsInformation) security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces # Declarative interfaces
zope.interface.implements(interfaces.IVariated, zope.interface.implements(interfaces.IAmount)
interfaces.IAmount)
property_sheets = ( PropertySheet.Base property_sheets = ( PropertySheet.Base
, PropertySheet.SimpleItem , PropertySheet.SimpleItem
...@@ -108,7 +107,7 @@ class Amount(Base, Variated): ...@@ -108,7 +107,7 @@ class Amount(Base, Variated):
current_category=None,**kw): current_category=None,**kw):
""" """
Returns the list of possible variations Returns the list of possible variations
XXX Copied and modified from Variated XXX Copied and modified from VariatedMixin
Result is left display. Result is left display.
""" """
variation_category_item_list = [] variation_category_item_list = []
...@@ -274,7 +273,7 @@ class Amount(Base, Variated): ...@@ -274,7 +273,7 @@ class Amount(Base, Variated):
result = resource.getVariationBaseCategoryList( result = resource.getVariationBaseCategoryList(
omit_optional_variation=omit_optional_variation) omit_optional_variation=omit_optional_variation)
else: else:
result = Variated.getVariationRangeBaseCategoryList(self) result = super(Amount, self).getVariationRangeBaseCategoryList()
return result return result
security.declareProtected(Permissions.AccessContentsInformation, security.declareProtected(Permissions.AccessContentsInformation,
......
...@@ -30,11 +30,10 @@ from AccessControl import ClassSecurityInfo ...@@ -30,11 +30,10 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5.Document.Predicate import Predicate from Products.ERP5.Document.Predicate import Predicate
from Products.ERP5.mixin.variated import VariatedMixin
from Products.ERP5.Variated import Variated
class Budget(Predicate, VariatedMixin):
class Budget(Predicate, Variated):
""" """
Budget means a kind of budget stock. Budget means a kind of budget stock.
""" """
......
...@@ -32,10 +32,10 @@ from AccessControl import ClassSecurityInfo ...@@ -32,10 +32,10 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.XMLMatrix import XMLMatrix from Products.ERP5Type.XMLMatrix import XMLMatrix
from Products.ERP5.Document.Predicate import Predicate from Products.ERP5.Document.Predicate import Predicate
from Products.ERP5.Variated import Variated from Products.ERP5.mixin.variated import VariatedMixin
class BudgetLine(Predicate, XMLMatrix, Variated): class BudgetLine(Predicate, XMLMatrix, VariatedMixin):
""" A Line of budget, variated in budget cells. """ A Line of budget, variated in budget cells.
""" """
......
...@@ -33,9 +33,10 @@ from AccessControl import ClassSecurityInfo ...@@ -33,9 +33,10 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.XMLObject import XMLObject from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5Type.XMLMatrix import XMLMatrix from Products.ERP5Type.XMLMatrix import XMLMatrix
from Products.ERP5.Variated import Variated from Products.ERP5.mixin.variated import VariatedMixin
class Consumption(XMLObject, XMLMatrix, Variated):
class Consumption(XMLObject, XMLMatrix, VariatedMixin):
""" """
A matrix which provides default quantities A matrix which provides default quantities
for a given quantity for a given quantity
...@@ -66,7 +67,7 @@ class Consumption(XMLObject, XMLMatrix, Variated): ...@@ -66,7 +67,7 @@ class Consumption(XMLObject, XMLMatrix, Variated):
self._setCategoryMembership(self.getVariationRangeBaseCategoryList(), self._setCategoryMembership(self.getVariationRangeBaseCategoryList(),
value, base=1) value, base=1)
# XXX Must use in futur this method, but it failed today # XXX Must use in futur this method, but it failed today
#Variated._setVariationCategoryList(self, value) #VariatedMixin._setVariationCategoryList(self, value)
# XXX FIXME: Use a interaction workflow instead # XXX FIXME: Use a interaction workflow instead
# Kept for compatibility. # Kept for compatibility.
self.updateCellRange(base_id='quantity') self.updateCellRange(base_id='quantity')
......
...@@ -35,11 +35,9 @@ from Products.ERP5Type.XMLMatrix import XMLMatrix ...@@ -35,11 +35,9 @@ from Products.ERP5Type.XMLMatrix import XMLMatrix
from Products.ERP5Type.XMLObject import XMLObject from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5.Document.Movement import Movement from Products.ERP5.Document.Movement import Movement
from Products.ERP5.Variated import Variated
from Products.ERP5.Document.ImmobilisationMovement import ImmobilisationMovement from Products.ERP5.Document.ImmobilisationMovement import ImmobilisationMovement
class DeliveryLine(Movement, XMLObject, XMLMatrix, Variated, class DeliveryLine(Movement, XMLObject, XMLMatrix, ImmobilisationMovement):
ImmobilisationMovement):
""" """
A DeliveryLine object allows to implement lines in A DeliveryLine object allows to implement lines in
Deliveries (packing list, order, invoice, etc.) Deliveries (packing list, order, invoice, etc.)
......
...@@ -38,14 +38,13 @@ from Products.ERP5Type.XMLMatrix import XMLMatrix ...@@ -38,14 +38,13 @@ from Products.ERP5Type.XMLMatrix import XMLMatrix
from Products.ERP5Type.Base import Base from Products.ERP5Type.Base import Base
from Products.ERP5Type.Utils import cartesianProduct from Products.ERP5Type.Utils import cartesianProduct
from Products.ERP5.mixin.variated import VariatedMixin
from Products.ERP5.Variated import Variated
from Products.CMFCategory.Renderer import Renderer from Products.CMFCategory.Renderer import Renderer
from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getToolByName
from zLOG import LOG, WARNING from zLOG import LOG, WARNING
class Resource(XMLMatrix, Variated): class Resource(XMLMatrix, VariatedMixin):
""" """
A Resource A Resource
""" """
...@@ -147,8 +146,8 @@ class Resource(XMLMatrix, Variated): ...@@ -147,8 +146,8 @@ class Resource(XMLMatrix, Variated):
other_base_category_dict.iteritems() if y == 1] other_base_category_dict.iteritems() if y == 1]
# Get category variation # Get category variation
if other_base_category_list: if other_base_category_list:
result.extend(Variated.getVariationRangeCategoryItemList( result.extend(super(Resource, self).getVariationRangeCategoryItemList(
self, base_category_list=other_base_category_list, base_category_list=other_base_category_list,
base=base, display_base_category=display_base_category, **kw)) base=base, display_base_category=display_base_category, **kw))
# Return result # Return result
return result return result
...@@ -187,7 +186,7 @@ class Resource(XMLMatrix, Variated): ...@@ -187,7 +186,7 @@ class Resource(XMLMatrix, Variated):
if not x in optional_bc_list] if not x in optional_bc_list]
result = Variated.getVariationCategoryItemList(self, result = super(Resource, self).getVariationCategoryItemList(
base_category_list=other_bc_list, base_category_list=other_bc_list,
display_base_category=display_base_category, display_base_category=display_base_category,
display_id=display_id, base=base, **kw) display_id=display_id, base=base, **kw)
......
...@@ -237,7 +237,7 @@ class Transformation(MappedValue, AmountGeneratorMixin, VariatedMixin): ...@@ -237,7 +237,7 @@ class Transformation(MappedValue, AmountGeneratorMixin, VariatedMixin):
**kw): **kw):
""" """
Returns the list of possible variations Returns the list of possible variations
XXX Copied and modified from Variated XXX Copied and modified from VariatedMixin
Result is left display. Result is left display.
""" """
variation_category_item_list = [] variation_category_item_list = []
......
This diff is collapsed.
...@@ -29,8 +29,7 @@ ...@@ -29,8 +29,7 @@
from Products.ERP5Type import interfaces from Products.ERP5Type import interfaces
from Products.ERP5Type.Context import Context from Products.ERP5Type.Context import Context
from Products.ERP5Type.Globals import InitializeClass from Products.ERP5Type.Globals import InitializeClass
from Products.ERP5.Variated import Variated from Products.ERP5.mixin.variated import VariatedMixin
from zope.interface import implements from zope.interface import implements
def newVariationValue(context=None, REQUEST=None, **kw): def newVariationValue(context=None, REQUEST=None, **kw):
...@@ -42,7 +41,7 @@ def newVariationValue(context=None, REQUEST=None, **kw): ...@@ -42,7 +41,7 @@ def newVariationValue(context=None, REQUEST=None, **kw):
else: else:
return context_obj return context_obj
class VariationValue(Context, Variated): class VariationValue(Context, VariatedMixin):
""" """
Embodies a variation value. Implements discrete variations. Embodies a variation value. Implements discrete variations.
""" """
......
...@@ -27,21 +27,16 @@ ...@@ -27,21 +27,16 @@
# #
############################################################################## ##############################################################################
from warnings import warn
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Products.ERP5Type.Globals import InitializeClass
from Products.CMFCore.utils import getToolByName
from Products.ERP5Type import Context, interfaces, Permissions
from Products.ERP5Type.Base import Base
from Products.CMFCategory.Renderer import Renderer from Products.CMFCategory.Renderer import Renderer
from Products.ERP5Type import interfaces, Permissions
import zope.interface
from warnings import warn
from zope.interface import implements
class VariatedMixin(Base): class VariatedMixin:
""" """
Variated is a mix-in class for all classes which implement Mix-in class for all classes which implement the Variated Interface.
the Variated Interface.
A Variable object is an object which can variate A Variable object is an object which can variate
according to multiple dimensions. Variable objects include: according to multiple dimensions. Variable objects include:
...@@ -59,7 +54,7 @@ class VariatedMixin(Base): ...@@ -59,7 +54,7 @@ class VariatedMixin(Base):
security = ClassSecurityInfo() security = ClassSecurityInfo()
# Declarative interfaces # Declarative interfaces
implements(interfaces.IVariated) zope.interface.implements(interfaces.IVariated)
security.declareProtected(Permissions.AccessContentsInformation, security.declareProtected(Permissions.AccessContentsInformation,
'getVariationBaseCategoryList') 'getVariationBaseCategoryList')
...@@ -345,7 +340,7 @@ class VariatedMixin(Base): ...@@ -345,7 +340,7 @@ class VariatedMixin(Base):
elif type(base_category_list) is type('a'): elif type(base_category_list) is type('a'):
base_category_list = (base_category_list, ) base_category_list = (base_category_list, )
traverse = getToolByName(self, 'portal_categories').unrestrictedTraverse traverse = self.getPortalObject().portal_categories.unrestrictedTraverse
# Render categories # Render categories
for base_category in base_category_list: for base_category in base_category_list:
result += getattr(traverse(base_category), display_method_id)( result += getattr(traverse(base_category), display_method_id)(
...@@ -359,15 +354,14 @@ class VariatedMixin(Base): ...@@ -359,15 +354,14 @@ class VariatedMixin(Base):
'getVariationRangeCategoryList') 'getVariationRangeCategoryList')
def getVariationRangeCategoryList(self, base_category_list=(), base=1, def getVariationRangeCategoryList(self, base_category_list=(), base=1,
root=1, current_category=None, root=1, current_category=None,
omit_individual_variation=0): omit_individual_variation=0, **kw):
""" """
Returns the range of acceptable categories Returns the range of acceptable categories
""" """
vrcil = self.getVariationRangeCategoryItemList( vrcil = self.getVariationRangeCategoryItemList(
base_category_list=base_category_list, base_category_list=base_category_list, base=base, root=root,
base=base, root=root, current_category=current_category,
current_category=current_category, omit_individual_variation=omit_individual_variation, **kw)
omit_individual_variation=omit_individual_variation)
# display is on left # display is on left
return [x[1] for x in vrcil] return [x[1] for x in vrcil]
...@@ -390,5 +384,3 @@ class VariatedMixin(Base): ...@@ -390,5 +384,3 @@ class VariatedMixin(Base):
category_list = list(self.getVariationCategoryList()) category_list = list(self.getVariationCategoryList())
category_list.sort() category_list.sort()
return '\n'.join(category_list) return '\n'.join(category_list)
InitializeClass(VariatedMixin)
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