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