[Erp5-report] r7466 - /erp5/trunk/products/ERP5Form/PreferenceTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue May 23 22:11:11 CEST 2006


Author: jerome
Date: Tue May 23 22:11:01 2006
New Revision: 7466

URL: http://svn.erp5.org?rev=7466&view=rev
Log:
remove old getPreference implementation to call preference method
accessor (whose results are cached)

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=7466&r1=7465&r2=7466&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/PreferenceTool.py (original)
+++ erp5/trunk/products/ERP5Form/PreferenceTool.py Tue May 23 22:11:01 2006
@@ -27,6 +27,7 @@
 ##############################################################################
 
 from AccessControl import ClassSecurityInfo, getSecurityManager
+from MethodObject import Method
 from Globals import InitializeClass, DTMLFile
 from zLOG import LOG, INFO, PROBLEM
 
@@ -40,7 +41,6 @@
 from Products.ERP5Form import _dtmldir
 from Products.ERP5Form.Document.Preference import Priority
 
-from MethodObject import Method
 
 class func_code: pass
 
@@ -89,6 +89,7 @@
     self._preference_name = attribute
 
   def __call__(self, instance, *args, **kw) :
+    # FIXME: Preference method doesn't support default parameter
     def _getPreference(user_name="") :
       found = 0
       MARKER = []
@@ -133,27 +134,10 @@
     BaseTool.inheritedAttribute('manage_afterAdd')(self, item, container)
 
   security.declareProtected(Permissions.View, "getPreference")
-  def getPreference(self, pref_name) :
+  def getPreference(self, pref_name, default=None) :
     """ get the preference on the most appopriate Preference object. """
-    LOG("PreferenceTool", PROBLEM, 'calling getPreference directly on the '+
-                                   'tool is deprecated, no caching happens !')
-    def _getPreference(pref_name="") :
-      found = 0
-      MARKER = []
-      for pref in self._getSortedPreferenceList() :
-        attr = getattr(pref, pref_name, MARKER)
-        if attr is not MARKER :
-          found = 1
-          # test the attr is set
-          if callable(attr) :
-            value = attr()
-          else :
-            value = attr
-          if value not in (None, '', (), []) :
-            return attr
-      if found :
-        return value
-    return _getPreference(pref_name=pref_name)
+    return getattr(self, 'get%s' %
+        convertToUpperCase(pref_name))(default=default)
 
   security.declareProtected(Permissions.ModifyPortalContent, "setPreference")
   def setPreference(self, pref_name, value) :




More information about the Erp5-report mailing list