[Erp5-report] r10028 - /erp5/trunk/products/ERP5Type/Base.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Sat Sep 16 14:15:44 CEST 2006
Author: jp
Date: Sat Sep 16 14:15:42 2006
New Revision: 10028
URL: http://svn.erp5.org?rev=10028&view=rev
Log:
Make CMFCategory test pass again (Value accessor implementation now made consistent for both categories and documents)
Modified:
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=10028&r1=10027&r2=10028&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Sat Sep 16 14:15:42 2006
@@ -1291,27 +1291,32 @@
# categories
security.declareProtected( Permissions.ModifyPortalContent, '_setValue' )
def _setValue(self, id, target, spec=(), filter=None, portal_type=(), keep_default=1):
+ start_string = "%s/" % id
+ start_string_len = len(start_string)
if target is None :
path = target
elif isinstance(target, str):
# We have been provided a string
path = target
+ if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
elif isinstance(target, (tuple, list)):
# We have been provided a list or tuple
path_list = []
for target_item in target:
if isinstance(target_item, str):
- path_list += [target_item]
+ path = target_item
else:
path = target_item.getRelativeUrl()
- path_list += [path]
+ if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
+ path_list += [path]
path = path_list
else:
# We have been provided an object
# Find the object
path = target.getRelativeUrl()
+ if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
self._setCategoryMembership(id, path, spec=spec, filter=filter, portal_type=portal_type,
- base=1, keep_default=keep_default)
+ base=0, keep_default=keep_default)
security.declareProtected( Permissions.ModifyPortalContent, '_setValueList' )
_setValueList = _setValue
@@ -1331,7 +1336,7 @@
elif isinstance(target, str):
# We have been provided a string
path = target
- else:
+ else:
# We have been provided an object
# Find the object
path = target.getRelativeUrl()
More information about the Erp5-report
mailing list