[Erp5-report] r42012 nicolas.dumazet - /erp5/trunk/products/ERP5Form/PreferenceTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jan 5 08:11:42 CET 2011
Author: nicolas.dumazet
Date: Wed Jan 5 08:11:42 2011
New Revision: 42012
URL: http://svn.erp5.org?rev=42012&view=rev
Log:
compatibility of preference system with zodb property sheets
Soon enough, all Preferences will be defined in property sheet tool, and
this code will not be needed anymore
Modified:
erp5/trunk/products/ERP5Form/PreferenceTool.py
Modified: erp5/trunk/products/ERP5Form/PreferenceTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/PreferenceTool.py?rev=42012&r1=42011&r2=42012&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/PreferenceTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/PreferenceTool.py [utf8] Wed Jan 5 08:11:42 2011
@@ -53,6 +53,8 @@ class Priority:
USER = 3
def updatePreferenceClassPropertySheetList():
+ # XXX obsolete, and now handled in dynamic.portal_type_class
+
from Products.ERP5Form.Document.Preference import Preference
# 'Static' property sheets defined on the class
class_property_sheet_list = Preference.property_sheets
@@ -61,7 +63,7 @@ def updatePreferenceClassPropertySheetLi
for id in dir(PropertySheet):
if id.endswith('Preference'):
ps = getattr(PropertySheet, id)
- if ps not in property_sheets:
+ if not isinstance(ps, basestring) and ps not in property_sheets:
property_sheets.append(ps)
class_property_sheet_list = tuple(property_sheets)
Preference.property_sheets = class_property_sheet_list
@@ -78,6 +80,17 @@ def createPreferenceToolAccessorList(por
"""
property_list = []
+ # 'Static' property sheets defined on the class
+ # The Preference class should be imported from the common location
+ # in ERP5Type since it could be overloaded in another product
+ from Products.ERP5Type.Document.Preference import Preference
+ for property_sheet in Preference.property_sheets:
+ if not isinstance(property_sheet, basestring):
+ property_list += property_sheet._properties
+
+ if not len(property_list):
+ return
+
# 'Dynamic' property sheets added by portal_type
pref_portal_type = portal.portal_types.getTypeInfo('Preference')
if pref_portal_type is None:
@@ -87,12 +100,6 @@ def createPreferenceToolAccessorList(por
pref_portal_type.updatePropertySheetDefinitionDict(
{'_properties': property_list})
- # 'Static' property sheets defined on the class
- # The Preference class should be imported from the common location
- # in ERP5Type since it could be overloaded in another product
- from Products.ERP5Type.Document.Preference import Preference
- for property_sheet in Preference.property_sheets:
- property_list += property_sheet._properties
# Generate common method names
for prop in property_list:
@@ -201,6 +208,8 @@ class PreferenceTool(BaseTool):
return default
def _aq_dynamic(self, id):
+ # XXX as soon as zodb property sheets are put everywhere, this can
+ # be safely deleted
base_value = PreferenceTool.inheritedAttribute('_aq_dynamic')(self, id)
if not PreferenceTool.aq_preference_generated:
updatePreferenceClassPropertySheetList()
More information about the Erp5-report
mailing list