Vo Minh Thu (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-server/trunk-methflow into lp:openobject-server.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-methflow/+merge/146823
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-methflow/+merge/146823
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-server/trunk-methflow.
=== added file 'doc/workflows.rst'
--- doc/workflows.rst	1970-01-01 00:00:00 +0000
+++ doc/workflows.rst	2013-02-06 11:06:26 +0000
@@ -0,0 +1,13 @@
+.. _workflows:
+
+Workflows
+=========
+
+- Low-level workflow functions (i.e. the openerp.workflow "service").
+  Useful when looking-up a model and its records is not necessary, i.e. when
+  working with raw model name and record ids is preferred (less hit to the
+  database). Cannot really be used as it would bypass the ORM methods.
+- Model-level (ORM) methods.
+- XML-RPC endpoint and methods.
+
+- Blah Model.signal_xxxx()

=== modified file 'openerp/osv/orm.py'
--- openerp/osv/orm.py	2012-12-27 17:28:25 +0000
+++ openerp/osv/orm.py	2013-02-06 11:06:26 +0000
@@ -3928,6 +3928,24 @@
             result[res_id] = wf_service.trg_validate(uid, self._name, res_id, signal, cr)
         return result
 
+    def create_workflow(self, cr, uid, ids):
+        wf_service = netsvc.LocalService("workflow")
+        for res_id in ids:
+            wf_service.trg_create(uid, self._name, res_id, cr)
+        return True
+
+    def delete_workflow(self, cr, uid, ids):
+        wf_service = netsvc.LocalService("workflow")
+        for res_id in ids:
+            wf_service.trg_create(uid, self._name, res_id, cr)
+        return True
+
+    def redirect_workflow(self, cr, uid, old_new_ids):
+        wf_service = netsvc.LocalService("workflow")
+        for old_id, new_id in old_new_ids:
+            wf_service.trg_redirect(uid, self._name, old_id, new_id, cr)
+        return True
+
     def unlink(self, cr, uid, ids, context=None):
         """
         Delete records with given ids
@@ -5251,6 +5269,20 @@
         """ stuff to do right after the registry is built """
         pass
 
+    def __getattr__(self, name):
+        if name.startswith('signal_'):
+            signal_name = name[len('signal_'):]
+            assert signal_name
+            def handle_workflow_signal(cr, uid, ids):
+                workflow_service = netsvc.LocalService("workflow")
+                res = {}
+                for id in ids:
+                    # TODO consolidate trg_validate() and the functions it calls to work on a list of IDs.
+                    res[id] = workflow_service.trg_validate(uid, self._name, id, signal_name, cr)
+                return res
+            return handle_workflow_signal
+        return super(BaseModel, self).__getattr__(name)
+
 # keep this import here, at top it will cause dependency cycle errors
 import expression
 

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : openerp-dev-gtk@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to