summaryrefslogtreecommitdiff
path: root/addons/process/process.py
diff options
context:
space:
mode:
authorAmit Mendapara <ame@tinyerp.com>2008-09-24 16:15:36 +0530
committerAmit Mendapara <ame@tinyerp.com>2008-09-24 16:15:36 +0530
commite00f767a6553dd06da860c600c1138e346af3470 (patch)
tree784c8bba81575b00c81a732960bc6f9300874a97 /addons/process/process.py
parent283f140e7c4e464b1336fd21de84eed841fa2ba6 (diff)
* search by model.
bzr revid: ame@tinyerp.com-20080924104536-w6sdgmueia4t9dmq
Diffstat (limited to 'addons/process/process.py')
-rw-r--r--addons/process/process.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/addons/process/process.py b/addons/process/process.py
index 49f6c8dc83a..1a0024af4b1 100644
--- a/addons/process/process.py
+++ b/addons/process/process.py
@@ -63,6 +63,29 @@ class process_process(osv.osv):
'active' : lambda *a: True,
}
+ def search_by_model(self, cr, uid, res_model, context):
+ pool = pooler.get_pool(cr.dbname)
+
+ model_ids = pool.get('ir.model').search(cr, uid, [('model', '=', res_model)])
+ if not model_ids:
+ return []
+
+ nodes = pool.get('process.node').search(cr, uid, [('model_id', 'in', model_ids)])
+ if not nodes:
+ return []
+
+ nodes = pool.get('process.node').browse(cr, uid, nodes, context)
+
+ unique = []
+ result = []
+
+ for node in nodes:
+ if node.process_id.id not in unique:
+ result.append((node.process_id.id, node.process_id.name))
+ unique.append(node.process_id.id)
+
+ return result
+
def graph_get(self, cr, uid, id, res_model, res_id, scale, context):
pool = pooler.get_pool(cr.dbname)