summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2012-03-30 23:49:06 +0200
committerOlivier Dony <odo@openerp.com>2012-03-30 23:49:06 +0200
commit3e0267178ccfd2bf12d5a4a4e6d9aeb08e4a5cb2 (patch)
treed23a8bb206b201c4058fdbf616087a8c531fb350
parenteb9b0021ff3ac4576430a4660c77ce002fc18d0b (diff)
[IMP] workflow: preventing deleting an activity with existing workitems, as a safeguard
Now that workitems will be cascade-deleted along with their activities it is important to prevent accidental deletion. bzr revid: odo@openerp.com-20120330214906-ioo3gpg5a1j1e85o
-rw-r--r--openerp/addons/base/ir/workflow/workflow.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/openerp/addons/base/ir/workflow/workflow.py b/openerp/addons/base/ir/workflow/workflow.py
index 8ec843230d4..d734dda133b 100644
--- a/openerp/addons/base/ir/workflow/workflow.py
+++ b/openerp/addons/base/ir/workflow/workflow.py
@@ -19,9 +19,10 @@
#
##############################################################################
-from osv import fields, osv
-from tools import graph
-import netsvc
+from openerp.osv import fields, osv
+from openerp.tools import graph
+from openerp.tools.translate import _
+from openerp import netsvc
class workflow(osv.osv):
_name = "workflow"
@@ -138,6 +139,14 @@ class wkf_activity(osv.osv):
'join_mode': lambda *a: 'XOR',
'split_mode': lambda *a: 'XOR',
}
+
+ def unlink(self, cr, uid, ids, context=None):
+ if context is None: context = {}
+ if not context.get('_force_unlink') and self.pool.get('workflow.workitem').search(cr, uid, [('act_id', 'in', ids)]):
+ raise osv.except_osv(_('Operation forbidden'),
+ _('Please make sure no workitems refer to an activity before deleting it!'))
+ super(wkf_activity, self).unlink(cr, uid, ids, context=context)
+
wkf_activity()
class wkf_transition(osv.osv):