Commit 8a2f838b authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

add ConfigurableMixin and use it in SolverDecision.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@31373 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 62c1d224
...@@ -32,8 +32,9 @@ from AccessControl import ClassSecurityInfo ...@@ -32,8 +32,9 @@ from AccessControl import ClassSecurityInfo
from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getToolByName
from Products.ERP5Type import Permissions, PropertySheet, interfaces from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5Type.XMLObject import XMLObject from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5.mixin.configurable import ConfigurableMixin
class SolverDecision(XMLObject): class SolverDecision(ConfigurableMixin, XMLObject):
""" """
The goal of Solver Decision is to record the fact that The goal of Solver Decision is to record the fact that
"the user decided to solve a list of divergent delivery lines "the user decided to solve a list of divergent delivery lines
...@@ -76,6 +77,7 @@ class SolverDecision(XMLObject): ...@@ -76,6 +77,7 @@ class SolverDecision(XMLObject):
, PropertySheet.CategoryCore , PropertySheet.CategoryCore
, PropertySheet.DublinCore , PropertySheet.DublinCore
, PropertySheet.SolverSelection , PropertySheet.SolverSelection
, PropertySheet.Configurable
) )
# XXX-JPS missing property sheet or categories to specify # XXX-JPS missing property sheet or categories to specify
# (default)delivery or solver_application or order -> the object of application of resolution # (default)delivery or solver_application or order -> the object of application of resolution
......
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
import zope.interface
from AccessControl import ClassSecurityInfo
from Acquisition import aq_base
from Products.ERP5Type import Permissions, interfaces
from Products.ERP5Type.Globals import PersistentMapping
class ConfigurableMixin:
"""
This class provides a generic implementation of IConfigurable.
Iconfigurable provides methods to record configuration properties.
It is used by solver decisions and solvers, but could be used for
other purpose.
"""
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative interfaces
zope.interface.implements(interfaces.IConfigurable,)
security.declareProtected(Permissions.AccessContentsInformation,
'getConfigurationPropertyIdList')
def getConfigurationPropertyIdList(self):
"""
"""
return self.getConfigurationPropertyDict().keys()
security.declareProtected(Permissions.AccessContentsInformation,
'getConfigurationPropertyDict')
def getConfigurationPropertyDict(self):
"""
"""
if getattr(aq_base(self), '_configuration_property_dict', None) is None:
self._configuration_property_dict = PersistentMapping()
return self._configuration_property_dict
security.declareProtected(Permissions.ModifyPortalContent,
'updateConfiguration')
def updateConfiguration(self, **kw):
"""
"""
self.getConfigurationPropertyDict().update(kw)
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