diff options
| author | Amit Mendapara <ame@tinyerp.com> | 2008-09-24 16:15:36 +0530 |
|---|---|---|
| committer | Amit Mendapara <ame@tinyerp.com> | 2008-09-24 16:15:36 +0530 |
| commit | e00f767a6553dd06da860c600c1138e346af3470 (patch) | |
| tree | 784c8bba81575b00c81a732960bc6f9300874a97 /addons/process/process.py | |
| parent | 283f140e7c4e464b1336fd21de84eed841fa2ba6 (diff) | |
* search by model.
bzr revid: ame@tinyerp.com-20080924104536-w6sdgmueia4t9dmq
Diffstat (limited to 'addons/process/process.py')
| -rw-r--r-- | addons/process/process.py | 23 |
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) |
