[Erp5-report] r7513 - /erp5/trunk/products/ERP5Type/Utils.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon May 29 09:50:31 CEST 2006
Author: jerome
Date: Mon May 29 09:50:26 2006
New Revision: 7513
URL: http://svn.erp5.org?rev=7513&view=rev
Log:
Minor style changes
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=7513&r1=7512&r2=7513&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Utils.py (original)
+++ erp5/trunk/products/ERP5Type/Utils.py Mon May 29 09:50:26 2006
@@ -45,15 +45,16 @@
from Products.ERP5Type import Interface
from Products.ERP5Type import PropertySheet
-from zLOG import LOG, PROBLEM
+from zLOG import LOG, BLATHER, PROBLEM
#####################################################
# Global Switches
#####################################################
-INITIALIZE_PRODUCT_RAD = 1 # If set to 0, product documents are not initialized
- # this will divide by two memory usage taken by getters and setters
- # 0 value is suggested for new ERP5 projetcs
+INITIALIZE_PRODUCT_RAD = 1 # If set to 0, product documents are not
+ # initialized this will divide by two memory
+ # usage taken by getters and setters 0 value
+ # is suggested for new ERP5 projetcs
#####################################################
# Compatibility - XXX - BAD
@@ -81,7 +82,7 @@
if len(key) == 1:
new_sort_on.append((key[0], reverse, None))
elif len(key) == 2:
- new_sort_on.append((key[0],
+ new_sort_on.append((key[0],
key[1] in ('descending', 'reverse', 'DESC'),
None))
else:
@@ -94,7 +95,7 @@
else:
# XXX: For an unknown type, use a string.
f=str
- new_sort_on.append((key[0],
+ new_sort_on.append((key[0],
key[1] in ('descending', 'reverse', 'DESC'),
f))
sort_on = new_sort_on
@@ -117,7 +118,7 @@
break
return result
- if isinstance(value_list,LazyMap):
+ if isinstance(value_list, LazyMap):
new_value_list = [x for x in value_list]
value_list = new_value_list
value_list.sort(sortValues)
@@ -174,6 +175,8 @@
# Some list operations
def keepIn(value_list, filter_list):
+ # XXX this is [x for x in value_list if x in filter_list]
+ warn()
result = []
for k in value_list:
if k in filter_list:
@@ -181,6 +184,7 @@
return result
def rejectIn(value_list, filter_list):
+ # XXX this is [x for x in value_list if x not in filter_list]
result = []
for k in value_list:
if not(k in filter_list):
@@ -210,19 +214,18 @@
# Path
def getPath(object_or_path, **kw):
- """
- Returns the absolute path of an object
- """
- if isinstance(object_or_path, (list, tuple)):
- path = '/'.join(object_or_path)
- elif isinstance(object_or_path, str):
- path = object_or_path
- else:
- path = object_or_path.getPhysicalPath()
- path = '/'.join(path)
- if kw.get('tuple'):
- return path.split('/')
- return path
+ """Returns the absolute path of an object
+ """
+ if isinstance(object_or_path, (list, tuple)):
+ path = '/'.join(object_or_path)
+ elif isinstance(object_or_path, str):
+ path = object_or_path
+ else:
+ path = object_or_path.getPhysicalPath()
+ path = '/'.join(path)
+ if kw.get('tuple'):
+ return path.split('/')
+ return path
#####################################################
@@ -247,11 +250,13 @@
module_name = file_name[0:-3]
module_name_list += [module_name]
except:
- LOG('ERP5Type:',0,'No PropertySheet directory in %s' % product_path)
+ LOG('ERP5Type:', BLATHER,
+ 'No PropertySheet directory in %s' % product_path)
return path, module_name_list
# EPR5Type global modules update
-def updateGlobals( this_module, global_hook, permissions_module = None, is_erp5_type=0):
+def updateGlobals(this_module, global_hook,
+ permissions_module=None, is_erp5_type=0):
"""
This function does all the initialization steps required
for a Zope / CMF Product
@@ -265,16 +270,12 @@
# Update PropertySheet Registry
for module_id in ('PropertySheet', 'Interface', 'Constraint', ):
path, module_id_list = getModuleIdList(product_path, module_id)
- #print path
- #print module_id_list
if module_id == 'PropertySheet':
import_method = importLocalPropertySheet
elif module_id == 'Interface':
import_method = importLocalInterface
elif module_id == 'Constraint':
import_method = importLocalConstraint
- else:
- import_method = None
for module_id in module_id_list:
import_method(module_id, path=path)
@@ -319,17 +320,17 @@
def __init__(self, klass):
self.klass = klass
- def __call__(self, folder, id, REQUEST=None, activate_kw=None, is_indexable=None, **kw):
+ def __call__(self, folder, id, REQUEST=None,
+ activate_kw=None, is_indexable=None, **kw):
o = self.klass(id)
if activate_kw is not None:
o._v_activate_kw = activate_kw
if is_indexable is not None:
- o.isIndexable=is_indexable
+ o.isIndexable = is_indexable
folder._setObject(id, o)
# if no activity tool, the object has already an uid
- if getattr(aq_base(o),'uid',None) is None:
+ if getattr(aq_base(o),' uid', None) is None:
o.uid = folder.portal_catalog.newUid()
- #LOG('DocumentConstructor', 0, 'o = %r, kw = %r' % (o, kw))
if kw: o.__of__(folder)._edit(force_update=1, **kw)
if REQUEST is not None:
REQUEST['RESPONSE'].redirect( 'manage_main' )
@@ -339,16 +340,19 @@
def __call__(self, folder, id, REQUEST=None, **kw):
o = self.klass(id)
# Monkey patch TempBase specific arguments
- for k in ('isIndexable', 'reindexObject', 'recursiveReindexObject', 'activate', 'setUid', 'setTitle', 'getTitle'):
+ for k in ('isIndexable', 'reindexObject', 'recursiveReindexObject',
+ 'activate', 'setUid', 'setTitle', 'getTitle'):
setattr(o, k, getattr(o,"_temp_%s" % k))
o = o.__of__(folder)
- if kw: o.__of__(folder)._edit(force_update=1, **kw)
+ if kw:
+ o.__of__(folder)._edit(force_update=1, **kw)
return o
python_file_parser = re.compile('^(.*)\.py$')
def getLocalPropertySheetList():
- if not getConfiguration: return []
+ if not getConfiguration:
+ return []
instance_home = getConfiguration().instancehome
path = os.path.join(instance_home, "PropertySheet")
file_list = os.listdir(path)
@@ -394,7 +398,6 @@
f = open(path)
module = imp.load_source(class_id, path, f)
setattr(PropertySheet, class_id, getattr(module, class_id))
- #setattr(Products.ERP5Type.PropertySheet, class_id, getattr(module, class_id))
# Register base categories
registerBaseCategories(getattr(module, class_id))
@@ -405,7 +408,6 @@
if isinstance(category_list, str):
category_list = (category_list,)
for bc in category_list :
- #LOG('registerBaseCategories', 0, 'bc = %r in %s' % (bc, property_sheet))
base_category_dict[bc] = 1
def importLocalInterface(class_id, path = None):
@@ -429,7 +431,8 @@
setattr(Products.ERP5Type.Constraint, class_id, getattr(module, class_id))
def getLocalExtensionList():
- if not getConfiguration: return []
+ if not getConfiguration:
+ return []
instance_home = getConfiguration().instancehome
path = os.path.join(instance_home, "Extensions")
file_list = os.listdir(path)
@@ -441,7 +444,8 @@
return result
def getLocalTestList():
- if not getConfiguration: return []
+ if not getConfiguration:
+ return []
instance_home = getConfiguration().instancehome
path = os.path.join(instance_home, "tests")
file_list = os.listdir(path)
@@ -453,7 +457,8 @@
return result
def getLocalConstraintList():
- if not getConfiguration: return []
+ if not getConfiguration:
+ return []
instance_home = getConfiguration().instancehome
path = os.path.join(instance_home, "Constraint")
file_list = os.listdir(path)
@@ -576,6 +581,8 @@
f.write(text)
def setDefaultClassProperties(property_holder):
+ """Initialize default properties for ERP5Type Documents.
+ """
if not property_holder.__dict__.has_key('isPortalContent'):
property_holder.isPortalContent = 1
if not property_holder.__dict__.has_key('isRADContent'):
@@ -588,11 +595,13 @@
property_holder.property_sheets = ()
# Add default factory type information
if not property_holder.__dict__.has_key('factory_type_information') and \
- property_holder.__dict__.has_key('meta_type') and property_holder.__dict__.has_key('portal_type'):
+ property_holder.__dict__.has_key('meta_type') and \
+ property_holder.__dict__.has_key('portal_type'):
property_holder.factory_type_information = \
{ 'id' : property_holder.portal_type
, 'meta_type' : property_holder.meta_type
- , 'description' : getattr(property_holder, '__doc__', "Type generated by ERPType")
+ , 'description' : getattr(property_holder, '__doc__',
+ "Type generated by ERPType")
, 'icon' : 'document.gif'
, 'product' : 'ERP5Type'
, 'factory' : 'add%s' % property_holder.__name__
@@ -626,11 +635,9 @@
}
def importLocalDocument(class_id, document_path = None):
- """
- Imports a document class and registers it as
- """
-
- #__import__('Document.Test')
+ """Imports a document class and registers it in ERP5Type Document
+ repository ( Products.ERP5Type.Document )
+ """
import Products.ERP5Type.Document
import Permissions
import Products
@@ -640,21 +647,25 @@
else:
path = document_path
path = os.path.join(path, "%s.py" % class_id)
+
# Import Document Class and Initialize it
f = open(path)
- document_module = imp.load_source('Products.ERP5Type.Document.%s' % class_id, path, f) # This is the right way
+ document_module = imp.load_source(
+ 'Products.ERP5Type.Document.%s' % class_id, path, f)
document_class = getattr(document_module, class_id)
document_constructor = DocumentConstructor(document_class)
document_constructor_name = "add%s" % class_id
document_constructor.__name__ = document_constructor_name
setattr(Products.ERP5Type.Document, class_id, document_module)
- setattr(Products.ERP5Type.Document, document_constructor_name, document_constructor)
+ setattr(Products.ERP5Type.Document, document_constructor_name,
+ document_constructor)
setDefaultClassProperties(document_class)
from AccessControl import ModuleSecurityInfo
- ModuleSecurityInfo('Products.ERP5Type.Document').declareProtected(Permissions.AddPortalContent,
- document_constructor_name,)
+ ModuleSecurityInfo('Products.ERP5Type.Document').declareProtected(
+ Permissions.AddPortalContent, document_constructor_name,)
InitializeClass(document_class)
f.close()
+
# Temp documents are created as standard classes with a different constructor
# which patches some methods are the instance level to prevent reindexing
from Products.ERP5Type import product_path as erp5_product_path
@@ -662,8 +673,11 @@
temp_document_constructor = TempDocumentConstructor(document_class)
temp_document_constructor_name = "newTemp%s" % class_id
temp_document_constructor.__name__ = temp_document_constructor_name
- setattr(Products.ERP5Type.Document, temp_document_constructor_name, temp_document_constructor)
- ModuleSecurityInfo('Products.ERP5Type.Document').declarePublic(temp_document_constructor_name,)
+ setattr(Products.ERP5Type.Document,
+ temp_document_constructor_name,
+ temp_document_constructor)
+ ModuleSecurityInfo('Products.ERP5Type.Document').declarePublic(
+ temp_document_constructor_name,)
# Update Meta Types
new_meta_types = []
@@ -675,7 +689,8 @@
instance_class = None
new_meta_types.append(
{ 'name': document_class.meta_type,
- 'action': ('manage_addProduct/%s/%s' % ('ERP5Type', document_constructor_name)),
+ 'action': ('manage_addProduct/%s/%s' % (
+ 'ERP5Type', document_constructor_name)),
'product': 'ERP5Type',
'permission': document_class.add_permission,
'visibility': 'Global',
@@ -690,7 +705,8 @@
constructors = ( manage_addContentForm
, manage_addContent
, document_constructor
- , ('factory_type_information', document_class.factory_type_information) )
+ , ('factory_type_information',
+ document_class.factory_type_information) )
else:
constructors = ( manage_addContentForm
, manage_addContent
@@ -714,7 +730,7 @@
m[name].append(method)
m[name+'__roles__']=pr
-def initializeLocalRegistry(directory_name, import_local_method,
+def initializeLocalRegistry(directory_name, import_local_method,
path_arg_name='path'):
"""
Initialize local directory.
@@ -756,10 +772,15 @@
# Product initialization
#####################################################
-def initializeProduct( context, this_module, global_hook,
- document_module = None,
- document_classes=None, object_classes=None, portal_tools=None,
- content_constructors=None, content_classes=None):
+def initializeProduct( context,
+ this_module,
+ global_hook,
+ document_module=None,
+ document_classes=None,
+ object_classes=None,
+ portal_tools=None,
+ content_constructors=None,
+ content_classes=None):
"""
This function does all the initialization steps required
for a Zope / CMF Product
@@ -772,7 +793,6 @@
product_name = this_module.__name__.split('.')[-1]
# Define content classes from document_classes
- #LOG('Begin initializeProduct %s %s' % (document_module, document_classes),0,'')
extra_content_classes = []
#if document_module is not None:
if 0:
@@ -797,9 +817,11 @@
extra_content_constructors = []
for content_class in extra_content_classes:
if hasattr(content_class, 'add' + content_class.__name__):
- extra_content_constructors += [getattr(content_class, 'add' + content_class.__name__)]
+ extra_content_constructors += [
+ getattr(content_class, 'add' + content_class.__name__)]
else:
- extra_content_constructors += [getattr(document_module, 'add' + content_class.__name__)]
+ extra_content_constructors += [
+ getattr(document_module, 'add' + content_class.__name__)]
# Define FactoryTypeInformations for all content classes
contentFactoryTypeInformations = []
@@ -812,7 +834,8 @@
# Aggregate
content_classes = list(content_classes) + list(extra_content_classes)
- content_constructors = list(content_constructors) + list(extra_content_constructors)
+ content_constructors = list(content_constructors)\
+ + list(extra_content_constructors)
# Begin the initialization steps
bases = tuple(content_classes)
@@ -824,11 +847,11 @@
try:
registerDirectory('skins', global_hook)
except:
- LOG("ERP5Type:",0,"No skins directory for %s" % product_name)
+ LOG("ERP5Type:", BLATHER, "No skins directory for %s" % product_name)
try:
registerDirectory('help', global_hook)
except:
- LOG("ERP5Type:",0,"No help directory for %s" % product_name)
+ LOG("ERP5Type:", BLATHER, "No help directory for %s" % product_name)
# Finish the initialization
utils.initializeBasesPhase2( z_bases, context )
@@ -837,7 +860,7 @@
if len(tools) > 0:
utils.ToolInit('%s Tool' % product_name,
tools=tools,
- product_name=product_name,
+ # product_name=product_name,
icon='tool.png',
).initialize( context )
@@ -848,12 +871,12 @@
if hasattr(klass, 'permission_type'):
klass_permission=klass.permission_type
- utils.ContentInit( klass.meta_type
- , content_types=[klass]
- , permission=klass_permission
- , extra_constructors=tuple(content_constructors)
- , fti=contentFactoryTypeInformations
- ).initialize( context )
+ utils.ContentInit( klass.meta_type,
+ content_types=[klass],
+ permission=klass_permission,
+ extra_constructors=tuple(content_constructors),
+ fti=contentFactoryTypeInformations,
+ ).initialize( context )
# Register Help
context.registerHelp(directory='help')
@@ -885,7 +908,7 @@
try:
consistency_class = getattr(Constraint, constraint_definition['type'])
except AttributeError:
- LOG("ERP5Type", 0, "Can not find Constraint: %s" % \
+ LOG("ERP5Type", PROBLEM, "Can not find Constraint: %s" % \
constraint_definition['type'])
raise
consistency_instance = consistency_class(**constraint_definition)
@@ -899,7 +922,8 @@
for klass in klasses:
if getattr(klass, 'isRADContent', 0) and hasattr(klass, 'security'):
setDefaultConstructor(klass)
- klass.security.declareProtected(Permissions.AddPortalContent, 'add' + klass.__name__)
+ klass.security.declareProtected(Permissions.AddPortalContent,
+ 'add' + klass.__name__)
def setDefaultConstructor(klass):
"""
@@ -991,12 +1015,15 @@
- 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.
+ - 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'
"""
@@ -1014,16 +1041,16 @@
constraint_list = [] # a list of declarative consistency definitions (ie. constraints)
constraint_list += property_holder.__dict__.get('_constraints',[]) # Do not consider superclass _constraints definition
for base in property_holder.property_sheets:
- for prop in base._properties:
- # Copy the dict so that Expression objects are not overwritten.
- prop_list.append(prop.copy())
- if hasattr(base, '_categories'):
- if isinstance(base._categories, (tuple, list)):
- cat_list += base._categories
- else:
- cat_list += [base._categories]
- if hasattr(base, '_constraints'):
- constraint_list += base._constraints
+ for prop in base._properties:
+ # Copy the dict so that Expression objects are not overwritten.
+ prop_list.append(prop.copy())
+ if hasattr(base, '_categories'):
+ if isinstance(base._categories, (tuple, list)):
+ cat_list += base._categories
+ else:
+ cat_list += [base._categories]
+ if hasattr(base, '_constraints'):
+ constraint_list += base._constraints
# Evaluate TALES expressions.
for prop in prop_list:
@@ -1051,17 +1078,20 @@
converted_prop_list = []
converted_prop_keys = {}
for prop in prop_list:
- read_permission = prop.get('read_permission', Permissions.AccessContentsInformation)
+ 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)
+ write_permission = prop.get('write_permission',
+ Permissions.ModifyPortalContent)
if isinstance(write_permission, Expression):
write_permission = write_permission(econtext)
if prop['type'] in legalTypes:
if 'base_id' in prop:
continue
if not converted_prop_keys.has_key(prop['id']):
- if prop['type'] != 'content': converted_prop_list += [prop]
+ if prop['type'] != 'content':
+ converted_prop_list += [prop]
converted_prop_keys[prop['id']] = 1
# Create range accessors, if this has a range.
@@ -1072,16 +1102,25 @@
if 'storage_id' in range_prop:
del range_prop['storage_id']
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)
+ 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)
# Create translation accesor, if translatable is set
if prop.get('translatable', 0):
# make accesso like getTranslatedProperty
- createTranslationAccessors(property_holder, 'translated_%s' % (prop['id']),
- read_permission=read_permission, write_permission=write_permission)
+ createTranslationAccessors(
+ property_holder,
+ 'translated_%s' % (prop['id']),
+ read_permission=read_permission,
+ write_permission=write_permission)
# make accessor to translation_domain
# first create default one as a normal property
txn_prop = {}
@@ -1090,17 +1129,29 @@
txn_prop['id'] = 'translation_domain'
txn_prop['type'] = 'string'
txn_prop['mode'] = 'w'
- createDefaultAccessors(property_holder, '%s_%s' %(prop['id'], txn_prop['id']), prop=txn_prop,
- read_permission=read_permission, write_permission=write_permission)
+ createDefaultAccessors(
+ property_holder,
+ '%s_%s' %(prop['id'], txn_prop['id']),
+ prop=txn_prop,
+ read_permission=read_permission,
+ write_permission=write_permission)
# then overload accesors getPropertyTranslationDomain
if prop.has_key('translation_domain'):
default = prop['translation_domain']
else:
default = ''
- createTranslationAccessors(property_holder, '%s_translation_domain' % (prop['id']),
- 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)
+ createTranslationAccessors(
+ property_holder,
+ '%s_translation_domain' % (prop['id']),
+ 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)
else:
raise TypeError, '"%s" is illegal type for propertysheet' % \
prop['type']
@@ -1118,9 +1169,12 @@
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)
+ createDefaultAccessors(
+ property_holder,
+ prop['id'],
+ prop=prop,
+ read_permission=Permissions.AccessContentsInformation,
+ write_permission=Permissions.ModifyPortalContent)
# Get read and write permission
if object is not None:
@@ -1128,10 +1182,14 @@
else:
cat_object = None
if cat_object is not None:
- read_permission = Permissions.__dict__.get(cat_object.getReadPermission(), Permissions.AccessContentsInformation)
+ 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)
+ write_permission = Permissions.__dict__.get(
+ cat_object.getWritePermission(),
+ Permissions.ModifyPortalContent)
if isinstance(write_permission, Expression):
write_permission = write_permission(econtext)
else:
@@ -1142,7 +1200,8 @@
read_permission=read_permission, write_permission=write_permission)
createValueAccessors(property_holder, cat,
read_permission=read_permission, write_permission=write_permission)
- if object is not None and property_holder.__name__ == "Base": # XXX use if possible is and real class
+ if object is not None and property_holder.__name__ == "Base":
+ # XXX use if possible is and real class
base_category_list = []
for cat in base_category_dict.keys():
if isinstance(cat, Expression):
@@ -1160,10 +1219,14 @@
else:
cat_object = None
if cat_object is not None:
- read_permission = Permissions.__dict__.get(cat_object.getReadPermission(), Permissions.AccessContentsInformation)
+ 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)
+ write_permission = Permissions.__dict__.get(
+ cat_object.getWritePermission(),
+ Permissions.ModifyPortalContent)
if isinstance(write_permission, Expression):
write_permission = write_permission(econtext)
else:
@@ -1175,13 +1238,15 @@
# Unnecessary to create these accessors more than once.
base_category_dict.clear()
# Create the constraint method list - always check type
- property_holder.constraints = [ Constraint.PropertyTypeValidity(id='type_check',
- description="Type Validity Check Error") ]
+ property_holder.constraints = [
+ Constraint.PropertyTypeValidity(id='type_check',
+ description="Type Validity Check Error") ]
for const in constraint_list:
createConstraintList(property_holder, constraint_definition=const)
# ERP5 _properties and Zope _properties are somehow different
- # The id is converted to the Zope standard - we keep the original id as base_id
+ # 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()
@@ -1190,11 +1255,11 @@
if not prop.get('base_id', None):
new_prop['base_id'] = prop['id']
new_prop['id'] = prop['id'] + '_list'
- if prop.has_key('acquisition_base_category') and not prop.get('acquisition_copy_value'):
+ if prop.has_key('acquisition_base_category')\
+ 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 += [new_prop]
- #LOG('setDefaultProperties', 0, 'property_holder = %r, object = %r, converted_prop_list = %r, new_converted_prop_list = %r' % (property_holder, object, converted_prop_list, new_converted_prop_list))
# Set the properties of the class
property_holder._properties = tuple(new_converted_prop_list)
property_holder._categories = tuple(cat_list)
@@ -1245,7 +1310,8 @@
#####################################################
from Base import Base as BaseClass
-from Accessor import Base, List, Object, Acquired, Content, AcquiredProperty, ContentProperty
+from Accessor import Base, List, Object, Acquired, Content,\
+ AcquiredProperty, ContentProperty
import types
# Compile accessors
More information about the Erp5-report
mailing list