[Erp5-report] r43883 arnaud.fontaine - /erp5/trunk/products/ERP5Type/Core/CategoryProperty.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 2 12:00:11 CET 2011
Author: arnaud.fontaine
Date: Wed Mar 2 12:00:11 2011
New Revision: 43883
URL: http://svn.erp5.org?rev=43883&view=rev
Log:
Apply API changes on StandardProperty for per-document accessors
generation
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=43883&r1=43882&r2=43883&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/CategoryProperty.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/CategoryProperty.py [utf8] Wed Mar 2 12:00:11 2011
@@ -51,6 +51,7 @@ class CategoryProperty(IdAsReferenceMixi
property_sheets = (PropertySheet.SimpleItem,
PropertySheet.Reference)
+ # TODO: REMOVE
security.declareProtected(Permissions.AccessContentsInformation,
'exportToFilesystemDefinition')
def exportToFilesystemDefinition(self):
@@ -143,20 +144,22 @@ class CategoryProperty(IdAsReferenceMixi
}
@classmethod
- def applyPropertyOnAccessorHolder(cls,
- 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)
+ def applyDefinitionOnAccessorHolder(cls,
+ accessor_holder,
+ category_id,
+ portal):
+ try:
+ cat_object = portal.portal_categories._getOb(category_id)
+ except AttributeError:
+ if portal.hasObject('portal_categories'):
+ LOG("ERP5Type.Core.CategoryProperty", WARNING,
+ "Base Category %r is missing. Accessors can not be generated." % \
+ category_id)
return
+ except TypeError:
+ # category_id is None
+ raise ValueError("Invalid category reference")
# Create free text accessors.
# XXX These are only for backward compatibility.
@@ -171,11 +174,16 @@ class CategoryProperty(IdAsReferenceMixi
'property_default': '',
'multivalued': False,
'storage_id': storage_id,
+ 'range': False,
+ 'translatable': False,
+ 'description': 'free text to specify %s' % category_id,
'read_permission': Permissions.AccessContentsInformation,
'write_permission': Permissions.ModifyPortalContent}
- StandardProperty._applyOnAccessorHolder(property_dict, accessor_holder,
- category_tool.getPortalObject())
+ StandardProperty.applyDefinitionOnAccessorHolder(property_dict,
+ accessor_holder,
+ portal,
+ do_register=False)
# Get read and write permission
read_permission = Permissions.__dict__.get(cat_object.getReadPermission(),
@@ -226,8 +234,6 @@ class CategoryProperty(IdAsReferenceMixi
security.declareProtected(Permissions.AccessContentsInformation,
'applyOnAccessorHolder')
def applyOnAccessorHolder(self, accessor_holder, expression_context, portal):
- reference = self.getReference()
- if reference is not None:
- self.applyPropertyOnAccessorHolder(accessor_holder,
- reference,
- getattr(portal, 'portal_categories', None))
+ self.applyDefinitionOnAccessorHolder(accessor_holder,
+ self.getReference(),
+ portal)
More information about the Erp5-report
mailing list