diff --git a/account.py b/account.py index 23555a13d8..f4df7752e4 100644 --- a/account.py +++ b/account.py @@ -215,6 +215,14 @@ class Type(OSV): res.append((type.id, _name(type))) return res + def delete(self, cursor, user, ids, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + type_ids = self.search(cursor, user, [ + ('parent', 'child_of', ids), + ], context=context) + return super(Type, self).delete(cursor, user, type_ids, context=context) + Type() diff --git a/tax.py b/tax.py index 7ca0179520..f3d63a501a 100644 --- a/tax.py +++ b/tax.py @@ -228,6 +228,15 @@ class Code(OSV): for r in self.read(cursor, user, ids, [self._rec_name, 'code'], context=context, load='_classic_write')] + def delete(self, cursor, user, ids, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + code_ids = self.search(cursor, user, [ + ('parent', 'child_of', ids), + ], context=context) + return super(Code, self).delete(cursor, user, code_ids, + context=context) + Code() @@ -504,7 +513,7 @@ class Tax(OSV): ('fixed', 'Fixed'), ('none', 'None'), ], 'Type', required=True) - parent = fields.Many2One('account.tax', 'Parent') + parent = fields.Many2One('account.tax', 'Parent', ondelete='CASCADE') childs = fields.One2Many('account.tax', 'parent', 'Childs') company = fields.Many2One('company.company', 'Company', required=True)