[Erp5-report] r43895 arnaud.fontaine - /erp5/trunk/products/ERP5Type/Utils.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 2 13:25:28 CET 2011
Author: arnaud.fontaine
Date: Wed Mar 2 13:25:27 2011
New Revision: 43895
URL: http://svn.erp5.org?rev=43895&view=rev
Log:
Following r43892, accessors generation is not performed through Utils
anymore, so get rid of the code related to accessors generation in
Utils
Modified:
erp5/trunk/products/ERP5Type/Utils.py
Modified: erp5/trunk/products/ERP5Type/Utils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Utils.py?rev=43895&r1=43894&r2=43895&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Utils.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Utils.py [utf8] Wed Mar 2 13:25:27 2011
@@ -1206,26 +1206,6 @@ def initializeProduct( context,
permission = permission,
icon = icon)
-class ConstraintNotFound(Exception):
- pass
-
-def createConstraintList(property_holder, constraint_definition):
- """
- This function creates constraint instances for a class
- and a property
-
- constraint_definition -- the constraint with all attributes
- """
- from Products.ERP5Type import Constraint
- try:
- consistency_class = getattr(Constraint, constraint_definition['type'])
- except AttributeError:
- LOG("ERP5Type", PROBLEM, "Can not find Constraint: %s" \
- % constraint_definition['type'], error=sys.exc_info())
- raise ConstraintNotFound(repr(constraint_definition))
- consistency_instance = consistency_class(**constraint_definition)
- property_holder.constraints += [consistency_instance]
-
#####################################################
# Constructor initialization
#####################################################
@@ -1300,1654 +1280,6 @@ def createExpressionContext(object, port
tv[cache_key] = ec
return ec
-def getExistingBaseCategoryList(portal, base_cat_list):
- cache = getReadOnlyTransactionCache()
- if cache is None:
- cache = getTransactionalVariable()
- category_tool = getattr(portal, 'portal_categories', None)
- if category_tool is None:
- # most likely, accessor generation when bootstrapping a site
- if not getattr(portal, '_v_bootstrapping', False):
- warnings.warn("Category Tool is missing. Accessors can not be generated.")
- return ()
-
- new_base_cat_list = []
- for base_cat in base_cat_list:
- if base_cat is None:
- # a Dynamic Category Property specifies a TALES Expression which
- # may return a list containing None, so just skip it
- continue
-
- key = (base_cat,)
- try:
- value = cache[key]
- except KeyError:
- value = category_tool._getOb(base_cat, None)
- if value is None:
- warnings.warn("Base Category %r is missing."
- " Accessors can not be generated." % base_cat, Warning)
- cache[key] = value
- if value is not None:
- new_base_cat_list.append(base_cat)
- return tuple(new_base_cat_list)
-
-def createRelatedAccessors(portal_categories, property_holder, econtext,
- base_category_list=None):
- if base_category_list is None:
- base_category_list = []
- # first extend the Tales category definitions into base_category_list
- for cat in base_category_dict:
- if isinstance(cat, Expression):
- result = cat(econtext)
- if isinstance(result, (list, tuple)):
- base_category_list.extend(result)
- else:
- base_category_list.append(result)
- else:
- base_category_list.append(cat)
-
- for cat in base_category_list:
- # Get read and write permission
- cat_object = portal_categories.get(cat, None)
- if cat_object is not None:
- read_permission = Permissions.__dict__.get(
- cat_object.getReadPermission(),
- Permissions.AccessContentsInformation)
- if isinstance(read_permission, Expression):
- read_permission = read_permission(econtext)
- else:
- read_permission = Permissions.AccessContentsInformation
- # Actually create accessors
- createRelatedValueAccessors(property_holder, cat, read_permission=read_permission)
- # Unnecessary to create these accessors more than once.
- base_category_dict.clear()
-
-
-def createAllCategoryAccessors(portal, property_holder, cat_list, econtext):
- if portal is not None:
- portal_categories = getattr(portal, 'portal_categories', None)
- else:
- portal_categories = None
- for cat in cat_list:
- # Create free text accessors.
- prop = {
- 'id' : '%s_free_text' % cat,
- 'description': 'free text to specify %s' % cat,
- 'type' : 'text',
- 'default' : '',
- 'mode' : 'w'
- }
- # XXX These are only for backward compatibility.
- if cat == 'group':
- prop['storage_id'] = 'group'
- elif cat == 'site':
- prop['storage_id'] = 'location'
- createDefaultAccessors(
- property_holder,
- prop['id'],
- prop=prop,
- read_permission=Permissions.AccessContentsInformation,
- write_permission=Permissions.ModifyPortalContent,
- portal=portal)
-
- # Get read and write permission
- if portal_categories is not None:
- cat_object = portal_categories.get(cat, None)
- else:
- cat_object = None
- if cat_object is not None:
- read_permission = Permissions.__dict__.get(
- cat_object.getReadPermission(),
- Permissions.AccessContentsInformation)
- if isinstance(read_permission, Expression):
- read_permission = read_permission(econtext)
- write_permission = Permissions.__dict__.get(
- cat_object.getWritePermission(),
- Permissions.ModifyPortalContent)
- if isinstance(write_permission, Expression):
- write_permission = write_permission(econtext)
- else:
- read_permission = Permissions.AccessContentsInformation
- write_permission = Permissions.ModifyPortalContent
- # Actualy create accessors
- createCategoryAccessors(property_holder, cat,
- read_permission=read_permission, write_permission=write_permission)
- createValueAccessors(property_holder, cat,
- read_permission=read_permission, write_permission=write_permission)
-
-default_translation_property_dict = {
- 'id' : 'translation_domain',
- 'description' : '',
- 'default' : '',
- 'type' : 'string',
- 'mode' : 'w',
-}
-def setDefaultProperties(property_holder, object=None, portal=None):
- """
- This methods sets default accessors for this object as well
- as consistency checkers, based on the definition
- stored in PropertySheet objects.
-
- Accessors include
-
- - attribute accessors (ie. a string, float value stored by the object)
-
- - category accessors (ie. a membership of an object to a category)
-
- - relation accessors (ie. a kind of membership where the category
- instance is content)
-
- - programmable acquisition acessors (ie. attribute accessors which
- are based on relations)
-
- Consistency checkers are intended to check the content consistency
- (ex. ariry of a relation) as well as fix content consistency
- through a default consistency fixing method.
-
- Set default attributes in current object for all properties in '_properties'
- """
- econtext = createExpressionContext(object, portal)
- # First build the property list from the property sheet
- # and the class properties
- prop_list = []
- # Do not consider superclass _properties definition
- for prop in property_holder.__dict__.get('_properties', []):
- # Copy the dict so that Expression objects are not overwritten.
- prop_list.append(prop.copy())
- # Do not consider superclass _categories definition
- cat_list = property_holder.__dict__.get('_categories', [])
- # a list of declarative consistency definitions (ie. constraints)
- # Do not consider superclass _constraints definition
- constraint_list = property_holder.__dict__.get('_constraints', [])
-
- # Evaluate TALES expressions.
- for prop in prop_list:
- for key,value in prop.items():
- if isinstance(value, Expression):
- prop[key] = value(econtext)
- new_cat_list = []
- for cat in cat_list:
- if isinstance(cat, Expression):
- result = cat(econtext)
- if isinstance(result, (tuple, list)):
- new_cat_list.extend(result)
- else:
- new_cat_list.append(result)
- else:
- new_cat_list.append(cat)
- cat_list = getExistingBaseCategoryList(portal, new_cat_list)
-
- from Products.ERP5Type.mixin.constraint import ConstraintMixin
- for const in constraint_list:
- if isinstance(const, ConstraintMixin):
- continue
- for key, value in const.items():
- if isinstance(value, Expression):
- const[key] = value(econtext)
-
- # Store ERP5 properties on specific attributes
- property_holder._erp5_properties = tuple(prop_list)
-
- # Create default accessors for property sheets
- converted_prop_list = []
- converted_prop_set = set()
- for prop in prop_list:
- if prop['type'] not in type_definition:
- LOG("ERP5Type.Utils", INFO,
- "Invalid type '%s' of property '%s' for Property Sheet '%s'" % \
- (prop['type'], prop['id'], property_holder.__name__))
- continue
-
- read_permission = prop.get('read_permission',
- Permissions.AccessContentsInformation)
- if isinstance(read_permission, Expression):
- read_permission = read_permission(econtext)
- write_permission = prop.get('write_permission',
- Permissions.ModifyPortalContent)
- if isinstance(write_permission, Expression):
- write_permission = write_permission(econtext)
-
- if 'base_id' in prop:
- continue
- if prop['id'] not in converted_prop_set:
- if prop['type'] != 'content':
- converted_prop_list.append(prop)
- converted_prop_set.add(prop['id'])
-
- # Create range accessors, if this has a range.
- if prop.get('range', 0):
- for value in ('min', 'max'):
- range_prop = prop.copy()
- del range_prop['range']
- range_prop.pop('storage_id', None)
- if range_prop.get('acquisition_accessor_id', 0):
- range_prop['acquisition_accessor_id'] = '%sRange%s' % (
- range_prop['acquisition_accessor_id'], value.capitalize())
- range_prop['alt_accessor_id'] = (
- 'get' + convertToUpperCase(prop['id']),)
- createDefaultAccessors(
- property_holder,
- '%s_range_%s' % (prop['id'], value),
- prop=range_prop,
- read_permission=read_permission,
- write_permission=write_permission,
- portal=portal)
-
- # Create translation accesor, if translatable is set
- if prop.get('translatable', 0):
- # make accessors like getTranslatedProperty
- createTranslationAccessors(
- property_holder,
- 'translated_%s' % (prop['id']),
- prop,
- read_permission=read_permission,
- write_permission=write_permission)
- createTranslationLanguageAccessors(
- property_holder,
- prop,
- read_permission=read_permission,
- write_permission=write_permission,
- portal=portal)
- # make accessor to translation_domain
- # first create default one as a normal property
- accessor_id = '%s_translation_domain' % prop['id']
- createDefaultAccessors(
- property_holder,
- accessor_id,
- prop=default_translation_property_dict,
- read_permission=read_permission,
- write_permission=write_permission,
- portal=portal)
- # then overload accesors getPropertyTranslationDomain
- default = prop.get('translation_domain', '')
- createTranslationAccessors(
- property_holder,
- accessor_id,
- prop,
- read_permission=read_permission,
- write_permission=write_permission,
- default=default)
- createDefaultAccessors(
- property_holder,
- prop['id'],
- prop=prop,
- read_permission=read_permission,
- write_permission=write_permission,
- portal=portal)
- # Create Category Accessors
- createAllCategoryAccessors(portal, property_holder, cat_list, econtext)
-
- property_holder.constraints = []
- for constraint in constraint_list:
- # ZODB Property Sheets constraints are no longer defined by a
- # dictionary but by a ConstraintMixin, thus just append it to
- # the list of constraints
- if isinstance(constraint, ConstraintMixin):
- property_holder.constraints.append(constraint)
- else:
- createConstraintList(property_holder, constraint_definition=constraint)
-
- # ERP5 _properties and Zope _properties are somehow different
- # The id is converted to the Zope standard - we keep the original id
- # as base_id
- new_converted_prop_list = []
- for prop in converted_prop_list:
- new_prop = prop.copy()
- if prop['type'] in list_types or prop.get('multivalued', 0):
- # Display as list
- if not prop.get('base_id', None):
- new_prop['base_id'] = prop['id']
- new_prop['id'] = prop['id'] + '_list'
- if prop.get('acquisition_base_category') is not None \
- and not prop.get('acquisition_copy_value'):
- # Set acquisition values as read only if no value is copied
- new_prop['mode'] = 'r'
- new_converted_prop_list.append(new_prop)
- # Set the properties of the class
- property_holder._properties = tuple(new_converted_prop_list)
- property_holder._categories = tuple(cat_list)
- property_holder._constraints = tuple(constraint_list)
- # And the default values - default values are needed
- # for historical reasons : many objects have a default
- # value defines at the class level. The use of None
- # allows to create the equivalent of NULL values
- # - new - XXX
- # We remove such properties here
- #from Base import Base as BaseClass
- for prop in converted_prop_list:
- if prop['type'] not in type_definition:
- raise TypeError, '"%s" is invalid type for propertysheet' % \
- prop['type']
- #if not hasattr(property_holder, prop['id']):
- # setattr(property_holder, prop['id'], None) # This makes sure no acquisition will happen
- # but is wrong when we use storage_id .....
- #storage_id = prop.get('storage_id', prop['id'])
- #if not hasattr(BaseClass, storage_id):
- # setattr(property_holder, storage_id, None) # This breaks things with aq_dynamic
- #setattr(BaseClass, storage_id, None) # This blocks acquisition
- #else:
- #LOG('existing property',0,str(storage_id))
- #if prop.get('default') is not None:
- # # setattr(property_holder, prop['id'], prop.get('default'))
- # pass
- #else:
- # # setattr(property_holder, prop['id'], defaults[prop['type']])
- # pass
-
-#####################################################
-# Accessor initialization
-#####################################################
-
-from Base import Base as BaseClass
-from Accessor import Base, List, Acquired, Content,\
- AcquiredProperty, ContentProperty, \
- Alias
-
-def createDefaultAccessors(property_holder, id, prop = None,
- read_permission=Permissions.AccessContentsInformation,
- write_permission=Permissions.ModifyPortalContent,
- portal=None):
- """
- This function creates accessor and setter for a class
- and a property
-
- property_holder -- the class to add an accessor to
-
- id -- the id of the property
-
- prop -- the property definition of the property
- """
- override = prop.get('override',0)
- ######################################################
- # Create Translation Acquired Accessors.
- if prop.get('translation_acquired_property_id'):
- createTranslationAcquiredPropertyAccessors(property_holder, prop,
- portal=portal)
-
- ######################################################
- # Create Portal Category Type Accessors.
- if prop['type'] == 'group_type':
- createGroupTypeAccessors(property_holder, prop,
- read_permission=read_permission,
- portal=portal)
-
- ######################################################
- # Create Getters
- elif prop.get('acquisition_base_category') is not None:
- # Create getters for an acquired property
- # XXXX Missing Boolean accessor
- accessor_args = (
- prop['type'],
- prop.get('default'),
- prop['acquisition_base_category'],
- prop['acquisition_portal_type'],
- prop['acquisition_accessor_id'],
- prop.get('acquisition_copy_value',0),
- prop.get('acquisition_mask_value',0),
- prop.get('storage_id'),
- prop.get('alt_accessor_id'),
- prop.get('acquisition_object_id'),
- (prop['type'] in list_types or prop.get('multivalued', 0)),
- (prop['type'] == 'tales')
- )
- # Base Getter
- accessor_name = 'get' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- # Default Getter
- accessor_name = 'getDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGetDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- # List Getter
- if prop['type'] in list_types or prop.get('multivalued', 0):
- accessor_name = 'get' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.ListGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.ListGetter, accessor_args)
- # Set Getter
- accessor_name = 'get' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.SetGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.SetGetter, accessor_args)
- if prop['type'] == 'content':
- #LOG('Value Object Accessor', 0, prop['id'])
- # Base Getter
- accessor_name = 'get' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- # Default Getter
- accessor_name = 'getDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGetDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.DefaultGetter, accessor_args)
- # List Getter
- accessor_name = 'get' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.ListGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Acquired.ListGetter, accessor_args)
- # AcquiredProperty Getters
- if prop.get('acquired_property_id'):
- for aq_id in prop['acquired_property_id']:
- composed_id = "%s_%s" % (id, aq_id)
- # Getter
- # print "Set composed_id accessor %s" % composed_id
- accessor_name = 'get' + UpperCase(composed_id)
- # print "Set accessor_name accessor %s" % accessor_name
- accessor_args = (
- prop['type'],
- prop['portal_type'],
- aq_id,
- prop['acquisition_base_category'],
- prop['acquisition_portal_type'],
- prop['acquisition_accessor_id'],
- prop.get('acquisition_copy_value',0),
- prop.get('acquisition_mask_value',0),
- prop.get('storage_id'),
- prop.get('alt_accessor_id'),
- prop.get('acquisition_object_id'),
- (prop['type'] in list_types or prop.get('multivalued', 0)),
- (prop['type'] == 'tales')
- )
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.Getter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.Getter, accessor_args)
- # Default Getter
- accessor_name = 'getDefault' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.DefaultGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGetDefault' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.DefaultGetter, accessor_args)
- # List Getter
- ################# NOT YET
- # Setter
- accessor_name = 'set' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, '_' + accessor_name, Alias.Reindex, ())
- property_holder.declareProtected( write_permission, accessor_name )
- accessor_name = '_set' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.Setter, accessor_args)
- accessor_name = '_baseSet' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.Setter, accessor_args)
- # Default Setter
- accessor_name = 'setDefault' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, '_' + accessor_name, Alias.Reindex, ())
- property_holder.declareProtected( write_permission, accessor_name )
- accessor_name = '_setDefault' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.DefaultSetter, accessor_args)
- accessor_name = '_baseSetDefault' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, AcquiredProperty.DefaultSetter, accessor_args)
- # List Getter
- ################# NOT YET
-
- elif prop['type'] in list_types or prop.get('multivalued', 0):
- # The base accessor returns the first item in a list
- # and simulates a simple property
- # The default value is the first element of prop.get('default') if it exists
- default = prop.get('default')
- accessor_args = (prop['type'], prop.get('default'), prop.get('storage_id'))
- # Create getters for a list property
- accessor_name = 'get' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.Getter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.Getter, accessor_args)
- accessor_name = 'getDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.DefaultGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGetDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.DefaultGetter, accessor_args)
- accessor_name = 'get' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.ListGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.ListGetter, accessor_args)
- accessor_name = 'get' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.SetGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, List.SetGetter, accessor_args)
- elif prop['type'] == 'content':
- accessor_args = (prop['type'], prop.get('portal_type'), prop.get('storage_id'))
- # Create getters for a list property
- accessor_name = 'get' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.Getter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.Getter, accessor_args)
- accessor_name = 'getDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.DefaultGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGetDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.DefaultGetter, accessor_args)
- accessor_name = 'get' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.ListGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.ListGetter, accessor_args)
- # Create value getters for a list property
- accessor_name = 'get' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.ValueGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.ValueGetter, accessor_args)
- accessor_name = 'getDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.DefaultValueGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGetDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.DefaultValueGetter, accessor_args)
- accessor_name = 'get' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.ValueListGetter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Content.ValueListGetter, accessor_args)
- if prop.get('acquired_property_id'):
- for aq_id in prop['acquired_property_id']:
- for composed_id in ("%s_%s" % (id, aq_id), "default_%s_%s" % (id, aq_id)) :
- accessor_name = 'get' + UpperCase(composed_id)
- accessor_args = (prop['type'], aq_id, prop.get('portal_type'), prop.get('storage_id'))
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, ContentProperty.Getter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = 'get' + UpperCase(composed_id) + 'List'
- list_accessor_args = (prop['type'], aq_id + '_list', prop.get('portal_type'), prop.get('storage_id'))
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id + '_list',
- ContentProperty.Getter, list_accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- # No default getter YET XXXXXXXXXXXXXX
- # No list getter YET XXXXXXXXXXXXXX
- accessor_name = '_set' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id, ContentProperty.Setter, accessor_args)
- property_holder.declareProtected( write_permission, accessor_name )
- accessor_name = '_set' + UpperCase(composed_id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, composed_id + '_list',
- ContentProperty.Setter, list_accessor_args)
- property_holder.declareProtected( write_permission, accessor_name )
- accessor_name = 'set' + UpperCase(composed_id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, '_' + accessor_name, Alias.Reindex, ())
- property_holder.declareProtected( write_permission, accessor_name )
- accessor_name = 'set' + UpperCase(composed_id) + 'List'
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, '_' + accessor_name, Alias.Reindex, ())
- property_holder.declareProtected( write_permission, accessor_name )
- # No default getter YET XXXXXXXXXXXXXX
- # No list getter YET XXXXXXXXXXXXXX
- else:
- accessor_args = (prop['type'], prop.get('default'), prop.get('storage_id'))
- # Create getters for a simple property
- accessor_name = 'get' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Base.Getter, accessor_args)
- property_holder.declareProtected( read_permission, accessor_name )
- accessor_name = '_baseGet' + UpperCase(id)
- if not hasattr(property_holder, accessor_name) or override:
- property_holder.registerAccessor(accessor_name, id, Base.Getter, accessor_args)
- ######################################################
- # Create Setters
- if prop['type'] == 'group_type':
- # No setter
- pass
- elif prop['type'] in list_types or prop.get('multivalued', 0):
- # Create setters for a list property by aliasing
- setter_name = 'set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- setter_name = 'setDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- setter_name = 'set' + UpperCase(id) + 'List'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- setter_name = 'set' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- # Create setters for a list property (no reindexing)
- # The base accessor sets the list to a singleton
- # and allows simulates a simple property
- accessor_args = (prop['type'], prop.get('storage_id'))
- # Create setters for a list property
- setter_name = '_set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.Setter, accessor_args)
- setter_name = '_baseSet' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.Setter, accessor_args)
- setter_name = '_setDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.DefaultSetter, accessor_args)
- setter_name = '_baseSetDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.DefaultSetter, accessor_args)
- setter_name = '_set' + UpperCase(id) + 'List'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.ListSetter, accessor_args)
- setter_name = '_baseSet' + UpperCase(id) + 'List'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.ListSetter, accessor_args)
- setter_name = '_set' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.SetSetter, accessor_args)
- setter_name = '_baseSet' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, List.SetSetter, accessor_args)
- elif prop['type'] == 'content':
- # Create setters for an object property
- # Create setters for a list property (reindexing)
- # The base accessor sets the list to a singleton
- # and allows simulates a simple property
- base_setter_name = 'set' + UpperCase(id)
- # The default setter sets the first item of a list without changing other items
- default_setter_name = 'setDefault' + UpperCase(id)
- # Create setters for an object property
- setter_name = 'set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + base_setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- setter_name = 'setDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + default_setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- setter_name = 'set' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + base_setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- setter_name = 'setDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + default_setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- # Create setters for a list property (no reindexing)
- # The base accessor sets the list to a singleton
- # and allows simulates a simple property
- accessor_args = (prop['type'], prop.get('storage_id'))
- # Create setters for an object property
- setter_name = '_set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.Setter, accessor_args)
- setter_name = '_baseSet' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.Setter, accessor_args)
- setter_name = '_setDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.DefaultSetter, accessor_args)
- setter_name = '_baseSetDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.DefaultSetter, accessor_args)
- setter_name = '_set' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.Setter, accessor_args)
- setter_name = '_baseSet' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.Setter, accessor_args)
- setter_name = '_setDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.DefaultSetter, accessor_args)
- setter_name = '_baseSetDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Content.DefaultSetter, accessor_args)
- else:
- accessor_args = (prop['type'], prop.get('storage_id'))
- # Create setters for a simple property
- setter_name = 'set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
- setter_name = '_set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Base.Setter, accessor_args)
- setter_name = '_baseSet' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Base.Setter, accessor_args)
- ######################################################
- # Create testers
- if prop['type'] == 'group_type':
- # No testters
- pass
- elif prop['type'] == 'content':
- # XXX This approach is wrong because testers for all properties
- # should be created upfront rather than on demand
- accessor_args = (prop['type'], prop.get('storage_id'))
- tester_name = 'has' + UpperCase(id)
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, Content.Tester, accessor_args)
- property_holder.declareProtected(read_permission, tester_name)
- else:
- accessor_args = (prop['type'], prop.get('storage_id'))
- tester_name = 'has' + UpperCase(id)
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, Base.Tester, accessor_args)
- property_holder.declareProtected(read_permission, tester_name)
-
- tester_name = '_baseHas' + UpperCase(id)
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, Base.Tester, accessor_args)
-
- # List Tester
- tester_name = 'has' + UpperCase(id) + 'List'
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, List.Tester, accessor_args)
- property_holder.declareProtected(read_permission, tester_name)
- tester_name = '_baseHas' + UpperCase(id) + 'List'
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, List.Tester, accessor_args)
- tester_name = 'hasDefault' + UpperCase(id)
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, List.Tester, accessor_args)
- property_holder.declareProtected(read_permission, tester_name)
- tester_name = '_baseHasDefault' + UpperCase(id)
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, List.Tester, accessor_args)
-
- # First Implementation of Boolean Accessor
- tester_name = 'is' + UpperCase(id)
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, Base.Getter,
- (prop['type'], prop.get('default'), prop.get('storage_id')))
- property_holder.declareProtected(read_permission, tester_name)
- tester_name = '_baseIs' + UpperCase(id)
- if not hasattr(property_holder, tester_name) or prop.get('override', 0):
- property_holder.registerAccessor(tester_name, id, Base.Getter,
- (prop['type'], prop.get('default'), prop.get('storage_id')))
-
-from Accessor import Category
-
-def createCategoryAccessors(property_holder, id,
- read_permission=Permissions.AccessContentsInformation,
- write_permission=Permissions.ModifyPortalContent):
- """
- This function creates category accessor and setter for a class
- and a property
- """
- accessor_name = 'get' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.ListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'List'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.ListGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.SetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.SetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'ItemList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.ItemListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
-
- accessor_name = 'getDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.DefaultGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.DefaultGetter, ())
-
- accessor_name = 'get' + UpperCase(id)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.DefaultGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.DefaultGetter, ())
-
- accessor_name = 'has' + UpperCase(id)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Category.Tester, ())
- property_holder.declareProtected(read_permission, accessor_name)
-
- setter_name = 'set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'set' + UpperCase(id) + 'List'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'setDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'set' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- accessor_args = ()
- setter_name = '_set' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.Setter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.Setter, accessor_args)
-
- setter_name = '_set' + UpperCase(id) + 'List'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.ListSetter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'List'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.ListSetter, accessor_args)
-
- setter_name = '_set' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.SetSetter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'Set'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.SetSetter, accessor_args)
-
- setter_name = '_setDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.DefaultSetter, accessor_args)
- setter_name = '_categorySetDefault' + UpperCase(id)
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Category.DefaultSetter, accessor_args)
-
-
-from Accessor import Value, Related, RelatedValue, Translation
-
-def createValueAccessors(property_holder, id,
- read_permission=Permissions.AccessContentsInformation,
- write_permission=Permissions.ModifyPortalContent):
- """
- Creates relation accessors for category id
-
- """
- accessor_name = 'get' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.ListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.ListGetter, ())
- accessor_name = UpperCase(id) + 'Values'
- accessor_name = string.lower(accessor_name[0]) + accessor_name[1:]
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.ListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
-
- accessor_name = 'get' + UpperCase(id) + 'ValueSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.SetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'ValueSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.SetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'TitleList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TitleListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'TitleList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TitleListGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'TitleSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TitleSetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'TitleSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TitleSetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'TranslatedTitleList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TranslatedTitleListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'TranslatedTitleList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TranslatedTitleListGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'TranslatedTitleSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TranslatedTitleSetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'TranslatedTitleSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.TranslatedTitleSetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'ReferenceList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.ReferenceListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'ReferenceList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.ReferenceListGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'ReferenceSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.ReferenceSetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'ReferenceSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.ReferenceSetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'IdList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.IdListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'IdList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.IdListGetter, ())
- accessor_name = UpperCase(id) + 'Ids'
- accessor_name = string.lower(accessor_name[0]) + accessor_name[1:]
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.IdListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
-
- accessor_name = 'get' + UpperCase(id) + 'IdSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.IdSetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'IdSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.IdSetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'LogicalPathList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.LogicalPathListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPathList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.LogicalPathListGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'LogicalPathSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.LogicalPathSetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPathSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.LogicalPathSetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'UidList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.UidListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'UidList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.UidListGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'UidSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.UidSetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'UidSet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.UidSetGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'PropertyList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.PropertyListGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'PropertyList'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.PropertyListGetter, ())
-
- accessor_name = 'get' + UpperCase(id) + 'PropertySet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.PropertySetGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'PropertySet'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.PropertySetGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultGetter, ())
- accessor_name = 'get' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGet' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'Title'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'Title'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'Title'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'Title'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'TranslatedTitle'
- accessor = Value.DefaultTranslatedTitleGetter(accessor_name, id)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTranslatedTitleGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'TranslatedTitle'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTranslatedTitleGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'TranslatedTitle'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTranslatedTitleGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'TranslatedTitle'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTranslatedTitleGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'Reference'
- accessor = Value.DefaultReferenceGetter(accessor_name, id)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultReferenceGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'Reference'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultReferenceGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'Reference'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultReferenceGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'Reference'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultReferenceGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultUidGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultUidGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultUidGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultUidGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'Id'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultIdGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'Id'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultIdGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'Id'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultIdGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'Id'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultIdGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'TitleOrId'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleOrIdGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'TitleOrId'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleOrIdGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'TitleOrId'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleOrIdGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'TitleOrId'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTitleOrIdGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'Property'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultPropertyGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'Property'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultPropertyGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'Property'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultPropertyGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'Property'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultPropertyGetter, ())
-
- accessor_name = 'getDefault' + UpperCase(id) + 'LogicalPath'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultLogicalPathGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'LogicalPath'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultLogicalPathGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = 'get' + UpperCase(id) + 'TranslatedLogicalPath'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTranslatedLogicalPathGetter, ())
- property_holder.declareProtected(read_permission, accessor_name)
- accessor_name = '_categoryGetDefault' + UpperCase(id) + 'LogicalPath'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultLogicalPathGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPath'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultLogicalPathGetter, ())
- accessor_name = '_categoryGet' + UpperCase(id) + 'TranslatedLogicalPath'
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, Value.DefaultTranslatedLogicalPathGetter, ())
-
- setter_name = 'set' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'set' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'set' + UpperCase(id) + 'ValueSet'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'setDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- accessor_args = ()
- setter_name = '_set' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.Setter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.Setter, accessor_args)
-
- setter_name = '_set' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.ListSetter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'ValueList'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.ListSetter, accessor_args)
-
- setter_name = '_set' + UpperCase(id) + 'ValueSet'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.SetSetter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'ValueSet'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.SetSetter, accessor_args)
-
- setter_name = '_setDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.DefaultSetter, accessor_args)
- setter_name = '_categorySetDefault' + UpperCase(id) + 'Value'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.DefaultSetter, accessor_args)
-
- # Uid setters
- setter_name = 'set' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'setDefault' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'set' + UpperCase(id) + 'UidList'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = 'set' + UpperCase(id) + 'UidSet'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())
- property_holder.declareProtected(write_permission, setter_name)
-
- setter_name = '_set' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidSetter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidSetter, accessor_args)
-
- setter_name = '_setDefault' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidDefaultSetter, accessor_args)
- setter_name = '_categorySetDefault' + UpperCase(id) + 'Uid'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidDefaultSetter, accessor_args)
-
- setter_name = '_set' + UpperCase(id) + 'UidList'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidListSetter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'UidList'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidListSetter, accessor_args)
-
- setter_name = '_set' + UpperCase(id) + 'UidSet'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidSetSetter, accessor_args)
- setter_name = '_categorySet' + UpperCase(id) + 'UidSet'
- if not hasattr(property_holder, setter_name):
- property_holder.registerAccessor(setter_name, id, Value.UidSetSetter, accessor_args)
-
-
-def createRelatedValueAccessors(property_holder, id, read_permission=Permissions.AccessContentsInformation):
-
- upper_case_id = UpperCase(id)
- # Related Values (ie. reverse relation getters)
-
- # AccessorClass: (accessor_name, )
- accessor_dict = {
- # List getter
- RelatedValue.ListGetter: (
- '%s%sRelatedValues' % (upper_case_id[0].lower(),
- upper_case_id[1:]),
- 'get%sRelatedValueList' % upper_case_id,
- '_categoryGet%sRelatedValueList' % upper_case_id,
- ),
-
- # Set getter
- RelatedValue.SetGetter: (
- 'get%sRelatedValueSet' % upper_case_id,
- '_categoryGet%sRelatedValueSet' % upper_case_id,
- ),
-
- # Default value getter
- RelatedValue.DefaultGetter: (
- 'getDefault%sRelatedValue' % upper_case_id,
- 'get%sRelatedValue' % upper_case_id,
- '_categoryGetDefault%sRelatedValue' % upper_case_id,
- '_categoryGet%sRelatedValue' % upper_case_id,
- ),
-
- # Related Relative Url
- Related.ListGetter: (
- 'get%sRelatedList' % upper_case_id,
- '_categoryGet%sRelatedList' % upper_case_id,
- ),
-
- # Related as Set
- Related.SetGetter: (
- 'get%sRelatedSet' % upper_case_id,
- '_categoryGet%sRelatedSet' % upper_case_id,
- ),
-
- # Default getter
- Related.DefaultGetter: (
- 'getDefault%sRelated' % upper_case_id,
- 'get%sRelated' % upper_case_id,
- '_categoryGetDefault%sRelated' % upper_case_id,
- '_categoryGet%sRelated' % upper_case_id,
- ),
-
- # Related Ids (ie. reverse relation getters)
- RelatedValue.IdListGetter: (
- '%s%sRelatedIds' % (upper_case_id[0].lower(),
- upper_case_id[1:]),
- 'get%sRelatedIdList' % upper_case_id,
- '_categoryGet%sRelatedIdList' % upper_case_id,
- ),
-
- # Related Ids as Set
- RelatedValue.IdSetGetter: (
- 'get%sRelatedIdSet' % upper_case_id,
- '_categoryGet%sRelatedIdSet' % upper_case_id,
- ),
-
- # Default Id getter
- RelatedValue.DefaultIdGetter: (
- 'getDefault%sRelatedId' % upper_case_id,
- 'get%sRelatedId' % upper_case_id,
- '_categoryGetDefault%sRelatedId' % upper_case_id,
- '_categoryGet%sRelatedId' % upper_case_id,
- ),
-
- # Related Title list
- RelatedValue.TitleListGetter: (
- 'get%sRelatedTitleList' % upper_case_id,
- '_categoryGet%sRelatedTitleList' % upper_case_id,
- ),
-
- # Related Title Set
- RelatedValue.TitleSetGetter: (
- 'get%sRelatedTitleSet' % upper_case_id,
- '_categoryGet%sRelatedTitleSet' % upper_case_id,
- ),
-
- # Related default title
- RelatedValue.DefaultTitleGetter: (
- 'getDefault%sRelatedTitle' % upper_case_id,
- 'get%sRelatedTitle' % upper_case_id,
- '_categoryGetDefault%sRelatedTitle' % upper_case_id,
- '_categoryGet%sRelatedTitle' % upper_case_id,
- ),
-
- # Related Property list
- RelatedValue.PropertyListGetter: (
- 'get%sRelatedPropertyList' % upper_case_id,
- '_categoryGet%sRelatedPropertyList' % upper_case_id,
- ),
-
- # Related Property Set
- RelatedValue.PropertySetGetter: (
- 'get%sRelatedPropertySet' % upper_case_id,
- '_categoryGet%sRelatedPropertySet' % upper_case_id,
- ),
-
- # Related default title
- RelatedValue.DefaultPropertyGetter: (
- 'getDefault%sRelatedProperty' % upper_case_id,
- 'get%sRelatedProperty' % upper_case_id,
- '_categoryGetDefault%sRelatedProperty' % upper_case_id,
- '_categoryGet%sRelatedProperty' % upper_case_id,
- ),
- }
-
- for accessor_class, accessor_name_list in accessor_dict.items():
- for accessor_name in accessor_name_list:
- if property_holder is not None:
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, accessor_class, ())
- if accessor_name[0] != '_':
- property_holder.declareProtected(read_permission, accessor_name)
- else:
- accessor = accessor_class(accessor_name, id)
- if not hasattr(BaseClass, accessor_name):
- setattr(BaseClass, accessor_name,
- accessor.dummy_copy(accessor_name))
- # Declare the security of method which doesn't start with _
- if accessor_name[0] != '_':
- BaseClass.security.declareProtected(read_permission, accessor_name)
-
-def createGroupTypeAccessors(property_holder, prop,
- read_permission=None, portal=None):
- """
- Generate accessors that allows to know if we belongs to a particular
- group of portal types
- """
- raise ValueError("This method is not used. Remove it?")
- # Getter
- group = prop['group_type']
- accessor_name = 'is' + UpperCase(group) + 'Type'
- value = prop['default']
- accessor_args = (value,)
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name, id, ConstantGetter,
- accessor_args)
- property_holder.declareProtected(read_permission, accessor_name)
-
-def createTranslationAcquiredPropertyAccessors(
- property_holder,
- property,
- read_permission=Permissions.AccessContentsInformation,
- write_permission=Permissions.ModifyPortalContent,
- portal=None):
- """Generate translation acquired property accessor to Base class"""
- property = property.copy()
- translation_acquired_property_id_list = []
- accessor_dict_list = []
-
- # Language Dependent Getter/Setter
- for language in portal.Localizer.get_languages():
- language_key = language.replace('-', '_')
- for acquired_property_id in property['acquired_property_id']:
- key = '%s_translated_%s' % (language_key, acquired_property_id)
- capitalised_composed_id = UpperCase("%s_%s" % (property['id'], key))
- accessor_args = (
- property['type'],
- property['portal_type'],
- key,
- property['acquisition_base_category'],
- property['acquisition_portal_type'],
- property['acquisition_accessor_id'],
- property.get('acquisition_copy_value',0),
- property.get('acquisition_mask_value',0),
- property.get('storage_id'),
- property.get('alt_accessor_id'),
- property.get('acquisition_object_id'),
- (property['type'] in list_types or property.get('multivalued', 0)),
- (property['type'] == 'tales'),
- )
-
- accessor_dict_list.append({'name':'get' + capitalised_composed_id,
- 'key': key,
- 'class':Translation.AcquiredPropertyGetter,
- 'argument':accessor_args,
- 'permission':read_permission})
- accessor_dict_list.append({'name':'_baseGet' + capitalised_composed_id,
- 'key': key,
- 'class':Translation.AcquiredPropertyGetter,
- 'argument':accessor_args,
- 'permission':read_permission})
- accessor_dict_list.append({'name': 'getDefault' + capitalised_composed_id,
- 'key': key,
- 'class': Translation.AcquiredPropertyGetter,
- 'argument': accessor_args,
- 'permission': read_permission})
- accessor_dict_list.append({'name': 'set' + capitalised_composed_id,
- 'key': '_set' + capitalised_composed_id,
- 'class': Alias.Reindex,
- 'argument': (),
- 'permission': write_permission})
- accessor_dict_list.append({'name': '_set' + capitalised_composed_id,
- 'key': key,
- 'class': AcquiredProperty.DefaultSetter,
- 'argument': accessor_args,
- 'permission': write_permission})
- accessor_dict_list.append({'name': 'setDefault' + capitalised_composed_id,
- 'key': '_set' + capitalised_composed_id,
- 'class': Alias.Reindex,
- 'argument': (),
- 'permission': write_permission})
-
- # Language Independent Getter
- for acquired_property_id in property['acquired_property_id']:
- if acquired_property_id in property.get('translation_acquired_property_id',()):
- key = 'translated_%s' % acquired_property_id
- capitalised_composed_id = UpperCase('%s_%s' % (property['id'], key))
- accessor_args = (
- property['type'],
- property['portal_type'],
- key,
- property['acquisition_base_category'],
- property['acquisition_portal_type'],
- property['acquisition_accessor_id'],
- property.get('acquisition_copy_value',0),
- property.get('acquisition_mask_value',0),
- property.get('storage_id'),
- property.get('alt_accessor_id'),
- property.get('acquisition_object_id'),
- (property['type'] in list_types or property.get('multivalued', 0)),
- (property['type'] == 'tales'),
- )
-
- accessor_dict_list.append({'name': 'get' + capitalised_composed_id,
- 'key': key,
- 'class': Translation.AcquiredPropertyGetter,
- 'argument': accessor_args,
- 'permission': read_permission})
- accessor_dict_list.append({'name': '_baseGet' + capitalised_composed_id,
- 'key': key,
- 'class': Translation.AcquiredPropertyGetter,
- 'argument': accessor_args,
- 'permission': read_permission})
- accessor_dict_list.append({'name': 'getDefault' + capitalised_composed_id,
- 'key': key,
- 'class': Translation.AcquiredPropertyGetter,
- 'argument': accessor_args,
- 'permission': read_permission})
-
- for accessor_dict in accessor_dict_list:
- accessor_name = accessor_dict['name']
- if getattr(property_holder, accessor_name, None) is None:
- property_holder.registerAccessor(accessor_name, # id
- accessor_dict['key'],
- accessor_dict['class'],
- accessor_dict['argument'])
- property_holder.declareProtected(accessor_dict['permission'],
- accessor_name)
-
-def createTranslationAccessors(property_holder, id, property,
- read_permission=Permissions.AccessContentsInformation,
- write_permission=Permissions.ModifyPortalContent, default=''):
- """
- Generate the translation accessor for a class and a property
- """
- capitalised_id = UpperCase(id)
- if 'translated' in id:
- accessor_name = 'get' + capitalised_id
- private_accessor_name = '_baseGet' + capitalised_id
- if not hasattr(property_holder, accessor_name):
- property_holder.registerAccessor(accessor_name,
- id,
- Translation.TranslatedPropertyGetter,
- (property['id'], property['type'], None, default))
- property_holder.declareProtected(read_permission, accessor_name)
- if not hasattr(property_holder, private_accessor_name):
- property_holder.registerAccessor(private_accessor_name,
- id,
- Translation.TranslatedPropertyGetter,
- (property['id'], property['type'], None, default))
-
- if 'translation_domain' in id:
- # Getter
- accessor_name = 'get' + capitalised_id
- property_holder.registerAccessor(accessor_name,
- id,
- Translation.PropertyTranslationDomainGetter,
- ('string', default,))
- property_holder.declareProtected(read_permission, accessor_name)
-
-
-def createTranslationLanguageAccessors(property_holder, property,
- read_permission=Permissions.AccessContentsInformation,
- write_permission=Permissions.ModifyPortalContent, default='',
- portal=None):
- """
- Generate translation language accessors
- """
- accessor_dict_list = []
-
- localizer = getattr(portal, 'Localizer', None)
- if localizer is None:
- if not getattr(portal, '_v_bootstrapping', False):
- warnings.warn("Localizer is missing. Accessors can not be generated.")
- return
-
- for language in localizer.get_languages():
- language_key = language.replace('-', '_')
- composed_id = '%s_translated_%s' % (language_key, property['id'])
- capitalised_compose_id = UpperCase(composed_id)
-
- # get
- getter_accessor_args = (property['id'], property['type'], language, default)
- accessor_dict_list.append({'name': 'get' + capitalised_compose_id,
- 'class': Translation.TranslatedPropertyGetter,
- 'argument': getter_accessor_args,
- 'permission': read_permission})
- accessor_dict_list.append({'name': '_baseGet' + capitalised_compose_id,
- 'class': Translation.TranslatedPropertyGetter,
- 'argument': getter_accessor_args,
- 'permission': read_permission})
-
- # has
- has_accessor_args = (property['id'], property['type'], language)
- accessor_dict_list.append({'name': 'has' + capitalised_compose_id,
- 'class': Translation.TranslatedPropertyTester,
- 'argument': has_accessor_args,
- 'permission': read_permission})
-
- # set
- accessor_dict_list.append({'name':'set' + capitalised_compose_id,
- 'key': '_set' + capitalised_compose_id,
- 'class': Alias.Reindex,
- 'argument': (),
- 'permission': write_permission})
- setter_accessor_args = (property['id'], property['type'], language)
- accessor_dict_list.append({'name': '_set' + capitalised_compose_id,
- 'class': Translation.TranslationPropertySetter,
- 'argument': setter_accessor_args,
- 'permission': write_permission})
-
- for accessor_dict in accessor_dict_list:
- accessor_name = accessor_dict['name']
- if getattr(property_holder, accessor_name, None) is None:
- property_holder.registerAccessor(accessor_name,
- accessor_dict.get('key', None),
- accessor_dict['class'],
- accessor_dict['argument'])
- property_holder.declareProtected(accessor_dict['permission'],
- accessor_name)
-
from zope.tales.tales import CompilerError
def evaluateExpressionFromString(expression_context, expression_string):
@@ -2979,6 +1311,7 @@ def evaluateExpressionFromString(express
#####################################################
# More Useful methods which require Base
#####################################################
+from Products.ERP5Type.Base import Base as BaseClass
def assertAttributePortalType(o, attribute_name, portal_type):
"""
More information about the Erp5-report
mailing list