diff --git a/base_changeset/models/base.py b/base_changeset/models/base.py
index 923e89810..7680b986b 100644
--- a/base_changeset/models/base.py
+++ b/base_changeset/models/base.py
@@ -88,10 +88,11 @@ class Base(models.AbstractModel):
{
field_name: value
for field_name, value in vals.items()
- if field_name in self._fields and
- self._fields[field_name].required
+ if field_name in self._fields
+ and self._fields[field_name].required
and isinstance(
- self._fields[field_name], fields.Many2one,
+ self._fields[field_name],
+ fields.Many2one,
)
},
this,
@@ -99,13 +100,12 @@ class Base(models.AbstractModel):
vals,
)
local_vals = {
- key: value
- for key, value in local_vals.items()
- if vals[key] != value
+ key: value for key, value in local_vals.items() if vals[key] != value
}
if local_vals:
this.with_context(
- __no_changeset=disable_changeset, tracking_disable=True,
+ __no_changeset=disable_changeset,
+ tracking_disable=True,
).write(local_vals)
return result
diff --git a/base_changeset/models/changeset_field_rule.py b/base_changeset/models/changeset_field_rule.py
index f3b308abf..87b224213 100644
--- a/base_changeset/models/changeset_field_rule.py
+++ b/base_changeset/models/changeset_field_rule.py
@@ -44,11 +44,14 @@ class ChangesetFieldRule(models.Model):
"Available variables: object, user",
)
validator_group_ids = fields.Many2many(
- 'res.groups', 'changeset_field_rule_validator_group_rel',
- string='Validator Groups', default=lambda self: self.env.ref(
- 'base_changeset.group_changeset_user',
+ "res.groups",
+ "changeset_field_rule_validator_group_rel",
+ string="Validator Groups",
+ default=lambda self: self.env.ref(
+ "base_changeset.group_changeset_user",
raise_if_not_found=False,
- ) or self.env['res.groups'],
+ )
+ or self.env["res.groups"],
)
def init(self):
@@ -89,7 +92,7 @@ class ChangesetFieldRule(models.Model):
def _selection_action(self):
return [("auto", "Auto"), ("validate", "Validate"), ("never", "Never")]
- @api.constrains('expression')
+ @api.constrains("expression")
def _check_expression(self):
for this in self:
this._evaluate_expression(self.env[this.model_id.model].new({}))
@@ -156,7 +159,7 @@ class ChangesetFieldRule(models.Model):
return rules
def _evaluate_expression(self, record):
- """ Evaluate expression if set """
+ """Evaluate expression if set"""
self.ensure_one()
return not self.expression or tools.safe_eval.safe_eval(
self.expression, {"object": record, "user": self.env.user}
diff --git a/base_changeset/models/record_changeset.py b/base_changeset/models/record_changeset.py
index 7ff82e8a2..fd520c7eb 100644
--- a/base_changeset/models/record_changeset.py
+++ b/base_changeset/models/record_changeset.py
@@ -144,9 +144,10 @@ class RecordChangeset(models.Model):
# overwrite with null value for new records
write_values[field] = (
# but create some default for required text fields
- record._fields[field].required and
- record._fields[field].type in ('char', 'text') and
- '/' or record._fields[field].null(record)
+ record._fields[field].required
+ and record._fields[field].type in ("char", "text")
+ and "/"
+ or record._fields[field].null(record)
)
changes.append(change)
if changes:
diff --git a/base_changeset/models/record_changeset_change.py b/base_changeset/models/record_changeset_change.py
index a5e46ea91..4d8cc6682 100644
--- a/base_changeset/models/record_changeset_change.py
+++ b/base_changeset/models/record_changeset_change.py
@@ -225,8 +225,7 @@ class RecordChangesetChange(models.Model):
changes_ok = self.browse()
key = attrgetter("changeset_id")
for changeset, changes in groupby(
- self.with_context(__no_changeset=disable_changeset).sorted(key=key),
- key=key
+ self.with_context(__no_changeset=disable_changeset).sorted(key=key), key=key
):
values = {}
for change in changes:
@@ -247,9 +246,9 @@ class RecordChangesetChange(models.Model):
self._check_previous_changesets(changeset)
- changeset.record_id.with_context(
- __no_changeset=disable_changeset
- ).write(values)
+ changeset.record_id.with_context(__no_changeset=disable_changeset).write(
+ values
+ )
changes_ok._finalize_change_approval()
diff --git a/base_changeset/security/rules.xml b/base_changeset/security/rules.xml
index fd9037712..0c629fb53 100644
--- a/base_changeset/security/rules.xml
+++ b/base_changeset/security/rules.xml
@@ -26,6 +26,8 @@
Allow changeset change access for changeset users
- [('rule_id.validator_group_ids', 'in', user.groups_id.ids)]
+ [('rule_id.validator_group_ids', 'in', user.groups_id.ids)]
diff --git a/base_changeset/tests/test_changeset_field_type.py b/base_changeset/tests/test_changeset_field_type.py
index 44db522f8..75df21ff4 100644
--- a/base_changeset/tests/test_changeset_field_type.py
+++ b/base_changeset/tests/test_changeset_field_type.py
@@ -5,8 +5,8 @@
from odoo import fields
from odoo.tests.common import TransactionCase
-from .common import ChangesetTestCommon
from ..models.base import disable_changeset
+from .common import ChangesetTestCommon
class TestChangesetFieldType(ChangesetTestCommon, TransactionCase):
diff --git a/base_changeset/tests/test_changeset_flow.py b/base_changeset/tests/test_changeset_flow.py
index e10f5ca39..d84235b70 100644
--- a/base_changeset/tests/test_changeset_flow.py
+++ b/base_changeset/tests/test_changeset_flow.py
@@ -8,8 +8,8 @@ from odoo import fields
from odoo.exceptions import UserError
from odoo.tests.common import TransactionCase
-from .common import ChangesetTestCommon
from ..models.base import disable_changeset
+from .common import ChangesetTestCommon
class TestChangesetFlow(ChangesetTestCommon, TransactionCase):
@@ -76,7 +76,7 @@ class TestChangesetFlow(ChangesetTestCommon, TransactionCase):
self.assertEqual(self.partner.street2, "street2 X")
def test_create_new_changeset(self):
- """ Create a new partner with a changeset """
+ """Create a new partner with a changeset"""
new = (
self.env["res.partner"]
.with_context(
@@ -120,9 +120,9 @@ class TestChangesetFlow(ChangesetTestCommon, TransactionCase):
"""No changeset created when both sides have an empty value"""
# we have to ensure that even if we write '' to a False field, we won't
# write a changeset
- self.partner.with_context(
- __no_changeset=disable_changeset
- ).write({"street": False})
+ self.partner.with_context(__no_changeset=disable_changeset).write(
+ {"street": False}
+ )
self.partner._compute_changeset_ids()
self.partner._compute_count_pending_changesets()
self.assertEqual(self.partner.count_pending_changesets, 0)
@@ -409,15 +409,17 @@ class TestChangesetFlow(ChangesetTestCommon, TransactionCase):
self.assertIn(bank.acc_number, bank.changeset_ids.name_get()[0][1])
def test_new_changeset_expression(self):
- """ Test that rules can be conditional """
- self.env["changeset.field.rule"].search([
- ("field_id", "=", self.field_street.id),
- ]).expression = "object.street != 'street X'"
+ """Test that rules can be conditional"""
+ self.env["changeset.field.rule"].search(
+ [
+ ("field_id", "=", self.field_street.id),
+ ]
+ ).expression = "object.street != 'street X'"
self.partner.street = "street Y"
self.partner.refresh()
- self.assertEqual(self.partner.street, 'street Y')
+ self.assertEqual(self.partner.street, "street Y")
self.assertFalse(self.partner.changeset_ids)
self.partner.street = "street Z"
self.partner.refresh()
self.assertTrue(self.partner.changeset_ids)
- self.assertEqual(self.partner.street, 'street Y')
+ self.assertEqual(self.partner.street, "street Y")
diff --git a/base_changeset/tests/test_changeset_origin.py b/base_changeset/tests/test_changeset_origin.py
index 4bdb38128..a1f7c91ff 100644
--- a/base_changeset/tests/test_changeset_origin.py
+++ b/base_changeset/tests/test_changeset_origin.py
@@ -4,8 +4,8 @@
from odoo.tests.common import Form, TransactionCase
-from .common import ChangesetTestCommon
from ..models.base import disable_changeset
+from .common import ChangesetTestCommon
class TestChangesetOrigin(ChangesetTestCommon, TransactionCase):
@@ -45,18 +45,18 @@ class TestChangesetOrigin(ChangesetTestCommon, TransactionCase):
self.assertEqual(self.partner.name, "X")
self.assertEqual(change.origin_value_char, "X")
self.assertEqual(change.origin_value_display, "X")
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "A"
self.assertEqual(change.origin_value_char, "A")
self.assertEqual(change.origin_value_display, "A")
change.apply()
self.assertEqual(change.origin_value_char, "A")
self.assertEqual(change.origin_value_display, "A")
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "B"
self.assertEqual(change.origin_value_char, "A")
self.assertEqual(change.origin_value_display, "A")
@@ -75,18 +75,18 @@ class TestChangesetOrigin(ChangesetTestCommon, TransactionCase):
self.assertEqual(self.partner.name, "X")
self.assertEqual(change.origin_value_char, "X")
self.assertEqual(change.origin_value_display, "X")
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "A"
self.assertEqual(change.origin_value_char, "A")
self.assertEqual(change.origin_value_display, "A")
change.cancel()
self.assertEqual(change.origin_value_char, "A")
self.assertEqual(change.origin_value_display, "A")
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "B"
self.assertEqual(change.origin_value_char, "A")
self.assertEqual(change.origin_value_display, "A")
@@ -101,16 +101,16 @@ class TestChangesetOrigin(ChangesetTestCommon, TransactionCase):
change = changeset.change_ids
self.assertEqual(self.partner.name, "X")
self.assertFalse(change.old_value_char)
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "A"
self.assertFalse(change.old_value_char)
change.apply()
self.assertEqual(change.old_value_char, "A")
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "B"
self.assertEqual(change.old_value_char, "A")
self.assertEqual(self.partner.count_pending_changesets, 0)
@@ -124,16 +124,16 @@ class TestChangesetOrigin(ChangesetTestCommon, TransactionCase):
change = changeset.change_ids
self.assertEqual(self.partner.name, "X")
self.assertFalse(change.old_value_char)
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "A"
self.assertFalse(change.old_value_char)
change.cancel()
self.assertEqual(change.old_value_char, "A")
- with Form(self.partner.with_context(
- __no_changeset=disable_changeset
- )) as partner_form:
+ with Form(
+ self.partner.with_context(__no_changeset=disable_changeset)
+ ) as partner_form:
partner_form.name = "B"
self.assertEqual(change.old_value_char, "A")
self.assertEqual(self.partner.count_pending_changesets, 0)
diff --git a/base_changeset/tests/test_changeset_security.py b/base_changeset/tests/test_changeset_security.py
index 90d05686d..5bb571ea7 100644
--- a/base_changeset/tests/test_changeset_security.py
+++ b/base_changeset/tests/test_changeset_security.py
@@ -7,27 +7,31 @@ from .common import ChangesetTestCommon
class TestChangesetFlow(ChangesetTestCommon, TransactionCase):
- """ Check that changesets don't leak information """
+ """Check that changesets don't leak information"""
def setUp(self):
super().setUp()
- self.env['changeset.field.rule'].search([]).unlink()
- self.rule = self.env['changeset.field.rule'].create({
- 'model_id': self.env.ref('base.model_ir_config_parameter').id,
- 'field_id': self.env.ref('base.field_ir_config_parameter__key').id,
- 'action': 'auto',
- })
+ self.env["changeset.field.rule"].search([]).unlink()
+ self.rule = self.env["changeset.field.rule"].create(
+ {
+ "model_id": self.env.ref("base.model_ir_config_parameter").id,
+ "field_id": self.env.ref("base.field_ir_config_parameter__key").id,
+ "action": "auto",
+ }
+ )
def test_change_unprivileged_user(self):
"""
Check that unprivileged users can't see changesets they didn't create
"""
- user = self.env.ref('base.user_demo')
- self.env['ir.config_parameter'].with_context(
+ user = self.env.ref("base.user_demo")
+ self.env["ir.config_parameter"].with_context(
test_record_changeset=True,
- ).set_param('hello', 'world')
- changeset = self.env['record.changeset.change'].search([
- ('rule_id', '=', self.rule.id),
- ])
+ ).set_param("hello", "world")
+ changeset = self.env["record.changeset.change"].search(
+ [
+ ("rule_id", "=", self.rule.id),
+ ]
+ )
self.assertTrue(changeset)
- self.assertFalse(changeset.sudo(user).search([('id', '=', changeset.id)]))
+ self.assertFalse(changeset.sudo(user).search([("id", "=", changeset.id)]))