[Erp5-report] r10019 - /erp5/trunk/products/ERP5Type/Accessor/Value.py

nobody at svn.erp5.org nobody at svn.erp5.org
Sat Sep 16 12:18:07 CEST 2006


Author: jp
Date: Sat Sep 16 12:18:05 2006
New Revision: 10019

URL: http://svn.erp5.org?rev=10019&view=rev
Log:
Added support for keep_default. Full implementation of Uid setters

Modified:
    erp5/trunk/products/ERP5Type/Accessor/Value.py

Modified: erp5/trunk/products/ERP5Type/Accessor/Value.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Value.py?rev=10019&r1=10018&r2=10019&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Value.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Value.py Sat Sep 16 12:18:05 2006
@@ -75,7 +75,24 @@
 
     psyco.bind(__call__)
 
-DefaultSetter = SetSetter
+Setter = ListSetter
+
+class DefaultSetter(SetSetter):
+    """
+      Sets a category value through a provided value (Set mode)
+    """
+    _need__name__=1
+
+    def __call__(self, instance, *args, **kw):
+      if self._warning:
+        LOG("ERP5Type Deprecated Getter Id:",0, self._id)
+      instance._setDefaultValue(self._key, args[0],
+                                                 spec=kw.get('spec',()),
+                                                 filter=kw.get('filter', None),
+                                                 portal_type=kw.get('portal_type',()))
+      if self._reindex: instance.reindexObject()
+
+    psyco.bind(__call__)
 
 class DefaultGetter(Method):
     """
@@ -407,9 +424,9 @@
       return result_set
 
 
-class UidSetter(Method):
-    """
-      Sets a reference
+class UidSetSetter(Method):
+    """
+      Sets a category from the uid of the object
     """
     _need__name__=1
 
@@ -425,15 +442,45 @@
     def __call__(self, instance, *args, **kw):
       if self._warning:
         LOG("ERP5Type Deprecated Getter Id:",0, self._id)
-      instance._setValueUids(self._key, args[0],
-                                                 spec=kw.get('spec',()),
-                                                 filter=kw.get('filter', None),
-                                                 portal_type=kw.get('portal_type',()))
+      instance._setValueUidList(self._key, args[0],
+                                                 spec=kw.get('spec',()),
+                                                 filter=kw.get('filter', None),
+                                                 portal_type=kw.get('portal_type',()),
+                                                 keep_default=1)
       if self._reindex: instance.reindexObject()
 
-UidListSetter = UidSetter
-UidSetSetter = UidSetter # Error XXX
-UidDefaultSetter = UidSetter # Error XXX
+class UidListSetter(UidSetSetter):
+    """
+      Sets a category from the uid of the object
+    """
+    _need__name__=1
+
+    def __call__(self, instance, *args, **kw):
+      if self._warning:
+        LOG("ERP5Type Deprecated Getter Id:",0, self._id)
+      instance._setValueUidList(self._key, args[0],
+                                                 spec=kw.get('spec',()),
+                                                 filter=kw.get('filter', None),
+                                                 portal_type=kw.get('portal_type',()),
+                                                 keep_default=0)
+      if self._reindex: instance.reindexObject()
+
+UidSetter = UidListSetter
+
+class UidDefaultSetter(UidSetSetter):
+    """
+      Sets a category from the uid of the object
+    """
+    _need__name__=1
+
+    def __call__(self, instance, *args, **kw):
+      if self._warning:
+        LOG("ERP5Type Deprecated Getter Id:",0, self._id)
+      instance._setDefaultValueUid(self._key, args[0],
+                                                 spec=kw.get('spec',()),
+                                                 filter=kw.get('filter', None),
+                                                 portal_type=kw.get('portal_type',()))
+      if self._reindex: instance.reindexObject()
 
 class DefaultIdGetter(Method):
     """




More information about the Erp5-report mailing list