From 62df0e59ea1f23035e05bce8d0751300c8150fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 28 Sep 2011 13:17:03 +0200 Subject: [PATCH] Add missing operators to requests issue2139 review102003 --- work.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/work.py b/work.py index 5397402408..ea436f0743 100644 --- a/work.py +++ b/work.py @@ -189,20 +189,34 @@ class Work(ModelSQL, ModelView): operator = v[0] target_ids = len(v) > 1 and v[1] or [] - if operator == 'set': + if operator == 'create': + to_link.append(request_obj.create(v[1])) + elif operator == 'write': + request_obj.write(v[1], v[2]) + elif operator == 'delete': + request_obj.delete(v[1]) + elif operator == 'delete_all': + target_ids = [] + for record_id in ids: + ref_ids = req_ref_obj.search([ + ('reference', '=', + 'project.work,%s' % record_id), + ]) + refs = req_ref_obj.browse(ref_ids) + target_ids.extend(ref.request.id for ref in refs) + request_obj.delete(target_ids) + elif operator == 'unlink': + to_unlink.extend((i for i in target_ids if i in currents)) + elif operator == 'add': + to_link.extend((i for i in target_ids if i not in + currents)) + elif operator == 'unlink_all': + to_unlink.extend(currents) + elif operator == 'set': to_link.extend((i for i in target_ids if i not in currents)) to_unlink.extend((i for i in currents if i not in target_ids)) - elif operator == 'add': - to_link.extend((i for i in target_ids if i not in - currents)) - elif operator == 'unlink': - to_unlink.extend((i for i in target_ids if i in currents)) - elif operator == 'unlink_all': - to_unlink.extend(currents) - elif operator == 'delete': - request_obj.delete(to_delete) else: raise Exception('Operation not supported')