[Erp5-report] r15678 - in /erp5/trunk/products/ERP5Type: ./ Accessor/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Aug 15 19:31:11 CEST 2007


Author: jp
Date: Wed Aug 15 19:31:11 2007
New Revision: 15678

URL: http://svn.erp5.org?rev=15678&view=rev
Log:
A new accessor family is provided : Alias. The purpose of Alias accessors is to reduce the number of independent accessors and try to factorise accessors. With Aliases, overloading the default behaviour of aliases may become easier. For example, the method setFirstName will now invoke _setFirstName and then reindex. This way, an interaction method will only need to use _setFirstName  as trigger. If the user wants to overload _setFirstName , it becomes possible without having to overload setFirstName at the same time.

Added:
    erp5/trunk/products/ERP5Type/Accessor/Alias.py
Modified:
    erp5/trunk/products/ERP5Type/Accessor/Accessor.py
    erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py
    erp5/trunk/products/ERP5Type/Accessor/Base.py
    erp5/trunk/products/ERP5Type/Accessor/Category.py
    erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py
    erp5/trunk/products/ERP5Type/Accessor/List.py
    erp5/trunk/products/ERP5Type/Accessor/Value.py
    erp5/trunk/products/ERP5Type/Utils.py

Modified: erp5/trunk/products/ERP5Type/Accessor/Accessor.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Accessor.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Accessor.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Accessor.py Wed Aug 15 19:31:11 2007
@@ -50,15 +50,16 @@
 
     def dummy_copy(self, id):
       # Copy an accessor and change its id/name
-      #self.__call__ = None
-      #try:
-      #  clone_instance = self.__class__(*self.__getinitargs__())
-      #except:
-      #  LOG('dummy_copy', 0, '%r could not be generated with %r' % (id, self.__class__), error=sys.exc_info())
-      #  raise
       clone_instance = copy(self)
-      #delattr(self, '__call__')
-      #if hasattr(clone_instance, '__call__'):
-      #  delattr(clone_instance, '__call__')
       clone_instance.__name__ = id
       return clone_instance
+
+    def asAlias(self, id):
+      # Returns an alias
+      from Alias import Alias
+      return Alias(id, self.__name__)
+
+    def asReindexAlias(self, id):
+      # Returns a reindexing alias
+      from Alias import ReindexAlias
+      return ReindexAlias(id, self.__name__)

Modified: erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py Wed Aug 15 19:31:11 2007
@@ -25,6 +25,8 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 ##############################################################################
+
+import warnings
 
 from Base import func_code, type_definition, list_types, ATTRIBUTE_PREFIX, Method
 from Products.ERP5Type.PsycoWrapper import psyco
@@ -160,6 +162,9 @@
             portal_type=self._portal_type[0])
         instance._v_accessor_created_object = 1
       if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
         o.setProperty(self._acquired_property, value, *args, **kw)
       else:
         o._setProperty(self._acquired_property, value, *args, **kw)

Added: erp5/trunk/products/ERP5Type/Accessor/Alias.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Alias.py?rev=15678&view=auto
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Alias.py (added)
+++ erp5/trunk/products/ERP5Type/Accessor/Alias.py Wed Aug 15 19:31:11 2007
@@ -1,0 +1,81 @@
+##############################################################################
+#
+# Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.
+#                    Jean-Paul Smets-Solanes <jp at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability 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
+# garantees 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+from Accessor import Accessor as Method
+
+# Creation of default constructor
+class func_code: pass
+
+class Reindex(Method):
+    """
+      Calls a given accessor and reindexes the object.
+
+      TODO: reindex property may be removed on all accessors
+    """
+    _need__name__=1
+
+    # Generic Definition of Method Object
+    # This is required to call the method form the Web
+    # More information at http://www.zope.org/Members/htrd/howto/FunctionTemplate
+    func_code = func_code()
+    func_code.co_varnames = ('self',)
+    func_code.co_argcount = 1
+    func_defaults = ()
+
+    def __init__(self, id, accessor_id):
+      self._id = id
+      self.__name__ = id
+      self._accessor_id = accessor_id
+
+    def __call__(self, instance, *args, **kw):
+      method = getattr(instance, self._accessor_id)
+      method(*args, **kw)
+      instance.reindexObject()
+
+class Dummy(Reindex):
+    """
+      Calls a given accessor.
+    """
+    _need__name__=1
+
+    # Generic Definition of Method Object
+    # This is required to call the method form the Web
+    # More information at http://www.zope.org/Members/htrd/howto/FunctionTemplate
+    func_code = func_code()
+    func_code.co_varnames = ('self',)
+    func_code.co_argcount = 1
+    func_defaults = ()
+
+    def __init__(self, id, accessor_id):
+      self._id = id
+      self.__name__ = id
+      self._accessor_id = accessor_id
+
+    def __call__(self, instance, *args, **kw):
+      method = getattr(instance, self._accessor_id)
+      method(*args, **kw)

