[Erp5-report] r35108 jerome - in /erp5/trunk/products: ERP5Form/ ERP5Type/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri May 7 14:25:28 CEST 2010
Author: jerome
Date: Fri May 7 14:25:21 2010
New Revision: 35108
URL: http://svn.erp5.org?rev=35108&view=rev
Log:
generate preference tool accessors from preference tool itself
Modified:
erp5/trunk/products/ERP5Form/PreferenceTool.py
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/ERP5Form/PreferenceTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/PreferenceTool.py?rev=35108&r1=35107&r2=35108&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/PreferenceTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/PreferenceTool.py [utf8] Fri May 7 14:25:21 2010
@@ -158,6 +158,8 @@
allowed_types = ( 'ERP5 Preference',)
security = ClassSecurityInfo()
+ aq_preference_generated = False
+
security.declareProtected(
Permissions.ManagePortal, 'manage_overview' )
manage_overview = DTMLFile( 'explainPreferenceTool', _dtmldir )
@@ -186,6 +188,21 @@
if method is not None:
return method(default)
return default
+
+ def _aq_dynamic(self, id):
+ base_value = PreferenceTool.inheritedAttribute('_aq_dynamic')(self, id)
+ if not PreferenceTool.aq_preference_generated:
+ updatePreferenceClassPropertySheetList()
+
+ portal = self.getPortalObject()
+ while portal.portal_type != 'ERP5 Site':
+ portal = portal.aq_parent.aq_inner.getPortalObject()
+ createPreferenceToolAccessorList(portal)
+
+ PreferenceTool.aq_preference_generated = True
+ if base_value is None:
+ return getattr(self, id)
+ return base_value
security.declareProtected(Permissions.ModifyPortalContent, "setPreference")
def setPreference(self, pref_name, value) :
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=35108&r1=35107&r2=35108&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Base.py [utf8] Fri May 7 14:25:21 2010
@@ -293,7 +293,11 @@
Base.aq_method_generated = {}
Base.aq_portal_type = {}
Base.aq_related_generated = 0
- Base.aq_preference_generated = 0
+ try:
+ from Products.ERP5Form.PreferenceTool import PreferenceTool
+ PreferenceTool.aq_preference_generated = False
+ except ImportError:
+ LOG('ERP5Type', LOG, "ERP5Form.PreferenceTool not found")
# Some method generations are based on portal methods, and portal methods cache results.
# So it is safer to invalidate the cache.
@@ -760,9 +764,6 @@
aq_portal_type = {}
aq_related_generated = 0
- aq_preference_generated = 0
- # FIXME: Preference should not be included in ERP5Type
-
# Declarative security - in ERP5 we use AccessContentsInformation to
# define the right of accessing content properties as opposed
# to view which is the right to view the object with a form
@@ -961,20 +962,6 @@
generated_bid[bid] = 1
Base.aq_related_generated = 1
-
- # Generate preference methods (since side effect is to reset Preference accessors)
- # XXX-JPS - This should be moved to PreferenceTool
- if not Base.aq_preference_generated:
- try :
- from Products.ERP5Form.PreferenceTool import createPreferenceToolAccessorList
- from Products.ERP5Form.PreferenceTool import updatePreferenceClassPropertySheetList
- updatePreferenceClassPropertySheetList()
- createPreferenceToolAccessorList(portal)
- except ImportError, e :
- LOG('Base._aq_dynamic', WARNING,
- 'unable to create methods for PreferenceTool', e)
- raise
- Base.aq_preference_generated = 1
# Always try to return something after generation
if generated:
More information about the Erp5-report
mailing list