From 2b0f4ec72c45b45bbc9a91f4603c3c316b1dc053 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 7 May 2024 09:42:54 +0100 Subject: [PATCH] [FIX] base_tier_validation: allow sudo writes Fix https://github.com/OCA/server-ux/issues/875 by always allowing superuser to write. @moduon MT-5997 --- base_tier_validation/models/tier_validation.py | 5 +++++ base_tier_validation/tests/test_tier_validation.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/base_tier_validation/models/tier_validation.py b/base_tier_validation/models/tier_validation.py index 547a1f948a..9a123949d4 100644 --- a/base_tier_validation/models/tier_validation.py +++ b/base_tier_validation/models/tier_validation.py @@ -251,6 +251,11 @@ def _check_allow_write_under_validation(self, vals): return True def write(self, vals): + if ( + self.env.is_superuser() + and self.env.context.get("skip_validation_check") is not False + ): + return super().write(vals) for rec in self: if rec._check_state_conditions(vals): if rec.need_validation: diff --git a/base_tier_validation/tests/test_tier_validation.py b/base_tier_validation/tests/test_tier_validation.py index 0f62ed12bb..9e12438ed3 100644 --- a/base_tier_validation/tests/test_tier_validation.py +++ b/base_tier_validation/tests/test_tier_validation.py @@ -55,6 +55,9 @@ def test_05_under_validation(self): record.invalidate_model() with self.assertRaises(ValidationError): record.write({"test_field": 0.5}) + # Sudo writes always allowed + record.sudo().write({"test_field": 0.5}) + self.assertEqual(record.test_field, 0.5) def test_06_validation_process_open(self): """Operation forbidden while a validation process is open."""