Modified: erp5/trunk/products/ERP5Type/Accessor/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Base.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Base.py Wed Aug 15 19:31:11 2007
@@ -25,6 +25,8 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 ##############################################################################
+
+import warnings
 
 from ZPublisher.HTTPRequest import FileUpload
 from TypeDefinition import type_definition, list_types, ATTRIBUTE_PREFIX
@@ -91,6 +93,9 @@
           setattr(instance, self._storage_id, self._cast(args[0]))
       else:
         # Call the private setter
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
         method = getattr(instance, '_' + self._id)
         method(*args, **kw)
       if self._reindex: instance.reindexObject() # XXX Should the Setter check
@@ -108,13 +113,13 @@
 
 class Getter(Method):
     """
-      Gets an attribute value. A default value can be provided if needed.
+    Gets an attribute value. A default value can be provided if needed.
 
     Note that 'default' argument is the first positional argument, this is
     important if you want to override a Getter in a class,  overloaded
     accessors have to respect this::
 
-      getSomething(self, [default], [name=value, [name=value], ])
+    getSomething(self, [default], [name=value, [name=value], ])
 
     """
     _need__name__=1

Modified: erp5/trunk/products/ERP5Type/Accessor/Category.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Category.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Category.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Category.py Wed Aug 15 19:31:11 2007
@@ -26,6 +26,8 @@
 #
 ##############################################################################
 
+import warnings
+
 from Base import func_code, type_definition, list_types, ATTRIBUTE_PREFIX, Method
 from zLOG import LOG
 from Products.ERP5Type.PsycoWrapper import psyco
@@ -56,7 +58,11 @@
                                       portal_type=kw.get('portal_type',()),
                                       base=kw.get('base', 0),
                                       keep_default=0)
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
 Setter = ListSetter
 
