diff --git a/base_tier_validation/models/tier_definition.py b/base_tier_validation/models/tier_definition.py index e9f3402b5..75ba13158 100644 --- a/base_tier_validation/models/tier_definition.py +++ b/base_tier_validation/models/tier_definition.py @@ -101,9 +101,9 @@ def _get_tier_validation_model_names(self): help="Default comment prefilled when approval comments are enabled.", ) notify_reminder_delay = fields.Integer( - string="Send reminder message on pending reviews", - help="Number of days after which a message must be posted to remind about " - "pending validation (0 = no reminder)", + string="Remind Every (Days)", + help="Remind the reviewers every this many days until the review is " + "done. Leave at 0 to send no reminder.", ) approve_sequence = fields.Boolean( string="Approve by sequence", diff --git a/base_tier_validation/models/tier_validation.py b/base_tier_validation/models/tier_validation.py index 24de2f733..1d6e71995 100644 --- a/base_tier_validation/models/tier_validation.py +++ b/base_tier_validation/models/tier_validation.py @@ -200,13 +200,13 @@ def _get_to_validate_message(self): ) def _get_validated_message(self): - msg = f""" { + msg = f""" { self.env._("Operation has been validated!") }""" return self.validation_status == "validated" and msg or "" def _get_rejected_message(self): - msg = f""" { + msg = f""" { self.env._("Operation has been rejected.") }""" return self.validation_status == "rejected" and msg or "" @@ -305,6 +305,7 @@ def _get_exception_fields(self, extra_domain=None): return ( self.env["tier.validation.exception"] .sudo() + .with_context(active_test=True) .search(domain) .mapped("field_ids.name") ) diff --git a/base_tier_validation/models/tier_validation_exception.py b/base_tier_validation/models/tier_validation_exception.py index e0c44668e..25723d390 100644 --- a/base_tier_validation/models/tier_validation_exception.py +++ b/base_tier_validation/models/tier_validation_exception.py @@ -19,6 +19,7 @@ def _get_tier_validation_model_names(self): required=True, default="New Tier Validation Exception", ) + active = fields.Boolean(default=True) model_id = fields.Many2one( comodel_name="ir.model", string="Model", diff --git a/base_tier_validation/readme/newsfragments/23.feature b/base_tier_validation/readme/newsfragments/23.feature new file mode 100644 index 000000000..cbe41db83 --- /dev/null +++ b/base_tier_validation/readme/newsfragments/23.feature @@ -0,0 +1,3 @@ +Clearer tier definition form: who reviews and in what order at the top, a *Review* tab (reviewer permissions, what happens when reviewing, after review) and a *Notifications* tab, where the reminder reads *Remind every [ ] days*. The definition list hides archived definitions by default, shows reviewer avatars and has an optional *Reviewer field* column. The review lists show avatars and status badges, the definition action has an empty-state help, and the reviewer menu sits with the other notification menus in the systray. + +Tier validation exceptions can be archived; archived exceptions no longer apply. Their form groups the write permissions and the groups they apply to. diff --git a/base_tier_validation/static/description/index.html b/base_tier_validation/static/description/index.html index 2e9108df6..04d207354 100644 --- a/base_tier_validation/static/description/index.html +++ b/base_tier_validation/static/description/index.html @@ -3,7 +3,7 @@
-