odoo-addon-base-tier-validation 16.0.2.6.1__py3-none-any.whl → 16.0.3.0.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/data/mail_data.xml +4 -4
- odoo/addons/base_tier_validation/models/tier_validation.py +44 -4
- odoo/addons/base_tier_validation/static/description/index.html +1 -1
- odoo/addons/base_tier_validation/tests/__init__.py +0 -1
- odoo/addons/base_tier_validation/tests/test_tier_validation.py +153 -0
- {odoo_addon_base_tier_validation-16.0.2.6.1.dist-info → odoo_addon_base_tier_validation-16.0.3.0.0.dist-info}/METADATA +2 -2
- {odoo_addon_base_tier_validation-16.0.2.6.1.dist-info → odoo_addon_base_tier_validation-16.0.3.0.0.dist-info}/RECORD +11 -11
- {odoo_addon_base_tier_validation-16.0.2.6.1.dist-info → odoo_addon_base_tier_validation-16.0.3.0.0.dist-info}/WHEEL +0 -0
- {odoo_addon_base_tier_validation-16.0.2.6.1.dist-info → odoo_addon_base_tier_validation-16.0.3.0.0.dist-info}/top_level.txt +0 -0
@@ -11,7 +11,7 @@ Base Tier Validation
|
|
11
11
|
!! This file is generated by oca-gen-addon-readme !!
|
12
12
|
!! changes will be overwritten. !!
|
13
13
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
14
|
-
!! source digest: sha256:
|
14
|
+
!! source digest: sha256:f3093af0e62d45b3f67e36b93c79f6b5a0ba627d57ae5c78d3242c7df5f1deac
|
15
15
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
16
16
|
|
17
17
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
@@ -6,7 +6,7 @@
|
|
6
6
|
forcecreate="1"
|
7
7
|
>
|
8
8
|
<field name="name">Tier Validation Requested</field>
|
9
|
-
<field name="default" eval="
|
9
|
+
<field name="default" eval="False" />
|
10
10
|
<field name="internal" eval="True" />
|
11
11
|
<field name="hidden" eval="True" />
|
12
12
|
</record>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
forcecreate="1"
|
17
17
|
>
|
18
18
|
<field name="name">Tier Validation Accepted Notification</field>
|
19
|
-
<field name="default" eval="
|
19
|
+
<field name="default" eval="False" />
|
20
20
|
<field name="internal" eval="True" />
|
21
21
|
<field name="hidden" eval="True" />
|
22
22
|
</record>
|
@@ -26,7 +26,7 @@
|
|
26
26
|
forcecreate="1"
|
27
27
|
>
|
28
28
|
<field name="name">Tier Validation Rejected Notification</field>
|
29
|
-
<field name="default" eval="
|
29
|
+
<field name="default" eval="False" />
|
30
30
|
<field name="internal" eval="True" />
|
31
31
|
<field name="hidden" eval="True" />
|
32
32
|
</record>
|
@@ -36,7 +36,7 @@
|
|
36
36
|
forcecreate="1"
|
37
37
|
>
|
38
38
|
<field name="name">Tier Validation Restarted</field>
|
39
|
-
<field name="default" eval="
|
39
|
+
<field name="default" eval="False" />
|
40
40
|
<field name="internal" eval="True" />
|
41
41
|
<field name="hidden" eval="True" />
|
42
42
|
</record>
|
@@ -479,13 +479,29 @@ class TierValidation(models.AbstractModel):
|
|
479
479
|
reviews_to_notify = user_reviews.filtered(
|
480
480
|
lambda r: r.definition_id.notify_on_accepted
|
481
481
|
)
|
482
|
+
# We need to notify all pending users if there is approve sequence
|
483
|
+
if tier_reviews and any(review.approve_sequence for review in tier_reviews):
|
484
|
+
reviews_to_notify = self.review_ids.filtered(
|
485
|
+
lambda r: r.status == "pending" and r.definition_id.notify_on_accepted
|
486
|
+
)
|
487
|
+
# If there are approve sequence, only the following should be
|
488
|
+
# considered to notify
|
489
|
+
if reviews_to_notify and any(
|
490
|
+
review.approve_sequence for review in reviews_to_notify
|
491
|
+
):
|
492
|
+
reviews_to_notify = reviews_to_notify.filtered(
|
493
|
+
lambda x: x.approve_sequence
|
494
|
+
)[0]
|
482
495
|
if reviews_to_notify:
|
483
496
|
subscribe = "message_subscribe"
|
484
497
|
if hasattr(self, subscribe):
|
485
498
|
getattr(self, subscribe)(
|
486
499
|
partner_ids=reviews_to_notify.mapped("reviewer_ids")
|
487
500
|
.mapped("partner_id")
|
488
|
-
.ids
|
501
|
+
.ids,
|
502
|
+
subtype_ids=self.env.ref(
|
503
|
+
self._get_accepted_notification_subtype()
|
504
|
+
).ids,
|
489
505
|
)
|
490
506
|
for review in reviews_to_notify:
|
491
507
|
rec = self.env[review.model].browse(review.res_id)
|
@@ -600,13 +616,29 @@ class TierValidation(models.AbstractModel):
|
|
600
616
|
reviews_to_notify = user_reviews.filtered(
|
601
617
|
lambda r: r.definition_id.notify_on_rejected
|
602
618
|
)
|
619
|
+
# We need to notify all pending users if there is approve sequence
|
620
|
+
if tier_reviews and any(review.approve_sequence for review in tier_reviews):
|
621
|
+
reviews_to_notify = self.review_ids.filtered(
|
622
|
+
lambda r: r.status == "pending" and r.definition_id.notify_on_rejected
|
623
|
+
)
|
624
|
+
# If there are approve sequence, only the following should be
|
625
|
+
# considered to notify
|
626
|
+
if reviews_to_notify and any(
|
627
|
+
review.approve_sequence for review in reviews_to_notify
|
628
|
+
):
|
629
|
+
reviews_to_notify = reviews_to_notify.filtered(
|
630
|
+
lambda x: x.approve_sequence
|
631
|
+
)[0]
|
603
632
|
if reviews_to_notify:
|
604
633
|
subscribe = "message_subscribe"
|
605
634
|
if hasattr(self, subscribe):
|
606
635
|
getattr(self, subscribe)(
|
607
636
|
partner_ids=reviews_to_notify.mapped("reviewer_ids")
|
608
637
|
.mapped("partner_id")
|
609
|
-
.ids
|
638
|
+
.ids,
|
639
|
+
subtype_ids=self.env.ref(
|
640
|
+
self._get_rejected_notification_subtype()
|
641
|
+
).ids,
|
610
642
|
)
|
611
643
|
for review in reviews_to_notify:
|
612
644
|
rec = self.env[review.model].browse(review.res_id)
|
@@ -626,7 +658,10 @@ class TierValidation(models.AbstractModel):
|
|
626
658
|
# Subscribe reviewers and notify
|
627
659
|
if len(users_to_notify) > 0:
|
628
660
|
getattr(rec, subscribe)(
|
629
|
-
partner_ids=users_to_notify.mapped("partner_id").ids
|
661
|
+
partner_ids=users_to_notify.mapped("partner_id").ids,
|
662
|
+
subtype_ids=self.env.ref(
|
663
|
+
self._get_requested_notification_subtype()
|
664
|
+
).ids,
|
630
665
|
)
|
631
666
|
getattr(rec, post)(
|
632
667
|
subtype_xmlid=self._get_requested_notification_subtype(),
|
@@ -716,7 +751,12 @@ class TierValidation(models.AbstractModel):
|
|
716
751
|
lambda r: r.definition_id.notify_on_restarted
|
717
752
|
)
|
718
753
|
if hasattr(self, subscribe):
|
719
|
-
getattr(self, subscribe)(
|
754
|
+
getattr(self, subscribe)(
|
755
|
+
partner_ids=partners_to_notify_ids,
|
756
|
+
subtype_ids=self.env.ref(
|
757
|
+
self._get_restarted_notification_subtype()
|
758
|
+
).ids,
|
759
|
+
)
|
720
760
|
rec._notify_restarted_review()
|
721
761
|
|
722
762
|
def reevaluate_reviews(self):
|
@@ -372,7 +372,7 @@ ul.auto-toc {
|
|
372
372
|
!! This file is generated by oca-gen-addon-readme !!
|
373
373
|
!! changes will be overwritten. !!
|
374
374
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
375
|
-
!! source digest: sha256:
|
375
|
+
!! source digest: sha256:f3093af0e62d45b3f67e36b93c79f6b5a0ba627d57ae5c78d3242c7df5f1deac
|
376
376
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
377
377
|
<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/license-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>
|
378
378
|
<p>Validating some operations is a common need across different areas in a company
|
@@ -1050,6 +1050,159 @@ class TierTierValidation(CommonTierValidation):
|
|
1050
1050
|
|
1051
1051
|
self.assertEqual(len(reviews), 2)
|
1052
1052
|
|
1053
|
+
def test_30_request_validation(self):
|
1054
|
+
# Create new test record
|
1055
|
+
test_record = self.test_model.create({"test_field": 2.5})
|
1056
|
+
# Create tier definitions for both tester models
|
1057
|
+
self.tier_definition.write(
|
1058
|
+
{
|
1059
|
+
"approve_sequence": True,
|
1060
|
+
"notify_on_create": True,
|
1061
|
+
}
|
1062
|
+
)
|
1063
|
+
def_2 = self.tier_def_obj.create(
|
1064
|
+
{
|
1065
|
+
"model_id": self.tester_model.id,
|
1066
|
+
"review_type": "individual",
|
1067
|
+
"reviewer_id": self.test_user_2.id,
|
1068
|
+
"sequence": 20,
|
1069
|
+
"approve_sequence": True,
|
1070
|
+
"notify_on_create": False,
|
1071
|
+
"notify_on_accepted": True,
|
1072
|
+
}
|
1073
|
+
)
|
1074
|
+
def_3 = self.tier_def_obj.create(
|
1075
|
+
{
|
1076
|
+
"model_id": self.tester_model.id,
|
1077
|
+
"review_type": "individual",
|
1078
|
+
"reviewer_id": self.test_user_3_multi_company.id,
|
1079
|
+
"sequence": 10,
|
1080
|
+
"approve_sequence": True,
|
1081
|
+
"notify_on_create": False,
|
1082
|
+
"notify_on_accepted": True,
|
1083
|
+
}
|
1084
|
+
)
|
1085
|
+
mt_tier_validation_requested = self.env.ref(
|
1086
|
+
"base_tier_validation.mt_tier_validation_requested"
|
1087
|
+
)
|
1088
|
+
mt_tier_validation_accepted = self.env.ref(
|
1089
|
+
"base_tier_validation.mt_tier_validation_accepted"
|
1090
|
+
)
|
1091
|
+
test_record.request_validation()
|
1092
|
+
review_1 = test_record.review_ids.filtered(
|
1093
|
+
lambda x: x.definition_id == self.tier_definition
|
1094
|
+
)
|
1095
|
+
self.assertEqual(review_1.status, "pending")
|
1096
|
+
review_2 = test_record.review_ids.filtered(lambda x: x.definition_id == def_2)
|
1097
|
+
self.assertEqual(review_2.status, "pending")
|
1098
|
+
review_3 = test_record.review_ids.filtered(lambda x: x.definition_id == def_3)
|
1099
|
+
self.assertEqual(review_3.status, "pending")
|
1100
|
+
followers = test_record.message_follower_ids
|
1101
|
+
self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
|
1102
|
+
follower_1 = followers.filtered(
|
1103
|
+
lambda x: x.partner_id == self.test_user_1.partner_id
|
1104
|
+
)
|
1105
|
+
self.assertIn(mt_tier_validation_requested, follower_1.subtype_ids)
|
1106
|
+
self.assertNotIn(mt_tier_validation_accepted, follower_1.subtype_ids)
|
1107
|
+
self.assertNotIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
|
1108
|
+
self.assertNotIn(
|
1109
|
+
self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
|
1110
|
+
)
|
1111
|
+
old_messages = test_record.message_ids
|
1112
|
+
test_record.with_user(self.test_user_1).validate_tier()
|
1113
|
+
new_messages = test_record.message_ids - old_messages
|
1114
|
+
self.assertEqual(len(new_messages), 1)
|
1115
|
+
self.assertEqual(new_messages.subtype_id, mt_tier_validation_accepted)
|
1116
|
+
self.assertEqual(self.test_user_2.partner_id, new_messages.notified_partner_ids)
|
1117
|
+
self.assertEqual(review_1.status, "approved")
|
1118
|
+
self.assertEqual(review_2.status, "pending")
|
1119
|
+
self.assertEqual(review_3.status, "pending")
|
1120
|
+
followers = test_record.message_follower_ids
|
1121
|
+
self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
|
1122
|
+
self.assertIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
|
1123
|
+
follower_2 = followers.filtered(
|
1124
|
+
lambda x: x.partner_id == self.test_user_2.partner_id
|
1125
|
+
)
|
1126
|
+
self.assertNotIn(mt_tier_validation_requested, follower_2.subtype_ids)
|
1127
|
+
self.assertIn(mt_tier_validation_accepted, follower_2.subtype_ids)
|
1128
|
+
self.assertNotIn(
|
1129
|
+
self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
|
1130
|
+
)
|
1131
|
+
old_messages = test_record.message_ids
|
1132
|
+
test_record.with_user(self.test_user_2).validate_tier()
|
1133
|
+
new_messages = test_record.message_ids - old_messages
|
1134
|
+
self.assertEqual(len(new_messages), 1)
|
1135
|
+
self.assertEqual(new_messages.subtype_id, mt_tier_validation_accepted)
|
1136
|
+
self.assertEqual(
|
1137
|
+
self.test_user_3_multi_company.partner_id, new_messages.notified_partner_ids
|
1138
|
+
)
|
1139
|
+
self.assertEqual(review_1.status, "approved")
|
1140
|
+
self.assertEqual(review_2.status, "approved")
|
1141
|
+
self.assertEqual(review_3.status, "pending")
|
1142
|
+
followers = test_record.message_follower_ids
|
1143
|
+
self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
|
1144
|
+
self.assertIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
|
1145
|
+
self.assertIn(
|
1146
|
+
self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
|
1147
|
+
)
|
1148
|
+
follower_3 = followers.filtered(
|
1149
|
+
lambda x: x.partner_id == self.test_user_3_multi_company.partner_id
|
1150
|
+
)
|
1151
|
+
self.assertNotIn(mt_tier_validation_requested, follower_3.subtype_ids)
|
1152
|
+
self.assertIn(mt_tier_validation_accepted, follower_3.subtype_ids)
|
1153
|
+
old_messages = test_record.message_ids
|
1154
|
+
test_record.with_user(self.test_user_3_multi_company).validate_tier()
|
1155
|
+
new_messages = test_record.message_ids - old_messages
|
1156
|
+
self.assertEqual(len(new_messages), 0)
|
1157
|
+
|
1158
|
+
def test_31_request_validation(self):
|
1159
|
+
# Create new test record
|
1160
|
+
test_record = self.test_model.create({"test_field": 2.5})
|
1161
|
+
# Create tier definitions for both tester models
|
1162
|
+
self.tier_definition.write(
|
1163
|
+
{
|
1164
|
+
"approve_sequence": True,
|
1165
|
+
"notify_on_create": True,
|
1166
|
+
}
|
1167
|
+
)
|
1168
|
+
def_2 = self.tier_def_obj.create(
|
1169
|
+
{
|
1170
|
+
"model_id": self.tester_model.id,
|
1171
|
+
"review_type": "individual",
|
1172
|
+
"reviewer_id": self.test_user_2.id,
|
1173
|
+
"sequence": 20,
|
1174
|
+
"approve_sequence": True,
|
1175
|
+
"notify_on_create": True,
|
1176
|
+
"notify_on_accepted": True,
|
1177
|
+
}
|
1178
|
+
)
|
1179
|
+
def_3 = self.tier_def_obj.create(
|
1180
|
+
{
|
1181
|
+
"model_id": self.tester_model.id,
|
1182
|
+
"review_type": "individual",
|
1183
|
+
"reviewer_id": self.test_user_3_multi_company.id,
|
1184
|
+
"sequence": 10,
|
1185
|
+
"approve_sequence": True,
|
1186
|
+
"notify_on_create": True,
|
1187
|
+
"notify_on_accepted": True,
|
1188
|
+
}
|
1189
|
+
)
|
1190
|
+
test_record.request_validation()
|
1191
|
+
review_1 = test_record.review_ids.filtered(
|
1192
|
+
lambda x: x.definition_id == self.tier_definition
|
1193
|
+
)
|
1194
|
+
self.assertEqual(review_1.status, "pending")
|
1195
|
+
review_2 = test_record.review_ids.filtered(lambda x: x.definition_id == def_2)
|
1196
|
+
self.assertEqual(review_2.status, "pending")
|
1197
|
+
review_3 = test_record.review_ids.filtered(lambda x: x.definition_id == def_3)
|
1198
|
+
self.assertEqual(review_3.status, "pending")
|
1199
|
+
followers = test_record.message_follower_ids
|
1200
|
+
self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
|
1201
|
+
self.assertIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
|
1202
|
+
self.assertIn(
|
1203
|
+
self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
|
1204
|
+
)
|
1205
|
+
|
1053
1206
|
|
1054
1207
|
@tagged("at_install")
|
1055
1208
|
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.
|
3
|
+
Version: 16.0.3.0.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)
|
@@ -27,7 +27,7 @@ Base Tier Validation
|
|
27
27
|
!! This file is generated by oca-gen-addon-readme !!
|
28
28
|
!! changes will be overwritten. !!
|
29
29
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
30
|
-
!! source digest: sha256:
|
30
|
+
!! source digest: sha256:f3093af0e62d45b3f67e36b93c79f6b5a0ba627d57ae5c78d3242c7df5f1deac
|
31
31
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
32
32
|
|
33
33
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
@@ -1,8 +1,8 @@
|
|
1
|
-
odoo/addons/base_tier_validation/README.rst,sha256=
|
1
|
+
odoo/addons/base_tier_validation/README.rst,sha256=ZnV7OY59pa9vwbudnMM9AadgvjYLM3x6tBaRbsM0waQ,8161
|
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=uPv9NHVqIViJQoCjvGMMxFQL58NEQ_CIvmYER4rvifk,2011
|
4
4
|
odoo/addons/base_tier_validation/data/cron_data.xml,sha256=HMA_SgAk3_vLu_QQLHd0UyzPASuDRj5cvpiK_17esQc,707
|
5
|
-
odoo/addons/base_tier_validation/data/mail_data.xml,sha256=
|
5
|
+
odoo/addons/base_tier_validation/data/mail_data.xml,sha256=8laJ1b4wUxh890yxtP8AQis8MHuXc4brCtV-3F-YmhI,1988
|
6
6
|
odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=Ap_T6TSlEoy4uXvycYBt7EA4SbyymwJWlKWiei7S2KQ,32404
|
7
7
|
odoo/addons/base_tier_validation/i18n/es.po,sha256=wj3-zZ3bLMGYmC7eNpn3iS9EdHB7ffAAPmBwZAz5VXU,38203
|
8
8
|
odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=42TY-Dsn2Msuz38tXURWJZAi9XkAJ7IlHdYx3M-5kJw,35717
|
@@ -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=a7vMoaN4uWZqN48CmlK9x4ou9Ao0r4i6FuSSqPah6Qw,7329
|
20
|
-
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=
|
20
|
+
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=jdy795ScUe92S3oNA4bkNMu2UgdUtxeOU-RUvwJnIoo,35193
|
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=2Sk6iLgF5LmkeTyp1ujGZOjK2RMfFbpPNncMfK3Iuc8,22523
|
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
|
@@ -44,9 +44,9 @@ odoo/addons/base_tier_validation/static/src/xml/reviewer_menu_container.xml,sha2
|
|
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
46
|
odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=oEgy1wbHdYua7i5arXeli1WzZt9iwEgSZUMC_pDmnGU,4680
|
47
|
-
odoo/addons/base_tier_validation/tests/__init__.py,sha256=
|
47
|
+
odoo/addons/base_tier_validation/tests/__init__.py,sha256=GPQ_IJXExtr8NbvHAjPwyfJdu5kBS_ZjfTX2X_GyM9M,145
|
48
48
|
odoo/addons/base_tier_validation/tests/common.py,sha256=kCSmRUWy9qcmXfVpJ-ixTOyj7eL4G75x0p25uWEs7to,5918
|
49
|
-
odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=
|
49
|
+
odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=65bJs_aejEAZ8dNKjLgiJA77kd729_rVg96wy4tsenM,50451
|
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=zlpJLmxpgnZhpUJ_kFqRVInQftOkgjT3lQ-uzcjn_F0,1818
|
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.
|
60
|
-
odoo_addon_base_tier_validation-16.0.
|
61
|
-
odoo_addon_base_tier_validation-16.0.
|
62
|
-
odoo_addon_base_tier_validation-16.0.
|
59
|
+
odoo_addon_base_tier_validation-16.0.3.0.0.dist-info/METADATA,sha256=XadeFVZTkk6BXjXy7JIX0NeMwNpdNdwWVjEjcWWDDs0,8743
|
60
|
+
odoo_addon_base_tier_validation-16.0.3.0.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
61
|
+
odoo_addon_base_tier_validation-16.0.3.0.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
62
|
+
odoo_addon_base_tier_validation-16.0.3.0.0.dist-info/RECORD,,
|
File without changes
|