odoo-addon-base-tier-validation 16.0.2.2.2.2__py3-none-any.whl → 16.0.2.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/base_tier_validation/README.rst +1 -1
- odoo/addons/base_tier_validation/__manifest__.py +1 -1
- odoo/addons/base_tier_validation/i18n/base_tier_validation.pot +10 -0
- odoo/addons/base_tier_validation/i18n/fr.po +35 -21
- odoo/addons/base_tier_validation/models/tier_validation.py +39 -5
- odoo/addons/base_tier_validation/static/description/index.html +1 -1
- odoo/addons/base_tier_validation/templates/tier_validation_templates.xml +7 -0
- odoo/addons/base_tier_validation/tests/test_tier_validation.py +82 -0
- {odoo_addon_base_tier_validation-16.0.2.2.2.2.dist-info → odoo_addon_base_tier_validation-16.0.2.3.0.dist-info}/METADATA +3 -3
- {odoo_addon_base_tier_validation-16.0.2.2.2.2.dist-info → odoo_addon_base_tier_validation-16.0.2.3.0.dist-info}/RECORD +12 -12
- {odoo_addon_base_tier_validation-16.0.2.2.2.2.dist-info → odoo_addon_base_tier_validation-16.0.2.3.0.dist-info}/WHEEL +1 -1
- {odoo_addon_base_tier_validation-16.0.2.2.2.2.dist-info → odoo_addon_base_tier_validation-16.0.2.3.0.dist-info}/top_level.txt +0 -0
@@ -7,7 +7,7 @@ Base Tier Validation
|
|
7
7
|
!! This file is generated by oca-gen-addon-readme !!
|
8
8
|
!! changes will be overwritten. !!
|
9
9
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
10
|
-
!! source digest: sha256:
|
10
|
+
!! source digest: sha256:b8ad9914d3d83a36f03df6d1027d6d363fbce13a577a647069407aa865d65e24
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
@@ -363,6 +363,11 @@ msgid ""
|
|
363
363
|
"definition are restarted."
|
364
364
|
msgstr ""
|
365
365
|
|
366
|
+
#. module: base_tier_validation
|
367
|
+
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
368
|
+
msgid "Is Reevaluation Required"
|
369
|
+
msgstr ""
|
370
|
+
|
366
371
|
#. module: base_tier_validation
|
367
372
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
368
373
|
msgid "It's fully validated"
|
@@ -523,6 +528,11 @@ msgstr ""
|
|
523
528
|
msgid "Pending"
|
524
529
|
msgstr ""
|
525
530
|
|
531
|
+
#. module: base_tier_validation
|
532
|
+
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
533
|
+
msgid "Reevaluate Reviews"
|
534
|
+
msgstr ""
|
535
|
+
|
526
536
|
#. module: base_tier_validation
|
527
537
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
|
528
538
|
msgid "Referenced Model"
|
@@ -6,15 +6,15 @@ msgid ""
|
|
6
6
|
msgstr ""
|
7
7
|
"Project-Id-Version: Odoo Server 14.0\n"
|
8
8
|
"Report-Msgid-Bugs-To: \n"
|
9
|
-
"PO-Revision-Date: 2024-
|
10
|
-
"Last-Translator:
|
9
|
+
"PO-Revision-Date: 2024-12-31 17:06+0000\n"
|
10
|
+
"Last-Translator: samibc2c <sami.bouzidi@camptocamp.com>\n"
|
11
11
|
"Language-Team: none\n"
|
12
12
|
"Language: fr\n"
|
13
13
|
"MIME-Version: 1.0\n"
|
14
14
|
"Content-Type: text/plain; charset=UTF-8\n"
|
15
15
|
"Content-Transfer-Encoding: \n"
|
16
16
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
17
|
-
"X-Generator: Weblate
|
17
|
+
"X-Generator: Weblate 5.6.2\n"
|
18
18
|
|
19
19
|
#. module: base_tier_validation
|
20
20
|
#. odoo-javascript
|
@@ -26,17 +26,17 @@ msgstr "0 en attente"
|
|
26
26
|
#. module: base_tier_validation
|
27
27
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
28
28
|
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
29
|
-
msgstr ""
|
29
|
+
msgstr "<i class=\"fa fa-info-circle\"/> Cet enregistrement doit-être validé."
|
30
30
|
|
31
31
|
#. module: base_tier_validation
|
32
32
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
33
33
|
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
34
|
-
msgstr ""
|
34
|
+
msgstr "<i class=\"fa fa-thumbs-down\"/> L'opération a été <b>rejetée</b>."
|
35
35
|
|
36
36
|
#. module: base_tier_validation
|
37
37
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
38
38
|
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
39
|
-
msgstr ""
|
39
|
+
msgstr "<i class=\"fa fa-thumbs-up\"/> L'peration a été <b>validée</b> !"
|
40
40
|
|
41
41
|
#. module: base_tier_validation
|
42
42
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
@@ -55,7 +55,7 @@ msgstr ""
|
|
55
55
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
56
56
|
#, python-format
|
57
57
|
msgid "A review has been requested %s days ago."
|
58
|
-
msgstr ""
|
58
|
+
msgstr "Une revue a été demandée il y a %s jours."
|
59
59
|
|
60
60
|
#. module: base_tier_validation
|
61
61
|
#. odoo-python
|
@@ -121,7 +121,7 @@ msgstr "Tout"
|
|
121
121
|
#. module: base_tier_validation
|
122
122
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
123
123
|
msgid "Allowed groups to use this Tier Validation Exception"
|
124
|
-
msgstr ""
|
124
|
+
msgstr "Groupes autorisés à utiliser cette exception de tiers validation"
|
125
125
|
|
126
126
|
#. module: base_tier_validation
|
127
127
|
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
|
@@ -333,7 +333,7 @@ msgstr "Regrouper par"
|
|
333
333
|
#. module: base_tier_validation
|
334
334
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
|
335
335
|
msgid "Groups"
|
336
|
-
msgstr ""
|
336
|
+
msgstr "Groupes"
|
337
337
|
|
338
338
|
#. module: base_tier_validation
|
339
339
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
|
@@ -405,7 +405,7 @@ msgstr "Dernière modification le"
|
|
405
405
|
#. module: base_tier_validation
|
406
406
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
407
407
|
msgid "Last Reminder Date"
|
408
|
-
msgstr ""
|
408
|
+
msgstr "Date du dernier rappel"
|
409
409
|
|
410
410
|
#. module: base_tier_validation
|
411
411
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
@@ -434,7 +434,7 @@ msgstr "Modèle"
|
|
434
434
|
#. module: base_tier_validation
|
435
435
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
|
436
436
|
msgid "Model Name"
|
437
|
-
msgstr ""
|
437
|
+
msgstr "Nom du modèle"
|
438
438
|
|
439
439
|
#. module: base_tier_validation
|
440
440
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
@@ -444,7 +444,7 @@ msgstr "Plus d'options"
|
|
444
444
|
#. module: base_tier_validation
|
445
445
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
|
446
446
|
msgid "Name"
|
447
|
-
msgstr ""
|
447
|
+
msgstr "Nom"
|
448
448
|
|
449
449
|
#. module: base_tier_validation
|
450
450
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
|
@@ -503,6 +503,8 @@ msgid ""
|
|
503
503
|
"Number of days after which a message must be posted to remind about pending "
|
504
504
|
"validation (0 = no reminder)"
|
505
505
|
msgstr ""
|
506
|
+
"Nombre de jours après lequel un message de rappel de validation en attente "
|
507
|
+
"doit-être envoyé (0 = pas de rappel)"
|
506
508
|
|
507
509
|
#. module: base_tier_validation
|
508
510
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
@@ -510,6 +512,8 @@ msgid ""
|
|
510
512
|
"Once created, you can decide which fields you want to be editable when the "
|
511
513
|
"record:"
|
512
514
|
msgstr ""
|
515
|
+
"Une fois créé, vous pouvez décider des champs qui seront modifiables dans "
|
516
|
+
"l'enregistrement :"
|
513
517
|
|
514
518
|
#. module: base_tier_validation
|
515
519
|
#. odoo-python
|
@@ -654,12 +658,12 @@ msgstr "Revues"
|
|
654
658
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
655
659
|
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
656
660
|
msgid "Send Tier Review Reminder"
|
657
|
-
msgstr ""
|
661
|
+
msgstr "Envoyer un rappel de revue au tiers"
|
658
662
|
|
659
663
|
#. module: base_tier_validation
|
660
664
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
661
665
|
msgid "Send reminder message on pending reviews"
|
662
|
-
msgstr ""
|
666
|
+
msgstr "Envoyer un message de rappel pour les revues en cours"
|
663
667
|
|
664
668
|
#. module: base_tier_validation
|
665
669
|
#. odoo-javascript
|
@@ -717,7 +721,7 @@ msgstr ""
|
|
717
721
|
#. module: base_tier_validation
|
718
722
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
719
723
|
msgid "Tier"
|
720
|
-
msgstr ""
|
724
|
+
msgstr "Tiers"
|
721
725
|
|
722
726
|
#. module: base_tier_validation
|
723
727
|
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
|
@@ -870,7 +874,7 @@ msgstr "Date de validation formatée"
|
|
870
874
|
#. module: base_tier_validation
|
871
875
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
|
872
876
|
msgid "Validation Status"
|
873
|
-
msgstr ""
|
877
|
+
msgstr "Statut de la validation"
|
874
878
|
|
875
879
|
#. module: base_tier_validation
|
876
880
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
|
@@ -880,27 +884,27 @@ msgstr "Validations"
|
|
880
884
|
#. module: base_tier_validation
|
881
885
|
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
|
882
886
|
msgid "Without validation"
|
883
|
-
msgstr ""
|
887
|
+
msgstr "Sans validation"
|
884
888
|
|
885
889
|
#. module: base_tier_validation
|
886
890
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
|
887
891
|
msgid "Write after Validation"
|
888
|
-
msgstr ""
|
892
|
+
msgstr "Écrire après la validation"
|
889
893
|
|
890
894
|
#. module: base_tier_validation
|
891
895
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
|
892
896
|
msgid "Write after validation"
|
893
|
-
msgstr ""
|
897
|
+
msgstr "Écrire après la validation"
|
894
898
|
|
895
899
|
#. module: base_tier_validation
|
896
900
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
|
897
901
|
msgid "Write under Validation"
|
898
|
-
msgstr ""
|
902
|
+
msgstr "Écrire sous la validation"
|
899
903
|
|
900
904
|
#. module: base_tier_validation
|
901
905
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
|
902
906
|
msgid "Write under validation"
|
903
|
-
msgstr ""
|
907
|
+
msgstr "Écrire sous la validation"
|
904
908
|
|
905
909
|
#. module: base_tier_validation
|
906
910
|
#. odoo-python
|
@@ -913,6 +917,11 @@ msgid ""
|
|
913
917
|
"Only those fields can be modified:\n"
|
914
918
|
"- %(allowed_fields)s"
|
915
919
|
msgstr ""
|
920
|
+
"Vous n'êtes pas autorisé à écrire ces champs après validation.\n"
|
921
|
+
"- %(not_allowed_fields)s\n"
|
922
|
+
"\n"
|
923
|
+
"Seuls ces champs peuvent être modifiés:\n"
|
924
|
+
"- %(allowed_fields)s"
|
916
925
|
|
917
926
|
#. module: base_tier_validation
|
918
927
|
#. odoo-python
|
@@ -925,6 +934,11 @@ msgid ""
|
|
925
934
|
"Only those fields can be modified:\n"
|
926
935
|
"- %(allowed_fields)s"
|
927
936
|
msgstr ""
|
937
|
+
"Vous n'êtes pas autorisé à écrire ces champs en cours validation.\n"
|
938
|
+
"- %(not_allowed_fields)s\n"
|
939
|
+
"\n"
|
940
|
+
"Seuls ces champs peuvent être modifiés:\n"
|
941
|
+
"- %(allowed_fields)s"
|
928
942
|
|
929
943
|
#. module: base_tier_validation
|
930
944
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
@@ -12,7 +12,7 @@ from odoo.exceptions import ValidationError
|
|
12
12
|
from odoo.osv.expression import OR
|
13
13
|
from odoo.tools.misc import frozendict
|
14
14
|
|
15
|
-
BASE_EXCEPTION_FIELDS = ["message_follower_ids", "access_token"]
|
15
|
+
BASE_EXCEPTION_FIELDS = ["message_follower_ids", "access_token", "need_validation"]
|
16
16
|
|
17
17
|
|
18
18
|
class TierValidation(models.AbstractModel):
|
@@ -70,6 +70,9 @@ class TierValidation(models.AbstractModel):
|
|
70
70
|
)
|
71
71
|
has_comment = fields.Boolean(compute="_compute_has_comment")
|
72
72
|
next_review = fields.Char(compute="_compute_next_review")
|
73
|
+
is_reevaluation_required = fields.Boolean(
|
74
|
+
compute="_compute_is_reevaluation_required"
|
75
|
+
)
|
73
76
|
|
74
77
|
def _compute_has_comment(self):
|
75
78
|
for rec in self:
|
@@ -206,6 +209,27 @@ class TierValidation(models.AbstractModel):
|
|
206
209
|
)[:1]
|
207
210
|
rec.next_review = review and _("Next: %s") % review.name or ""
|
208
211
|
|
212
|
+
def _compute_is_reevaluation_required(self):
|
213
|
+
for rec in self:
|
214
|
+
if isinstance(rec.id, models.NewId):
|
215
|
+
rec.is_reevaluation_required = False
|
216
|
+
continue
|
217
|
+
tiers = (
|
218
|
+
self.env["tier.definition"]
|
219
|
+
.with_context(active_test=True)
|
220
|
+
.search(
|
221
|
+
[
|
222
|
+
("model", "=", self._name),
|
223
|
+
("company_id", "in", [False] + self.env.company.ids),
|
224
|
+
]
|
225
|
+
)
|
226
|
+
)
|
227
|
+
rec.is_reevaluation_required = False
|
228
|
+
valid_tiers = tiers.filtered(lambda x: rec.evaluate_tier(x))
|
229
|
+
if valid_tiers and rec.review_ids.definition_id:
|
230
|
+
if len(valid_tiers) != len(rec.review_ids.definition_id):
|
231
|
+
rec.is_reevaluation_required = True
|
232
|
+
|
209
233
|
@api.model
|
210
234
|
def _calc_reviews_validated(self, reviews):
|
211
235
|
"""Override for different validation policy."""
|
@@ -233,10 +257,12 @@ class TierValidation(models.AbstractModel):
|
|
233
257
|
]
|
234
258
|
)
|
235
259
|
)
|
236
|
-
valid_tiers =
|
237
|
-
|
238
|
-
|
239
|
-
)
|
260
|
+
valid_tiers = tiers.filtered(lambda x: rec.evaluate_tier(x))
|
261
|
+
requested_tiers = rec.review_ids.filtered(
|
262
|
+
lambda x: x.status != "pending"
|
263
|
+
).mapped("definition_id")
|
264
|
+
new_tiers = valid_tiers - requested_tiers
|
265
|
+
rec.need_validation = new_tiers and rec._check_state_from_condition()
|
240
266
|
|
241
267
|
def evaluate_tier(self, tier):
|
242
268
|
if tier.definition_domain:
|
@@ -620,6 +646,7 @@ class TierValidation(models.AbstractModel):
|
|
620
646
|
[
|
621
647
|
("model", "=", self._name),
|
622
648
|
("company_id", "in", [False] + self.env.company.ids),
|
649
|
+
("id", "not in", rec.review_ids.mapped("definition_id").ids),
|
623
650
|
],
|
624
651
|
order="sequence desc",
|
625
652
|
)
|
@@ -674,6 +701,13 @@ class TierValidation(models.AbstractModel):
|
|
674
701
|
getattr(self, subscribe)(partner_ids=partners_to_notify_ids)
|
675
702
|
rec._notify_restarted_review()
|
676
703
|
|
704
|
+
def reevaluate_reviews(self):
|
705
|
+
reviews = self.env["tier.review"]
|
706
|
+
for rec in self:
|
707
|
+
rec._compute_need_validation()
|
708
|
+
reviews += rec.request_validation()
|
709
|
+
return reviews
|
710
|
+
|
677
711
|
@api.model
|
678
712
|
def _update_counter(self, review_counter):
|
679
713
|
self.review_ids._compute_can_review()
|
@@ -367,7 +367,7 @@ ul.auto-toc {
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
368
368
|
!! changes will be overwritten. !!
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
370
|
-
!! source digest: sha256:
|
370
|
+
!! source digest: sha256:b8ad9914d3d83a36f03df6d1027d6d363fbce13a577a647069407aa865d65e24
|
371
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
372
372
|
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Mature" src="https://img.shields.io/badge/maturity-Mature-brightgreen.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/server-ux/tree/16.0/base_tier_validation"><img alt="OCA/server-ux" src="https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/server-ux-16-0/server-ux-16-0-base_tier_validation"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/server-ux&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
373
373
|
<p>Validating some operations is a common need across different areas in a company
|
@@ -18,11 +18,18 @@
|
|
18
18
|
('#{state_field}', '#{state_operator}', #{state_value})]}"
|
19
19
|
type="object"
|
20
20
|
/>
|
21
|
+
<button
|
22
|
+
name="reevaluate_reviews"
|
23
|
+
string="Reevaluate Reviews"
|
24
|
+
t-attf-attrs="{'invisible': ['|',('is_reevaluation_required', '!=', True),('#{state_field}', '#{state_operator}', #{state_value})]}"
|
25
|
+
type="object"
|
26
|
+
/>
|
21
27
|
</div>
|
22
28
|
</template>
|
23
29
|
<template id="tier_validation_label">
|
24
30
|
<div>
|
25
31
|
<field name="need_validation" invisible="1" />
|
32
|
+
<field name="is_reevaluation_required" invisible="1" />
|
26
33
|
<field name="validated" invisible="1" />
|
27
34
|
<field name="rejected" invisible="1" />
|
28
35
|
<div
|
@@ -905,6 +905,88 @@ class TierTierValidation(CommonTierValidation):
|
|
905
905
|
)
|
906
906
|
self.assertEqual(self.test_record.test_validation_field, 4)
|
907
907
|
|
908
|
+
def test_27_reevaluate_validation(self):
|
909
|
+
# Create new test record
|
910
|
+
test_record = self.test_model.create(
|
911
|
+
{"test_field": 100, "test_validation_field": 15}
|
912
|
+
)
|
913
|
+
# Create tier definitions
|
914
|
+
self.tier_def_obj.create(
|
915
|
+
{
|
916
|
+
"model_id": self.tester_model.id,
|
917
|
+
"review_type": "individual",
|
918
|
+
"reviewer_id": self.test_user_1.id,
|
919
|
+
"definition_domain": "[('test_field', '>', 100)]",
|
920
|
+
}
|
921
|
+
)
|
922
|
+
# Request validation
|
923
|
+
reviews = test_record.with_user(self.test_user_2.id).request_validation()
|
924
|
+
# Check need validation
|
925
|
+
self.assertTrue(test_record.need_validation)
|
926
|
+
self.assertEqual(len(reviews), 1)
|
927
|
+
|
928
|
+
# Now record is not validated yet and new definition create,
|
929
|
+
# and then we reevaluate object then it will add new definition validation
|
930
|
+
# also in current object
|
931
|
+
self.tier_def_obj.create(
|
932
|
+
{
|
933
|
+
"model_id": self.tester_model.id,
|
934
|
+
"review_type": "individual",
|
935
|
+
"reviewer_id": self.test_user_1.id,
|
936
|
+
"definition_domain": "[('test_validation_field', '>', 10)]",
|
937
|
+
}
|
938
|
+
)
|
939
|
+
|
940
|
+
# Reevaluate Validation
|
941
|
+
reviews = test_record.with_user(self.test_user_2.id).reevaluate_reviews()
|
942
|
+
# Check need validation
|
943
|
+
self.assertTrue(test_record.need_validation)
|
944
|
+
self.assertEqual(len(reviews), 2)
|
945
|
+
|
946
|
+
def test_28_reevaluate_validation(self):
|
947
|
+
# Create new test record
|
948
|
+
test_record = self.test_model.create(
|
949
|
+
{"test_field": 100, "test_validation_field": 15}
|
950
|
+
)
|
951
|
+
# Create tier definitions
|
952
|
+
# 1st defination to check test_field
|
953
|
+
self.tier_def_obj.create(
|
954
|
+
{
|
955
|
+
"model_id": self.tester_model.id,
|
956
|
+
"review_type": "individual",
|
957
|
+
"reviewer_id": self.test_user_1.id,
|
958
|
+
"definition_domain": "[('test_field', '>', 100)]",
|
959
|
+
}
|
960
|
+
)
|
961
|
+
# 2nd definition will be trigger only when there is
|
962
|
+
# new message with body "This record need extra validation"
|
963
|
+
test_message = "This record need extra validation"
|
964
|
+
self.tier_def_obj.create(
|
965
|
+
{
|
966
|
+
"model_id": self.tester_model.id,
|
967
|
+
"review_type": "individual",
|
968
|
+
"reviewer_id": self.test_user_1.id,
|
969
|
+
"definition_domain": "[('message_ids.body', 'ilike', '%s')]"
|
970
|
+
% (test_message),
|
971
|
+
}
|
972
|
+
)
|
973
|
+
|
974
|
+
# Request validation
|
975
|
+
reviews = test_record.with_user(self.test_user_2.id).request_validation()
|
976
|
+
# Check need validation
|
977
|
+
self.assertTrue(test_record.need_validation)
|
978
|
+
self.assertEqual(len(reviews), 1)
|
979
|
+
|
980
|
+
# now post new message "This record need extra validation",
|
981
|
+
# it will need to reevaluate record and will add new tier validation
|
982
|
+
test_record.with_user(self.test_user_2.id).message_post(body=test_message)
|
983
|
+
|
984
|
+
# Reevaluate Validation
|
985
|
+
reviews = test_record.with_user(self.test_user_2.id).reevaluate_reviews()
|
986
|
+
# Check need validation
|
987
|
+
self.assertTrue(test_record.need_validation)
|
988
|
+
self.assertEqual(len(reviews), 2)
|
989
|
+
|
908
990
|
|
909
991
|
@tagged("at_install")
|
910
992
|
class TierTierValidationView(CommonTierValidation):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-base_tier_validation
|
3
|
-
Version: 16.0.2.
|
3
|
+
Version: 16.0.2.3.0
|
4
4
|
Summary: Implement a validation process based on tiers.
|
5
5
|
Home-page: https://github.com/OCA/server-ux
|
6
6
|
Author: ForgeFlow, Odoo Community Association (OCA)
|
@@ -12,7 +12,7 @@ Classifier: Framework :: Odoo :: 16.0
|
|
12
12
|
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
13
13
|
Classifier: Development Status :: 6 - Mature
|
14
14
|
Requires-Python: >=3.10
|
15
|
-
Requires-Dist: odoo
|
15
|
+
Requires-Dist: odoo<16.1dev,>=16.0a
|
16
16
|
|
17
17
|
====================
|
18
18
|
Base Tier Validation
|
@@ -23,7 +23,7 @@ Base Tier Validation
|
|
23
23
|
!! This file is generated by oca-gen-addon-readme !!
|
24
24
|
!! changes will be overwritten. !!
|
25
25
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
26
|
-
!! source digest: sha256:
|
26
|
+
!! source digest: sha256:b8ad9914d3d83a36f03df6d1027d6d363fbce13a577a647069407aa865d65e24
|
27
27
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
28
28
|
|
29
29
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
@@ -1,12 +1,12 @@
|
|
1
|
-
odoo/addons/base_tier_validation/README.rst,sha256=
|
1
|
+
odoo/addons/base_tier_validation/README.rst,sha256=POG5AbEptBmF9jKRhniSDwG-uM4_C_JjKt8ypZkpOvk,7996
|
2
2
|
odoo/addons/base_tier_validation/__init__.py,sha256=rKfzYX9RhkkCxgh2f0PJLYN45Kw8T8-fwxw1pbjLuug,108
|
3
|
-
odoo/addons/base_tier_validation/__manifest__.py,sha256=
|
3
|
+
odoo/addons/base_tier_validation/__manifest__.py,sha256=QHoUIYdO9MTnehkfTn2ZsGc8XDOJmkpx72xtn1GRwbc,2011
|
4
4
|
odoo/addons/base_tier_validation/data/cron_data.xml,sha256=HMA_SgAk3_vLu_QQLHd0UyzPASuDRj5cvpiK_17esQc,707
|
5
5
|
odoo/addons/base_tier_validation/data/mail_data.xml,sha256=hXhGTSyG2NAsDfZShmpyBKTXJi46L5PP1mFJAlKmlVE,1984
|
6
|
-
odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=
|
6
|
+
odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=RtlXdM30mKs3ju2AjK4QxnQJ4RsuW5-RVl4aXG_UZ6I,32406
|
7
7
|
odoo/addons/base_tier_validation/i18n/es.po,sha256=QwqRwFBKyx6AHCwn_Y4dG6wV5eDP2mX9rGWhjD83BSA,37251
|
8
8
|
odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=hXOfANN5n6CMn0SeOwboF5tUh3gG1m_ZQLCq6Bj22j0,35382
|
9
|
-
odoo/addons/base_tier_validation/i18n/fr.po,sha256=
|
9
|
+
odoo/addons/base_tier_validation/i18n/fr.po,sha256=dsR5-957iIpHkSPnRNWBcvJ-bZNvBw-RTv_c3eJE7mw,38351
|
10
10
|
odoo/addons/base_tier_validation/i18n/it.po,sha256=QluoteoFF7WsKazrtR5vaJJbLsHdO27ocnkHocRKwGU,38352
|
11
11
|
odoo/addons/base_tier_validation/i18n/nl_NL.po,sha256=WFY-lAo5eppdTiLY2PmPOCx3IcqY9hMCOFRkc7uNb8Y,36233
|
12
12
|
odoo/addons/base_tier_validation/i18n/sv.po,sha256=ezwx-cERe_-vFn6kgDYQakeeD2aDdEK0DgtRrRlXU2Y,36252
|
@@ -17,7 +17,7 @@ odoo/addons/base_tier_validation/models/res_config_settings.py,sha256=n-i1InkXDc
|
|
17
17
|
odoo/addons/base_tier_validation/models/res_users.py,sha256=JhUZ0NxJ9EPwpkJ-mvsNTrE1avQncGNKqAF-xFxokEo,2638
|
18
18
|
odoo/addons/base_tier_validation/models/tier_definition.py,sha256=rcDv7ySDKqBD1ksJ09um_4Reec_Im1MrdotivQ7Q_44,5173
|
19
19
|
odoo/addons/base_tier_validation/models/tier_review.py,sha256=ic6Rkh0PhliJ4gkWHmPJ84Ln2puGC1U5W5N2PCFlXw8,7267
|
20
|
-
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=
|
20
|
+
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=CH2pPpWUYvVmfWJelpo2GVxOdhlYzuQPWg7UB104-nE,32682
|
21
21
|
odoo/addons/base_tier_validation/models/tier_validation_exception.py,sha256=9H_FbTF04IyB2u6a82UAdIPmv_MUcFKmLNVl7UOM1lg,2882
|
22
22
|
odoo/addons/base_tier_validation/readme/CONFIGURE.rst,sha256=ABgtWmfnm0QieIj7_ZsvoTHwjaKiZkBLCAjUXJeOnm4,1466
|
23
23
|
odoo/addons/base_tier_validation/readme/CONTRIBUTORS.rst,sha256=hyMj4T9es9vnGNmdg-uPF9wc1xGRxC5DU39McI03xjA,479
|
@@ -27,7 +27,7 @@ odoo/addons/base_tier_validation/readme/ROADMAP.rst,sha256=UWhIpMUTM_ido6s3jZiF8
|
|
27
27
|
odoo/addons/base_tier_validation/security/ir.model.access.csv,sha256=vsKy73mk8r45jzU0fAt_vfM7-JSH7lIAA7JBr1P6FAY,633
|
28
28
|
odoo/addons/base_tier_validation/security/tier_validation_security.xml,sha256=eWFwz-osHgYFmVoEVzOSboO9oqUMtQ8oygyaz0os50Y,806
|
29
29
|
odoo/addons/base_tier_validation/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
30
|
-
odoo/addons/base_tier_validation/static/description/index.html,sha256=
|
30
|
+
odoo/addons/base_tier_validation/static/description/index.html,sha256=euBSWf1WoZj3bdZ0JUqpevOntjLo-vBLCJGNScsu2B4,22306
|
31
31
|
odoo/addons/base_tier_validation/static/src/js/ir_model.esm.js,sha256=kHSA7CeIt02IZmsKJdn2yZVqKqSyQ6_g6QVmtq5Qo2A,706
|
32
32
|
odoo/addons/base_tier_validation/static/src/js/main.esm.js,sha256=ZSHScoLlMQcO6jW9mLVusJOfyH5kJIw4szPK3xU-KHA,263
|
33
33
|
odoo/addons/base_tier_validation/static/src/js/review_group_view.esm.js,sha256=G110cBwOwENHBUkuScOB8Xg05D0FzOqlsSl_US0PngA,1677
|
@@ -43,10 +43,10 @@ odoo/addons/base_tier_validation/static/src/scss/systray.scss,sha256=vco1l3nsJfX
|
|
43
43
|
odoo/addons/base_tier_validation/static/src/xml/reviewer_menu_container.xml,sha256=pMgADQ7SgdHrE_FTo2hnpDJqPbuc9jOHXHSAaa0Gjbk,271
|
44
44
|
odoo/addons/base_tier_validation/static/src/xml/systray.xml,sha256=8W04E80UhUPQp6U9zvmDu1qqOXsDaDP8Q5YFw6Dgg7s,4987
|
45
45
|
odoo/addons/base_tier_validation/static/src/xml/tier_review_template.xml,sha256=o72pPVkPiPmr2KWucaTJahR945MbD4gaYyi3KQn6AyI,6217
|
46
|
-
odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=
|
46
|
+
odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=yBB3Sm9dPy9eJ2E6pD97od3Sr7I04_U21Jkcvy9LGYs,4559
|
47
47
|
odoo/addons/base_tier_validation/tests/__init__.py,sha256=7tj1DSbPnyA__lAKxvjX53Ll_ZTE8y8Z1bewtZJoURI,166
|
48
48
|
odoo/addons/base_tier_validation/tests/common.py,sha256=Jnt8vMSca4XsiUGbnSDXvyKCCP6aeXepI476_2Gg_to,3787
|
49
|
-
odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=
|
49
|
+
odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=z7NjMeysN44OK5JEeGtn_QfxKobhRns7RTPLWG4zjmQ,40838
|
50
50
|
odoo/addons/base_tier_validation/tests/test_tier_validation_reminder.py,sha256=jsLU-7pJtbUvKPi7ddXU4jAwiJp32pKTrluarrtLKvU,1963
|
51
51
|
odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=3usFbhfDhlKIWbVu--3qsbsm52B6RwTP4zy244dY1yk,1757
|
52
52
|
odoo/addons/base_tier_validation/views/res_config_settings_views.xml,sha256=Al6XKCN1QGLPcgAaXTvEnSTYkwBrzDGfSRh3CQD4g5Q,4234
|
@@ -56,7 +56,7 @@ odoo/addons/base_tier_validation/views/tier_validation_exception_view.xml,sha256
|
|
56
56
|
odoo/addons/base_tier_validation/wizard/__init__.py,sha256=52q6-LAjYeJ1Vu5ahon_jnhds9VsoJvYaQCiZc82WKw,95
|
57
57
|
odoo/addons/base_tier_validation/wizard/comment_wizard.py,sha256=gj7zCcpe47-2ifxSRlE6okQ1wtq5Ok3JBVg2CtN0ZIU,879
|
58
58
|
odoo/addons/base_tier_validation/wizard/comment_wizard_view.xml,sha256=9XFTqrNwDCZH2IEX3HutaznSkBYk-6RERXzUDwObz4I,979
|
59
|
-
odoo_addon_base_tier_validation-16.0.2.
|
60
|
-
odoo_addon_base_tier_validation-16.0.2.
|
61
|
-
odoo_addon_base_tier_validation-16.0.2.
|
62
|
-
odoo_addon_base_tier_validation-16.0.2.
|
59
|
+
odoo_addon_base_tier_validation-16.0.2.3.0.dist-info/METADATA,sha256=BpvFoTxeWBtMHqpd9lb8ggX1ea15262uQup1pBAGNpM,8578
|
60
|
+
odoo_addon_base_tier_validation-16.0.2.3.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
61
|
+
odoo_addon_base_tier_validation-16.0.2.3.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
62
|
+
odoo_addon_base_tier_validation-16.0.2.3.0.dist-info/RECORD,,
|