[Erp5-report] r23471 - in /erp5/trunk/products: CMFActivity/ ERP5/ ERP5Type/
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Sep 8 07:07:23 CEST 2008
Author: vincent
Date: Mon Sep 8 07:07:23 2008
New Revision: 23471
URL: http://svn.erp5.org?rev=23471&view=rev
Log:
Add support for placeless default activate/reindex parameters.
* Add site-level accessors
* Modify existing getters to use placeless parameters as default values, context-sensitive parameters being given higher priority.
Modified:
erp5/trunk/products/CMFActivity/ActiveObject.py
erp5/trunk/products/ERP5/ERP5Site.py
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/CMFActivity/ActiveObject.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/ActiveObject.py?rev=23471&r1=23470&r2=23471&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/ActiveObject.py (original)
+++ erp5/trunk/products/CMFActivity/ActiveObject.py Mon Sep 8 07:07:23 2008
@@ -195,12 +195,28 @@
tv[key] = kw
security.declareProtected( permissions.View, 'getDefaultActivateParameterDict' )
- def getDefaultActivateParameterDict(self):
+ def getDefaultActivateParameterDict(self, inherit_placess=True):
# This method returns default activate parameters to self.
# The result can be either a dict object or None.
tv = getTransactionalVariable(self)
- key = ('default_activate_parameter', id(aq_base(self)))
- return tv.get(key)
+ if inherit_placess:
+ placeless = tv.get(('default_activate_parameter', ))
+ if placeless is not None:
+ placeless = placeless.copy()
+ else:
+ placeless = None
+ local = tv.get(('default_activate_parameter', id(aq_base(self))))
+ if local is None:
+ result = placeless
+ else:
+ if placeless is None:
+ result = local.copy()
+ else:
+ # local defaults takes precedence over placeless defaults.
+ result = {}
+ result.update(placeless)
+ result.update(local)
+ return result
def getActivityRuntimeEnvironment(self):
return getActivityRuntimeEnvironment()
Modified: erp5/trunk/products/ERP5/ERP5Site.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/ERP5Site.py?rev=23471&r1=23470&r2=23471&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/ERP5Site.py (original)
+++ erp5/trunk/products/ERP5/ERP5Site.py Mon Sep 8 07:07:23 2008
@@ -33,6 +33,7 @@
from Products.ERP5Type.Log import log as unrestrictedLog
from Products.CMFActivity.Errors import ActivityPendingError
import ERP5Defaults
+from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
from zLOG import LOG, INFO
from string import join
@@ -1093,6 +1094,40 @@
"Please use Products.ERP5Type.Log.log instead.",
DeprecationWarning)
unrestrictedLog(description, content = content, level = level)
+
+ security.declarePublic('setPlacelessDefaultReindexParameters')
+ def setPlacelessDefaultReindexParameters(self, **kw):
+ # This method sets the default keyword parameters to reindex. This is useful
+ # when you need to specify special parameters implicitly (e.g. to reindexObject).
+ # Those parameters will affect all reindex calls, not just ones on self.
+ tv = getTransactionalVariable(self)
+ key = ('default_reindex_parameter', )
+ tv[key] = kw
+
+ security.declarePublic('setPlacelessDefaultActivateParameters')
+ def setPlacelessDefaultActivateParameters(self, **kw):
+ # This method sets the default keyword parameters to activate. This is useful
+ # when you need to specify special parameters implicitly (e.g. to reindexObject).
+ # Those parameters will affect all activate calls, not just ones on self.
+ tv = getTransactionalVariable(self)
+ key = ('default_activate_parameter', )
+ tv[key] = kw
+
+ security.declarePublic('getPlacelessDefaultReindexParameters')
+ def getPlacelessDefaultReindexParameters(self):
+ # This method returns default reindex parameters to self.
+ # The result can be either a dict object or None.
+ tv = getTransactionalVariable(self)
+ key = ('default_reindex_parameter', )
+ return tv.get(key)
+
+ security.declarePublic('getPlacelessDefaultActivateParameters')
+ def getPlacelessDefaultActivateParameters(self):
+ # This method returns default activate parameters to self.
+ # The result can be either a dict object or None.
+ tv = getTransactionalVariable(self)
+ key = ('default_activate_parameter', )
+ return tv.get(key)
Globals.InitializeClass(ERP5Site)
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=23471&r1=23470&r2=23471&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Mon Sep 8 07:07:23 2008
@@ -3577,12 +3577,28 @@
tv[key] = kw
security.declareProtected(Permissions.View, 'getDefaultReindexParameterDict' )
- def getDefaultReindexParameterDict(self):
+ def getDefaultReindexParameterDict(self, inherit_placess=True):
# This method returns default reindex parameters to self.
# The result can be either a dict object or None.
tv = getTransactionalVariable(self)
- key = ('default_reindex_parameter', id(aq_base(self)))
- return tv.get(key)
+ if inherit_placess:
+ placeless = tv.get(('default_reindex_parameter', ))
+ if placeless is not None:
+ placeless = placeless.copy()
+ else:
+ placeless = None
+ local = tv.get(('default_reindex_parameter', id(aq_base(self))))
+ if local is None:
+ result = placeless
+ else:
+ if placeless is None:
+ result = local.copy()
+ else:
+ # local defaults takes precedence over placeless defaults.
+ result = {}
+ result.update(placeless)
+ result.update(local)
+ return result
security.declareProtected(Permissions.View, 'isItem' )
def isItem(self):
More information about the Erp5-report
mailing list