Browse Source

base_exception allow to filter rules in inherited modules

pull/1557/head
hparfr 6 years ago
committed by Iván Todorovich
parent
commit
28fca353b1
  1. 12
      base_exception/models/base_exception.py

12
base_exception/models/base_exception.py

@ -194,6 +194,15 @@ class BaseException(models.AbstractModel):
if hasattr(exception_obj, field.name) if hasattr(exception_obj, field.name)
] or [None])[0] ] or [None])[0]
def _rule_domain(self):
"""Filter exception.rules.
By default, only the rules with the correct rule group
will be used.
"""
# TODO fix self[0] : it may not be the same on all ids in self
return [('rule_group', '=', self[0].rule_group)]
@api.multi @api.multi
def detect_exceptions(self): def detect_exceptions(self):
"""List all exception_ids applied on self """List all exception_ids applied on self
@ -203,8 +212,7 @@ class BaseException(models.AbstractModel):
return [] return []
exception_obj = self.env['exception.rule'] exception_obj = self.env['exception.rule']
all_exceptions = exception_obj.sudo().search( all_exceptions = exception_obj.sudo().search(
[('rule_group', '=', self[0].rule_group)])
# TODO fix self[0] : it may not be the same on all ids in self
self._rule_domain())
model_exceptions = all_exceptions.filtered( model_exceptions = all_exceptions.filtered(
lambda ex: ex.model == self._name) lambda ex: ex.model == self._name)
sub_exceptions = all_exceptions.filtered( sub_exceptions = all_exceptions.filtered(

Loading…
Cancel
Save