@@ -85,7 +91,11 @@
                                                  filter=kw.get('filter', None),
                                                  portal_type=kw.get('portal_type',()),
                                                  base=kw.get('base', 0))
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
 class SetSetter(Method):
     """
@@ -124,7 +134,11 @@
                                       portal_type=kw.get('portal_type',()),
                                       base=kw.get('base', 0),
                                       keep_default=1)
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
 
 class DefaultGetter(Method):

Modified: erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py Wed Aug 15 19:31:11 2007
@@ -25,6 +25,8 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 ##############################################################################
+
+import warnings
 
 from Base import func_code, type_definition, ATTRIBUTE_PREFIX, Method
 import Base
@@ -212,6 +214,9 @@
         if o is None: available_id = k
         if o is not None and o.portal_type in self._portal_type:
           if self._reindex:
+            warnings.warn("The reindexing accessors are deprecated.\n"
+                          "Please use Alias.Reindex instead.",
+                          DeprecationWarning)
             o.setProperty(self._acquired_property, *args, **kw)
           else:
             o._setProperty(self._acquired_property, *args, **kw)
@@ -222,6 +227,9 @@
                                 portal_type=self._portal_type[0])
         instance._v_accessor_created_object = 1
         if self._reindex:
+          warnings.warn("The reindexing accessors are deprecated.\n"
+                        "Please use Alias.Reindex instead.",
+                        DeprecationWarning)
           o.setProperty(self._acquired_property, *args, **kw)
         else:
           o._setProperty(self._acquired_property, *args, **kw)

Modified: erp5/trunk/products/ERP5Type/Accessor/List.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/List.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/List.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/List.py Wed Aug 15 19:31:11 2007
@@ -25,6 +25,8 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 ##############################################################################
+
+import warnings
 
 from Base import func_code, type_definition, list_types,\
                  ATTRIBUTE_PREFIX, Method, evaluateTales
@@ -90,6 +92,9 @@
           setattr(instance, self._storage_id, tuple(value))
       else:
         # Call the private setter
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
         method = getattr(instance, '_' + self._id)
         method(*args, **kw)
       if self._reindex: instance.reindexObject()
@@ -111,6 +116,9 @@
           setattr(instance, self._storage_id, tuple(value))
       else:
         # Call the private setter
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
         method = getattr(instance, '_' + self._id)
         method(*args, **kw)
 
@@ -182,6 +190,9 @@
           setattr(instance, self._storage_id, tuple(new_list_value))
       else:
         # Call the private setter
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
         method = getattr(instance, '_' + self._id)
         method(*args, **kw)
       if self._reindex: instance.reindexObject()

Modified: erp5/trunk/products/ERP5Type/Accessor/Value.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Value.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Value.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Value.py Wed Aug 15 19:31:11 2007
@@ -26,6 +26,8 @@
 #
 ##############################################################################
 
+import warnings
+
 from Base import func_code, type_definition, list_types, ATTRIBUTE_PREFIX, Method
 from zLOG import LOG
 from Products.ERP5Type.PsycoWrapper import psyco
@@ -53,7 +55,11 @@
                                                  filter=kw.get('filter', None),
                                                  portal_type=kw.get('portal_type',()),
                                                  keep_default=1)
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
     psyco.bind(__call__)
 
@@ -71,7 +77,11 @@
                                                  filter=kw.get('filter', None),
                                                  portal_type=kw.get('portal_type',()),
                                                  keep_default=0)
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
     psyco.bind(__call__)
 
@@ -90,7 +100,11 @@
                                                  spec=kw.get('spec',()),
                                                  filter=kw.get('filter', None),
                                                  portal_type=kw.get('portal_type',()))
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
     psyco.bind(__call__)
 
@@ -447,7 +461,11 @@
                                                  filter=kw.get('filter', None),
                                                  portal_type=kw.get('portal_type',()),
                                                  keep_default=1)
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
 class UidListSetter(UidSetSetter):
     """
@@ -463,7 +481,11 @@
                                                  filter=kw.get('filter', None),
                                                  portal_type=kw.get('portal_type',()),
                                                  keep_default=0)
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
 UidSetter = UidListSetter
 
@@ -480,7 +502,11 @@
                                                  spec=kw.get('spec',()),
                                                  filter=kw.get('filter', None),
                                                  portal_type=kw.get('portal_type',()))
