From c56d77f3cfe952a87885714a2d51fe66b417c0ed Mon Sep 17 00:00:00 2001 From: Jean-Paul Smets <jp@nexedi.com> Date: Mon, 9 May 2005 11:37:37 +0000 Subject: [PATCH] Added support for LogicalPath git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3000 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/Accessor/Value.py | 54 ++++++++++++++++++++++++++++++ product/ERP5Type/Utils.py | 34 +++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/product/ERP5Type/Accessor/Value.py b/product/ERP5Type/Accessor/Value.py index 336cb65a07..bee30945c8 100755 --- a/product/ERP5Type/Accessor/Value.py +++ b/product/ERP5Type/Accessor/Value.py @@ -304,6 +304,33 @@ class DefaultTitleOrIdGetter(Method): TitleOrIdGetter = DefaultTitleOrIdGetter +class DefaultLogicalPathGetter(Method): + """ + Gets a default logical path object + """ + _need__name__=1 + + # Generic Definition of Method Object + # This is required to call the method form the Web + func_code = func_code() + func_code.co_varnames = ('self',) + func_code.co_argcount = 1 + func_defaults = () + + def __init__(self, id, key): + self._id = id + self.__name__ = id + self._key = key + + def __call__(self, instance, *args, **kw): + value = instance._getDefaultAcquiredValue(self._key, spec=kw.get('spec',())) + if value is not None: + return value.getLogicalPath() + else: + return None + +LogicalPathGetter = DefaultLogicalPathGetter + class IdListGetter(Method): """ Gets a list of reference objects uid @@ -331,6 +358,33 @@ class IdListGetter(Method): IdSetGetter = IdListGetter # Error XXX +class LogicalPathListGetter(Method): + """ + Gets a list of logical path + """ + _need__name__=1 + + # Generic Definition of Method Object + # This is required to call the method form the Web + func_code = func_code() + func_code.co_varnames = ('self',) + func_code.co_argcount = 1 + func_defaults = () + + def __init__(self, id, key): + self._id = id + self.__name__ = id + self._key = key + + def __call__(self, instance, *args, **kw): + return map(lambda x:x.getLogicalPath(), instance._getAcquiredValueList(self._key, + spec=kw.get('spec',()), + filter=kw.get('filter', None), + portal_type=kw.get('portal_type',())) + ) + +LogicalPathSetGetter = LogicalPathListGetter # Error XXX + class DefaultPropertyGetter(Method): """ Gets a default reference object diff --git a/product/ERP5Type/Utils.py b/product/ERP5Type/Utils.py index 07ccd71b81..9b84835bd3 100755 --- a/product/ERP5Type/Utils.py +++ b/product/ERP5Type/Utils.py @@ -1984,6 +1984,24 @@ def createValueAccessors(klass, id): if not hasattr(klass, accessor_name): setattr(klass, accessor_name, accessor) + accessor_name = 'get' + UpperCase(id) + 'LogicalPathList' + accessor = Value.LogicalPathListGetter(accessor_name, id) + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name) + accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPathList' + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + + accessor_name = 'get' + UpperCase(id) + 'LogicalPathSet' + accessor = Value.LogicalPathSetGetter(accessor_name, id) + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name) + accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPathSet' + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + accessor_name = 'get' + UpperCase(id) + 'UidList' accessor = Value.UidListGetter(accessor_name, id) if not hasattr(klass, accessor_name): @@ -2116,6 +2134,22 @@ def createValueAccessors(klass, id): if not hasattr(klass, accessor_name): setattr(klass, accessor_name, accessor) + accessor_name = 'getDefault' + UpperCase(id) + 'LogicalPath' + accessor = Value.DefaultLogicalPathGetter(accessor_name, id) + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name) + accessor_name = 'get' + UpperCase(id) + 'LogicalPath' + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + klass.security.declareProtected(Permissions.AccessContentsInformation, accessor_name) + accessor_name = '_categoryGetDefault' + UpperCase(id) + 'LogicalPath' + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + accessor_name = '_categoryGet' + UpperCase(id) + 'LogicalPath' + if not hasattr(klass, accessor_name): + setattr(klass, accessor_name, accessor) + setter_name = 'set' + UpperCase(id) + 'Value' setter = Value.Setter(setter_name, id, reindex=1) if not hasattr(klass, setter_name): -- 2.30.9