[Erp5-report] r18784 - /erp5/trunk/products/ERP5Type/Accessor/
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Jan 17 19:58:46 CET 2008
Author: jerome
Date: Thu Jan 17 19:58:45 2008
New Revision: 18784
URL: http://svn.erp5.org?rev=18784&view=rev
Log:
private accessor now returns the list of modified objects, so that Alias.Reindex can reindex modified objects.
Modified:
erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py
erp5/trunk/products/ERP5Type/Accessor/Alias.py
erp5/trunk/products/ERP5Type/Accessor/Base.py
erp5/trunk/products/ERP5Type/Accessor/Category.py
erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py
erp5/trunk/products/ERP5Type/Accessor/List.py
erp5/trunk/products/ERP5Type/Accessor/Value.py
Modified: erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py?rev=18784&r1=18783&r2=18784&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/AcquiredProperty.py Thu Jan 17 19:58:45 2008
@@ -169,6 +169,7 @@
o.setProperty(self._acquired_property, value, *args, **kw)
else:
o._setProperty(self._acquired_property, value, *args, **kw)
+ return (o, )
DefaultSetter = Setter
Modified: erp5/trunk/products/ERP5Type/Accessor/Alias.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Alias.py?rev=18784&r1=18783&r2=18784&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Alias.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Alias.py Thu Jan 17 19:58:45 2008
@@ -54,8 +54,14 @@
def __call__(self, instance, *args, **kw):
method = getattr(instance, self._accessor_id)
- method(*args, **kw)
- instance.reindexObject()
+ modified_object_list = method(*args, **kw)
+ # private methods can return a list of modified objects that this
+ # accessor have to reindex
+ if modified_object_list:
+ for modified_object in modified_object_list:
+ modified_object.reindexObject()
+ else:
+ instance.reindexObject()
class Dummy(Reindex):
"""
@@ -79,4 +85,5 @@
def __call__(self, instance, *args, **kw):
method = getattr(instance, self._accessor_id)
- method(*args, **kw)
+ method(*args, **kw)
+
Modified: erp5/trunk/products/ERP5Type/Accessor/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Base.py?rev=18784&r1=18783&r2=18784&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Base.py Thu Jan 17 19:58:45 2008
@@ -69,6 +69,7 @@
def __call__(self, instance, *args, **kw):
value = args[0]
+ modified_object_list = []
if not self._reindex:
# Modify the property
if value in self._null:
@@ -87,10 +88,13 @@
instance._setObject(self._storage_id, o)
o = getattr(instance, self._storage_id)
o.manage_upload(file = file_upload)
+ modified_object_list = [o]
else:
LOG('ERP5Type WARNING',0,'%s is not an instance of FileUpload' % str(file_upload))
else:
setattr(instance, self._storage_id, self._cast(args[0]))
+ modified_object_list.append(instance)
+ return modified_object_list
else:
# Call the private setter
warnings.warn("The reindexing accessors are deprecated.\n"
Modified: erp5/trunk/products/ERP5Type/Accessor/Category.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Category.py?rev=18784&r1=18783&r2=18784&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Category.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Category.py Thu Jan 17 19:58:45 2008
@@ -64,6 +64,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
Setter = ListSetter
@@ -98,6 +99,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
class SetSetter(Method):
"""
@@ -142,6 +144,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
class DefaultGetter(Method):
Modified: erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py?rev=18784&r1=18783&r2=18784&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/ContentProperty.py Thu Jan 17 19:58:45 2008
@@ -209,6 +209,7 @@
# We return the first available object in the list
o = None
available_id = None
+ modified_object_list = ()
for k in self._storage_id_list:
o = instance._getOb(k, None)
if o is None: available_id = k
@@ -220,6 +221,7 @@
o.setProperty(self._acquired_property, *args, **kw)
else:
o._setProperty(self._acquired_property, *args, **kw)
+ modified_object_list = (o, )
if o is None and available_id is not None:
from Products.ERP5Type.Utils import assertAttributePortalType
assertAttributePortalType(instance, available_id, self._portal_type)
@@ -233,6 +235,8 @@
o.setProperty(self._acquired_property, *args, **kw)
else:
o._setProperty(self._acquired_property, *args, **kw)
+ modified_object_list = (o, )
+ return modified_object_list
class ListGetter(Method):
"""
Modified: erp5/trunk/products/ERP5Type/Accessor/List.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/List.py?rev=18784&r1=18783&r2=18784&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/List.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/List.py Thu Jan 17 19:58:45 2008
@@ -188,6 +188,7 @@
# The list has no default property -> it is empty
new_list_value = []
setattr(instance, self._storage_id, tuple(new_list_value))
+ return (instance, )
else:
# Call the private setter
warnings.warn("The reindexing accessors are deprecated.\n"
Modified: erp5/trunk/products/ERP5Type/Accessor/Value.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Value.py?rev=18784&r1=18783&r2=18784&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Value.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Value.py Thu Jan 17 19:58:45 2008
@@ -61,6 +61,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
psyco.bind(__call__)
@@ -84,6 +85,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
psyco.bind(__call__)
@@ -108,6 +110,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
psyco.bind(__call__)
@@ -497,6 +500,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
UidSetter = UidListSetter
@@ -519,6 +523,7 @@
"Please use Alias.Reindex instead.",
DeprecationWarning)
instance.reindexObject()
+ return (instance, )
class DefaultIdGetter(Method):
"""
More information about the Erp5-report
mailing list