-      if self._reindex: instance.reindexObject()
+      if self._reindex:
+        warnings.warn("The reindexing accessors are deprecated.\n"
+                      "Please use Alias.Reindex instead.",
+                      DeprecationWarning)
+        instance.reindexObject()
 
 class DefaultIdGetter(Method):
     """

Modified: erp5/trunk/products/ERP5Type/Utils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Utils.py?rev=15678&r1=15677&r2=15678&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Utils.py (original)
+++ erp5/trunk/products/ERP5Type/Utils.py Wed Aug 15 19:31:11 2007
@@ -1397,7 +1397,8 @@
 
 from Base import Base as BaseClass
 from Accessor import Base, List, Acquired, Content,\
-                     AcquiredProperty, ContentProperty
+                     AcquiredProperty, ContentProperty, \
+                     Alias
 import types
 
 # Compile accessors
@@ -1589,7 +1590,7 @@
                 reindex = 1
                 )
           if not hasattr(property_holder, accessor_name) or prop.get('override',0):
-            setattr(property_holder, accessor_name, base_accessor)
+            setattr(property_holder, accessor_name, Alias.Reindex(accessor_name, '_' + accessor_name))
             property_holder.security.declareProtected( write_permission, accessor_name )
           accessor_name = '_set' + UpperCase(composed_id)
           if not hasattr(property_holder, accessor_name) or prop.get('override',0):
@@ -1617,7 +1618,7 @@
                 reindex = 1
                 )
           if not hasattr(property_holder, accessor_name) or prop.get('override',0):
-            setattr(property_holder, accessor_name, base_accessor)
+            setattr(property_holder, accessor_name, Alias.Reindex(accessor_name, '_' + accessor_name))
             property_holder.security.declareProtected( write_permission, accessor_name )
           accessor_name = '_setDefault' + UpperCase(composed_id)
           if not hasattr(property_holder, accessor_name) or prop.get('override',0):
@@ -1780,16 +1781,12 @@
             setattr(property_holder, accessor_name, base_accessor)
             property_holder.security.declareProtected( write_permission, accessor_name )
           accessor_name = 'set' + UpperCase(composed_id)
-          base_accessor = ContentProperty.Setter(accessor_name, composed_id, prop['type'], aq_id,
-                  portal_type = prop.get('portal_type'), storage_id = prop.get('storage_id'), reindex=1)
           if not hasattr(property_holder, accessor_name) or prop.get('override',0):
-            setattr(property_holder, accessor_name, base_accessor)
+            setattr(property_holder, accessor_name, Alias.Reindex(accessor_name, '_' + accessor_name))
             property_holder.security.declareProtected( write_permission, accessor_name )
           accessor_name = 'set' + UpperCase(composed_id) + 'List'
-          base_accessor = ContentProperty.Setter(accessor_name, composed_id + '_list', prop['type'], aq_id + '_list',
-                  portal_type = prop.get('portal_type'), storage_id = prop.get('storage_id'), reindex=1)
           if not hasattr(property_holder, accessor_name) or prop.get('override',0):
-            setattr(property_holder, accessor_name, base_accessor)
+            setattr(property_holder, accessor_name, Alias.Reindex(accessor_name, '_' + accessor_name))
             property_holder.security.declareProtected( write_permission, accessor_name )
           # No default getter YET XXXXXXXXXXXXXX
           # No list getter YET XXXXXXXXXXXXXX
@@ -1809,40 +1806,22 @@
   ######################################################
   # Create Setters
   if prop['type'] in list_types or prop.get('multivalued', 0):
-    # Create setters for a list property (reindexing)
-    # The base accessor sets the list to a singleton
-    # and allows simulates a simple property
-    setter_name = 'set' + UpperCase(id)
-    base_setter = List.Setter(setter_name, id, prop['type'], reindex=1,
-                                                 storage_id = prop.get('storage_id'))
-    # The default setter sets the first item of a list without changing other items
-    setter_name = 'setDefault' + UpperCase(id)
-    default_setter = List.DefaultSetter(setter_name, id, prop['type'], reindex=1,
-                                                 storage_id = prop.get('storage_id'))
-    # The list setter sets the whole list
-    setter_name = 'set' + UpperCase(id) + 'List'
-    list_setter = List.ListSetter(setter_name, id, prop['type'], reindex=1,
-                                                 storage_id = prop.get('storage_id'))
-    # The list setter sets the whole list
-    setter_name = 'set' + UpperCase(id) + 'Set'
-    set_setter = List.SetSetter(setter_name, id, prop['type'], reindex=1,
-                                                 storage_id = prop.get('storage_id'))
-    # Create setters for a list property
+    # Create setters for a list property by aliasing
     setter_name = 'set' + UpperCase(id)
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, base_setter)
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     setter_name = 'setDefault' + UpperCase(id)
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, default_setter)
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     setter_name = 'set' + UpperCase(id) + 'List'
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, list_setter)
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     setter_name = 'set' + UpperCase(id) + 'Set'
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, set_setter)
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     # Create setters for a list property (no reindexing)
     # The base accessor sets the list to a singleton
@@ -1892,29 +1871,25 @@
     # Create setters for a list property (reindexing)
     # The base accessor sets the list to a singleton
     # and allows simulates a simple property
-    setter_name = 'set' + UpperCase(id)
-    base_setter = Content.Setter(setter_name, id, prop['type'], reindex=1,
-             storage_id = prop.get('storage_id'))
+    base_setter_name = 'set' + UpperCase(id)
     # The default setter sets the first item of a list without changing other items
-    setter_name = 'setDefault' + UpperCase(id)
-    default_setter =  Content.DefaultSetter(setter_name, id, prop['type'], reindex=1,
-             storage_id = prop.get('storage_id'))
+    default_setter_name = 'setDefault' + UpperCase(id)
     # Create setters for an object property
     setter_name = 'set' + UpperCase(id)
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, base_setter.dummy_copy(setter_name))
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + base_setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     setter_name = 'setDefault' + UpperCase(id)
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, default_setter.dummy_copy(setter_name))
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + default_setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     setter_name = 'set' + UpperCase(id) + 'Value'
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, base_setter.dummy_copy(setter_name))
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + base_setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     setter_name = 'setDefault' + UpperCase(id) + 'Value'
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, default_setter.dummy_copy(setter_name))
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + default_setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     # Create setters for a list property (no reindexing)
     # The base accessor sets the list to a singleton
@@ -1954,10 +1929,8 @@
   else:
     # Create setters for a simple property
     setter_name = 'set' + UpperCase(id)
-    setter = Base.Setter(setter_name, id, prop['type'], reindex=1,
-                                                 storage_id = prop.get('storage_id'))
     if not hasattr(property_holder, setter_name):
-      setattr(property_holder, setter_name, setter)
+      setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
       property_holder.security.declareProtected(write_permission, setter_name)
     setter_name = '_set' + UpperCase(id)
     setter = Base.Setter(setter_name, id, prop['type'], reindex=0,
@@ -2070,21 +2043,18 @@
     setattr(property_holder, accessor_name, accessor.dummy_copy(accessor_name))
 
   setter_name = 'set' + UpperCase(id)
-  setter = Category.Setter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'set' + UpperCase(id) + 'List'
-  setter = Category.ListSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'setDefault' + UpperCase(id)
-  setter = Category.DefaultSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = '_set' + UpperCase(id)
@@ -2112,7 +2082,7 @@
     setattr(property_holder, setter_name, setter.dummy_copy(setter_name))
   setter_name = 'set' + UpperCase(id) + 'Set'
   if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter.dummy_copy(setter_name))
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = '_setDefault' + UpperCase(id)
@@ -2434,27 +2404,23 @@
     setattr(property_holder, accessor_name, accessor.dummy_copy(accessor_name))
 
   setter_name = 'set' + UpperCase(id) + 'Value'
-  setter = Value.Setter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'set' + UpperCase(id) + 'ValueList'
-  setter = Value.ListSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'set' + UpperCase(id) + 'ValueSet'
-  setter = Value.SetSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'setDefault' + UpperCase(id) + 'Value'
-  setter = Value.DefaultSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = '_set' + UpperCase(id) + 'Value'
@@ -2499,27 +2465,23 @@
 
   # Uid setters
   setter_name = 'set' + UpperCase(id) + 'Uid'
-  setter = Value.UidSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'setDefault' + UpperCase(id) + 'Uid'
-  setter = Value.UidDefaultSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'set' + UpperCase(id) + 'UidList'
-  setter = Value.UidListSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = 'set' + UpperCase(id) + 'UidSet'
-  setter = Value.UidSetSetter(setter_name, id, reindex=1)
-  if not hasattr(property_holder, setter_name):
-    setattr(property_holder, setter_name, setter)
+  if not hasattr(property_holder, setter_name):
+    setattr(property_holder, setter_name, Alias.Reindex(setter_name, '_' + setter_name))
     property_holder.security.declareProtected(write_permission, setter_name)
 
   setter_name = '_set' + UpperCase(id) + 'Uid'




More information about the Erp5-report mailing list