[Erp5-report] r43833 seb - in /erp5/trunk/products/ERP5Type: ./ Core/ mixin/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Feb 28 22:51:31 CET 2011


Author: seb
Date: Mon Feb 28 22:51:31 2011
New Revision: 43833

URL: http://svn.erp5.org?rev=43833&view=rev
Log:
- stop doing strange things with setReference on properties
- use Reference Propertysheet instead of add reference property
  in another propertysheet

Modified:
    erp5/trunk/products/ERP5Type/Core/CategoryProperty.py
    erp5/trunk/products/ERP5Type/Core/StandardProperty.py
    erp5/trunk/products/ERP5Type/id_as_reference.py
    erp5/trunk/products/ERP5Type/mixin/constraint.py

Modified: erp5/trunk/products/ERP5Type/Core/CategoryProperty.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/CategoryProperty.py?rev=43833&r1=43832&r2=43833&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/CategoryProperty.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/CategoryProperty.py [utf8] Mon Feb 28 22:51:31 2011
@@ -48,7 +48,8 @@ class CategoryProperty(IdAsReferenceMixi
   security = ClassSecurityInfo()
   security.declareObjectProtected(Permissions.AccessContentsInformation)
 
-  property_sheets = (PropertySheet.SimpleItem,)
+  property_sheets = (PropertySheet.SimpleItem,
+                     PropertySheet.Reference)
 
   security.declareProtected(Permissions.AccessContentsInformation,
                             'exportToFilesystemDefinition')
@@ -66,7 +67,7 @@ class CategoryProperty(IdAsReferenceMixi
     Set the Reference from a filesystem definition of a property
     """
     return context.newContent(portal_type=cls.portal_type,
-                              reference=category_name)
+                              id=category_name + cls.getIdAsReferenceSuffix())
 
   getter_definition_dict = {
       # normal accessors

Modified: erp5/trunk/products/ERP5Type/Core/StandardProperty.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/StandardProperty.py?rev=43833&r1=43832&r2=43833&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/StandardProperty.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/StandardProperty.py [utf8] Mon Feb 28 22:51:31 2011
@@ -46,12 +46,12 @@ class StandardProperty(IdAsReferenceMixi
 
   property_sheets = (PropertySheet.SimpleItem,
                      PropertySheet.StandardProperty,
+                     PropertySheet.Reference,
                      PropertySheet.TranslatableProperty)
 
   # Names mapping between filesystem to ZODB property, only meaningful
   # when importing a property from its filesystem definition
-  _name_mapping_filesystem_to_zodb_dict = {'id': 'reference',
-                                           'type': 'elementary_type',
+  _name_mapping_filesystem_to_zodb_dict = {'type': 'elementary_type',
                                            'default': 'property_default'}
 
   # ZODB name of attributes whose value is a TALES Expression string
@@ -165,6 +165,10 @@ class StandardProperty(IdAsReferenceMixi
         value = isinstance(value, Expression) and \
             value.text or 'python: ' + repr(value)
 
+      # set correctly the id by following naming conventions
+      if zodb_property_name == 'id':
+        value += cls.getIdAsReferenceSuffix()
+
       zodb_property_dict[zodb_property_name] = value
 
     return zodb_property_dict

Modified: erp5/trunk/products/ERP5Type/id_as_reference.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/id_as_reference.py?rev=43833&r1=43832&r2=43833&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/id_as_reference.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/id_as_reference.py [utf8] Mon Feb 28 22:51:31 2011
@@ -61,7 +61,8 @@ def IdAsReferenceMixin(suffix):
             
     security.declareProtected(Permissions.AccessContentsInformation,
                               'getIdAsReferenceSuffix')
-    def getIdAsReferenceSuffix(self):
+    @staticmethod
+    def getIdAsReferenceSuffix():
       return suffix
 
     security.declareProtected(Permissions.AccessContentsInformation,
@@ -70,18 +71,6 @@ def IdAsReferenceMixin(suffix):
       id = self.id
       if id[suffix_index:] == suffix:
         return id[:suffix_index]
-      # BBB
-      reference = self.__dict__.get('default_reference')
-      if reference:
-        transaction.get().addBeforeCommitHook(self.__migrate)
-        return reference
-      return default
-
-    def _setReference(self, value):
-      self.__dict__.pop('default_reference', None) # BBB
-      self.setId(value + suffix)
-
-    security.declareProtected(Permissions.ModifyPortalContent, 'setReference')
-    setReference = _setReference
+      return self._baseGetReference(default=default)
 
   return IdAsReferenceMixin

Modified: erp5/trunk/products/ERP5Type/mixin/constraint.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/mixin/constraint.py?rev=43833&r1=43832&r2=43833&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/mixin/constraint.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/mixin/constraint.py [utf8] Mon Feb 28 22:51:31 2011
@@ -66,6 +66,7 @@ class ConstraintMixin(IdAsReferenceMixin
   implements( IConstraint, )
 
   property_sheets = (PropertySheet.SimpleItem,
+                     PropertySheet.Reference,
                      PropertySheet.Predicate)
 
   def _getMessage(self, message_id):
@@ -186,8 +187,9 @@ class ConstraintMixin(IdAsReferenceMixin
 
     base_constraint_definition_dict['portal_type'] = cls.portal_type
 
-    base_constraint_definition_dict['reference'] = \
-        filesystem_definition_copy_dict.pop('id')
+    base_constraint_definition_dict['id'] = \
+        filesystem_definition_copy_dict.pop('id') + \
+          cls.getIdAsReferenceSuffix()
 
     base_constraint_definition_dict['description'] = \
         filesystem_definition_copy_dict.pop('description', '')



More information about the Erp5-report mailing list