diff options
| author | Olivier Dony <odo@openerp.com> | 2012-03-30 23:49:06 +0200 |
|---|---|---|
| committer | Olivier Dony <odo@openerp.com> | 2012-03-30 23:49:06 +0200 |
| commit | 3e0267178ccfd2bf12d5a4a4e6d9aeb08e4a5cb2 (patch) | |
| tree | d23a8bb206b201c4058fdbf616087a8c531fb350 | |
| parent | eb9b0021ff3ac4576430a4660c77ce002fc18d0b (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.py | 15 |
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): |
