Browse Source
Merge pull request #1599 from akretion/12.0-base_exception_fix_intersection
[12.0][FIX] base_exception fix intersection operator
pull/1602/head
beau sebastien
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
3 additions and
3 deletions
-
base_exception/__manifest__.py
-
base_exception/models/base_exception.py
|
|
@ -4,7 +4,7 @@ |
|
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). |
|
|
|
{ |
|
|
|
'name': 'Exception Rule', |
|
|
|
'version': '12.0.2.0.1', |
|
|
|
'version': '12.0.2.0.2', |
|
|
|
'category': 'Generic Modules', |
|
|
|
'summary': """ |
|
|
|
This module provide an abstract model to manage customizable |
|
|
|
|
|
@ -76,7 +76,7 @@ class BaseExceptionMethod(models.AbstractModel): |
|
|
|
def detect_exceptions(self): |
|
|
|
"""List all exception_ids applied on self |
|
|
|
Exception ids are also written on records |
|
|
|
If self is empty, check exceptions on all records. |
|
|
|
If self is empty, check exceptions on all active records. |
|
|
|
""" |
|
|
|
rules = self.env['exception.rule'].sudo().search( |
|
|
|
self._rule_domain()) |
|
|
@ -85,7 +85,7 @@ class BaseExceptionMethod(models.AbstractModel): |
|
|
|
records_with_exception = self._detect_exceptions(rule) |
|
|
|
reverse_field = self._reverse_field() |
|
|
|
if self: |
|
|
|
commons = self and rule[reverse_field] |
|
|
|
commons = self & rule[reverse_field] |
|
|
|
to_remove = commons - records_with_exception |
|
|
|
to_add = records_with_exception - commons |
|
|
|
to_remove_list = [(3, x.id, _) for x in to_remove] |
|
|
|