[Erp5-report] r43334 arnaud.fontaine - /erp5/trunk/products/ERP5Type/Core/CategoryProperty.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 15 08:36:54 CET 2011


Author: arnaud.fontaine
Date: Tue Feb 15 08:36:54 2011
New Revision: 43334

URL: http://svn.erp5.org?rev=43334&view=rev
Log:
Do not try to generate accessors when either category tool is missing
(on bootstrap) or when the category could not be found

Modified:
    erp5/trunk/products/ERP5Type/Core/CategoryProperty.py

Modified: erp5/trunk/products/ERP5Type/Core/CategoryProperty.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/CategoryProperty.py?rev=43334&r1=43333&r2=43334&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/CategoryProperty.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/CategoryProperty.py [utf8] Tue Feb 15 08:36:54 2011
@@ -35,6 +35,7 @@ from Products.ERP5Type.Accessor import C
 from Products.ERP5Type.Utils import UpperCase
 
 from Products.ERP5Type.Core.StandardProperty import StandardProperty
+from zLOG import LOG, WARNING
 
 class CategoryProperty(XMLObject):
   """
@@ -150,6 +151,17 @@ class CategoryProperty(XMLObject):
                                     accessor_holder,
                                     category_id,
                                     category_tool):
+    if category_tool is None:
+      return
+
+    cat_object = category_tool.get(category_id, None)
+    if cat_object is None:
+      LOG("ERP5Type.Core.CategoryProperty", WARNING,
+          "Base Category %r is missing. Accessors can not be generated." % \
+          category_id)
+
+      return
+
     # Create free text accessors.
     # XXX These are only for backward compatibility.
     storage_id = None
@@ -160,6 +172,7 @@ class CategoryProperty(XMLObject):
 
     StandardProperty.applyPropertyOnAccessorHolder(
                       accessor_holder=accessor_holder,
+                      portal=category_tool,
                       reference='%s_free_text' % category_id,
                       elementary_type='text',
                       multivalued=False,
@@ -169,20 +182,10 @@ class CategoryProperty(XMLObject):
                       write_permission=Permissions.ModifyPortalContent)
 
     # Get read and write permission
-    if category_tool is not None:
-      cat_object = category_tool.get(category_id, None)
-    else:
-      cat_object = None
-    if cat_object is not None:
-      read_permission = Permissions.__dict__.get(
-                              cat_object.getReadPermission(),
-                              Permissions.AccessContentsInformation)
-      write_permission = Permissions.__dict__.get(
-                              cat_object.getWritePermission(),
-                              Permissions.ModifyPortalContent)
-    else:
-      read_permission = Permissions.AccessContentsInformation
-      write_permission = Permissions.ModifyPortalContent
+    read_permission = Permissions.__dict__.get(cat_object.getReadPermission(),
+                                               Permissions.AccessContentsInformation)
+    write_permission = Permissions.__dict__.get(cat_object.getWritePermission(),
+                                                Permissions.ModifyPortalContent)
 
     # Actually create accessors
     uppercase_reference = UpperCase(category_id)



More information about the Erp5-report mailing list