summaryrefslogtreecommitdiff
path: root/odoo/workflow/__init__.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2016-09-02 15:58:39 +0200
committerRaphael Collet <rco@openerp.com>2016-09-02 17:28:12 +0200
commit9e64f9f9514194d74e166b032add8511182f2677 (patch)
tree5086710c04c6b923be18a6d1d97b3f0f3a2a9c4a /odoo/workflow/__init__.py
parent11812b0b9e82b2b1b9041d8250ce01e7b4a5f7ee (diff)
[REF] openerp: move `openerp` to `odoo`
Diffstat (limited to 'odoo/workflow/__init__.py')
-rw-r--r--odoo/workflow/__init__.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/odoo/workflow/__init__.py b/odoo/workflow/__init__.py
new file mode 100644
index 00000000000..752f7e54bea
--- /dev/null
+++ b/odoo/workflow/__init__.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from openerp.workflow.service import WorkflowService
+
+# The new API is in openerp.workflow.workflow_service
+# OLD API of the Workflow
+
+def clear_cache(cr, uid):
+ WorkflowService.clear_cache(cr.dbname)
+
+def trg_write(uid, res_type, res_id, cr):
+ """
+ Reevaluates the specified workflow instance. Thus if any condition for
+ a transition have been changed in the backend, then running ``trg_write``
+ will move the workflow over that transition.
+
+ :param res_type: the model name
+ :param res_id: the model instance id the workflow belongs to
+ :param cr: a database cursor
+ """
+ return WorkflowService.new(cr, uid, res_type, res_id).write()
+
+def trg_trigger(uid, res_type, res_id, cr):
+ """
+ Activate a trigger.
+
+ If a workflow instance is waiting for a trigger from another model, then this
+ trigger can be activated if its conditions are met.
+
+ :param res_type: the model name
+ :param res_id: the model instance id the workflow belongs to
+ :param cr: a database cursor
+ """
+ return WorkflowService.new(cr, uid, res_type, res_id).trigger()
+
+def trg_delete(uid, res_type, res_id, cr):
+ """
+ Delete a workflow instance
+
+ :param res_type: the model name
+ :param res_id: the model instance id the workflow belongs to
+ :param cr: a database cursor
+ """
+ return WorkflowService.new(cr, uid, res_type, res_id).delete()
+
+def trg_create(uid, res_type, res_id, cr):
+ """
+ Create a new workflow instance
+
+ :param res_type: the model name
+ :param res_id: the model instance id to own the created worfklow instance
+ :param cr: a database cursor
+ """
+ return WorkflowService.new(cr, uid, res_type, res_id).create()
+
+def trg_validate(uid, res_type, res_id, signal, cr):
+ """
+ Fire a signal on a given workflow instance
+
+ :param res_type: the model name
+ :param res_id: the model instance id the workflow belongs to
+ :signal: the signal name to be fired
+ :param cr: a database cursor
+ """
+ assert isinstance(signal, basestring)
+ return WorkflowService.new(cr, uid, res_type, res_id).validate(signal)
+
+def trg_redirect(uid, res_type, res_id, new_rid, cr):
+ """
+ Re-bind a workflow instance to another instance of the same model.
+
+ Make all workitems which are waiting for a (subflow) workflow instance
+ for the old resource point to the (first active) workflow instance for
+ the new resource.
+
+ :param res_type: the model name
+ :param res_id: the model instance id the workflow belongs to
+ :param new_rid: the model instance id to own the worfklow instance
+ :param cr: a database cursor
+ """
+ assert isinstance(new_rid, (long, int))
+ return WorkflowService.new(cr, uid, res_type, res_id).redirect(new_rid)