odoo-addon-base-tier-validation 17.0.2.3.4.1__py3-none-any.whl → 17.0.2.4.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/models/tier_validation.py +15 -3
- odoo/addons/base_tier_validation/static/description/index.html +1 -1
- odoo/addons/base_tier_validation/tests/common.py +54 -0
- odoo/addons/base_tier_validation/tests/test_tier_validation.py +59 -3
- odoo/addons/base_tier_validation/tests/tier_validation_tester.py +1 -0
- {odoo_addon_base_tier_validation-17.0.2.3.4.1.dist-info → odoo_addon_base_tier_validation-17.0.2.4.0.dist-info}/METADATA +2 -2
- {odoo_addon_base_tier_validation-17.0.2.3.4.1.dist-info → odoo_addon_base_tier_validation-17.0.2.4.0.dist-info}/RECORD +11 -11
- {odoo_addon_base_tier_validation-17.0.2.3.4.1.dist-info → odoo_addon_base_tier_validation-17.0.2.4.0.dist-info}/WHEEL +0 -0
- {odoo_addon_base_tier_validation-17.0.2.3.4.1.dist-info → odoo_addon_base_tier_validation-17.0.2.4.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:e4f55b4e91a75826046e629fd7419db7f83cd415ce90fc9e031a00be6f69c4bf
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
@@ -21,6 +21,7 @@ class TierValidation(models.AbstractModel):
|
|
21
21
|
_tier_validation_buttons_xpath = "/form/header/button[last()]"
|
22
22
|
_tier_validation_manual_config = True
|
23
23
|
_tier_validation_state_field_is_computed = False
|
24
|
+
_tier_validation_company_field = "company_id"
|
24
25
|
|
25
26
|
_state_field = "state"
|
26
27
|
_state_from = ["draft"]
|
@@ -250,7 +251,7 @@ class TierValidation(models.AbstractModel):
|
|
250
251
|
.search(
|
251
252
|
[
|
252
253
|
("model", "=", self._name),
|
253
|
-
("company_id", "in", [False] +
|
254
|
+
("company_id", "in", [False] + rec._get_company().ids),
|
254
255
|
]
|
255
256
|
)
|
256
257
|
)
|
@@ -275,7 +276,7 @@ class TierValidation(models.AbstractModel):
|
|
275
276
|
.search(
|
276
277
|
[
|
277
278
|
("model_name", "=", self._name),
|
278
|
-
("company_id", "in", [False] + self.
|
279
|
+
("company_id", "in", [False] + self._get_company().ids),
|
279
280
|
"|",
|
280
281
|
("group_ids", "in", self.env.user.groups_id.ids),
|
281
282
|
("group_ids", "=", False),
|
@@ -708,6 +709,17 @@ class TierValidation(models.AbstractModel):
|
|
708
709
|
"sequence": sequence,
|
709
710
|
}
|
710
711
|
|
712
|
+
@api.model
|
713
|
+
def _get_company(self):
|
714
|
+
company_id = self.env.company
|
715
|
+
if (
|
716
|
+
self
|
717
|
+
and self._tier_validation_company_field in self.env[self._name]
|
718
|
+
and self[self._tier_validation_company_field]
|
719
|
+
):
|
720
|
+
company_id = self[self._tier_validation_company_field]
|
721
|
+
return company_id
|
722
|
+
|
711
723
|
def request_validation(self):
|
712
724
|
td_obj = self.env["tier.definition"]
|
713
725
|
tr_obj = self.env["tier.review"]
|
@@ -717,7 +729,7 @@ class TierValidation(models.AbstractModel):
|
|
717
729
|
tier_definitions = td_obj.search(
|
718
730
|
[
|
719
731
|
("model", "=", self._name),
|
720
|
-
("company_id", "in", [False] +
|
732
|
+
("company_id", "in", [False] + rec._get_company().ids),
|
721
733
|
],
|
722
734
|
order="sequence desc",
|
723
735
|
)
|
@@ -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:e4f55b4e91a75826046e629fd7419db7f83cd415ce90fc9e031a00be6f69c4bf
|
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/17.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-17-0/server-ux-17-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=17.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
|
@@ -44,6 +44,9 @@ class CommonTierValidation(common.TransactionCase):
|
|
44
44
|
cls.tester_model_computed = cls.env["ir.model"].search(
|
45
45
|
[("model", "=", "tier.validation.tester.computed")]
|
46
46
|
)
|
47
|
+
# Create a multi-company
|
48
|
+
cls.main_company = cls.env.ref("base.main_company")
|
49
|
+
cls.other_company = cls.env["res.company"].create({"name": "My Company"})
|
47
50
|
|
48
51
|
models = (
|
49
52
|
cls.tester_model,
|
@@ -93,6 +96,14 @@ class CommonTierValidation(common.TransactionCase):
|
|
93
96
|
cls.test_user_2 = cls.env["res.users"].create(
|
94
97
|
{"name": "Mike", "login": "test2", "email": "mike@yourcompany.example.com"}
|
95
98
|
)
|
99
|
+
cls.test_user_3_multi_company = cls.env["res.users"].create(
|
100
|
+
{
|
101
|
+
"name": "Jane",
|
102
|
+
"login": "test3",
|
103
|
+
"email": "jane@mycompany.example.com",
|
104
|
+
"company_ids": [(6, 0, [cls.main_company.id, cls.other_company.id])],
|
105
|
+
}
|
106
|
+
)
|
96
107
|
|
97
108
|
# Create tier definitions:
|
98
109
|
cls.tier_def_obj = cls.env["tier.definition"]
|
@@ -161,6 +172,49 @@ class CommonTierValidation(common.TransactionCase):
|
|
161
172
|
}
|
162
173
|
)
|
163
174
|
|
175
|
+
# Create definition for test 30, 31
|
176
|
+
# Main company tier definition
|
177
|
+
cls.tier_def_obj.create(
|
178
|
+
{
|
179
|
+
"model_id": cls.tester_model_2.id,
|
180
|
+
"review_type": "individual",
|
181
|
+
"reviewer_id": cls.test_user_1.id,
|
182
|
+
"definition_domain": "[('test_field', '>=', 1.0)]",
|
183
|
+
"approve_sequence": True,
|
184
|
+
"notify_on_pending": False,
|
185
|
+
"sequence": 30,
|
186
|
+
"name": "Definition for test 30 - sequence - user 1 - main company",
|
187
|
+
"company_id": cls.main_company.id,
|
188
|
+
}
|
189
|
+
)
|
190
|
+
cls.tier_def_obj.create(
|
191
|
+
{
|
192
|
+
"model_id": cls.tester_model_2.id,
|
193
|
+
"review_type": "individual",
|
194
|
+
"reviewer_id": cls.test_user_3_multi_company.id,
|
195
|
+
"definition_domain": "[('test_field', '>=', 1.0)]",
|
196
|
+
"approve_sequence": True,
|
197
|
+
"notify_on_pending": False,
|
198
|
+
"sequence": 20,
|
199
|
+
"name": "Definition for test 30 - sequence - user 3 - main company",
|
200
|
+
"company_id": cls.main_company.id,
|
201
|
+
}
|
202
|
+
)
|
203
|
+
# Other company tier definition
|
204
|
+
cls.tier_def_obj.create(
|
205
|
+
{
|
206
|
+
"model_id": cls.tester_model_2.id,
|
207
|
+
"review_type": "individual",
|
208
|
+
"reviewer_id": cls.test_user_3_multi_company.id,
|
209
|
+
"definition_domain": "[('test_field', '>=', 1.0)]",
|
210
|
+
"approve_sequence": True,
|
211
|
+
"notify_on_pending": False,
|
212
|
+
"sequence": 30,
|
213
|
+
"name": "Definition for test 30 - sequence - user 3 - other company",
|
214
|
+
"company_id": cls.other_company.id,
|
215
|
+
}
|
216
|
+
)
|
217
|
+
|
164
218
|
@classmethod
|
165
219
|
def tearDownClass(cls):
|
166
220
|
cls.loader.restore_registry()
|
@@ -934,7 +934,7 @@ class TierTierValidation(CommonTierValidation):
|
|
934
934
|
)
|
935
935
|
self.assertEqual(notifications_no_2, notifications_no_1)
|
936
936
|
|
937
|
-
def
|
937
|
+
def test_27_change_field_exception_validation(self):
|
938
938
|
"""Test under and after validations"""
|
939
939
|
# Cannot create `tier.validation.exception` records because
|
940
940
|
# `tier.validation.tester` are fake model and its fields are
|
@@ -985,7 +985,7 @@ class TierTierValidation(CommonTierValidation):
|
|
985
985
|
)
|
986
986
|
self.assertEqual(self.test_record.test_validation_field, 4)
|
987
987
|
|
988
|
-
def
|
988
|
+
def test_28_computed_state_field(self):
|
989
989
|
"""Test the regular flow on a model where state is a computed field"""
|
990
990
|
# The record cannot be confirmed without validation
|
991
991
|
with self.assertRaisesRegex(
|
@@ -1014,7 +1014,7 @@ class TierTierValidation(CommonTierValidation):
|
|
1014
1014
|
self.assertFalse(self.test_record_computed.review_ids)
|
1015
1015
|
self.test_record_computed.invalidate_recordset()
|
1016
1016
|
|
1017
|
-
def
|
1017
|
+
def test_29_allow_write_for_reviewers(self):
|
1018
1018
|
reviews = self.test_record.with_user(self.test_user_2.id).request_validation()
|
1019
1019
|
record = self.test_record.with_user(self.test_user_1.id)
|
1020
1020
|
record.invalidate_recordset()
|
@@ -1025,6 +1025,62 @@ class TierTierValidation(CommonTierValidation):
|
|
1025
1025
|
)
|
1026
1026
|
record.with_user(self.test_user_1.id).write({"test_field": 0.3})
|
1027
1027
|
|
1028
|
+
def test_30_request_validation_diff_company(self):
|
1029
|
+
"""
|
1030
|
+
Test validation request behavior with multi-company setup.
|
1031
|
+
|
1032
|
+
Setup:
|
1033
|
+
- Main company has 2 tier definitions:
|
1034
|
+
- One for User1 (sequence 30)
|
1035
|
+
- One for User3 (sequence 20)
|
1036
|
+
- Other company has 1 tier definition:
|
1037
|
+
- One for User3 (sequence 30)
|
1038
|
+
|
1039
|
+
When record's company is set to 'other company':
|
1040
|
+
- Only User3's tier definition from other company should be applied
|
1041
|
+
- Should create only 1 review
|
1042
|
+
"""
|
1043
|
+
self.assertFalse(self.test_record_2.review_ids)
|
1044
|
+
self.assertFalse(self.test_record_2.company_id)
|
1045
|
+
self.assertEqual(self.test_user_3_multi_company.env.company, self.main_company)
|
1046
|
+
|
1047
|
+
self.test_record_2.company_id = self.other_company
|
1048
|
+
|
1049
|
+
reviews = self.test_record_2.with_user(
|
1050
|
+
self.test_user_3_multi_company.id
|
1051
|
+
).request_validation()
|
1052
|
+
self.test_record_2.invalidate_recordset()
|
1053
|
+
|
1054
|
+
self.assertEqual(len(reviews), 1)
|
1055
|
+
|
1056
|
+
def test_31_request_validation_same_company(self):
|
1057
|
+
"""
|
1058
|
+
Test validation request behavior with multi-company setup.
|
1059
|
+
|
1060
|
+
Setup:
|
1061
|
+
- Main company has 2 tier definitions:
|
1062
|
+
- One for User1 (sequence 30)
|
1063
|
+
- One for User3 (sequence 20)
|
1064
|
+
- Other company has 1 tier definition:
|
1065
|
+
- One for User3 (sequence 30)
|
1066
|
+
|
1067
|
+
When record's company is set to 'main company':
|
1068
|
+
- Both User1 and User3's tier definitions from main company should be applied
|
1069
|
+
- Should create 2 reviews
|
1070
|
+
"""
|
1071
|
+
self.assertFalse(self.test_record_2.review_ids)
|
1072
|
+
self.assertFalse(self.test_record_2.company_id)
|
1073
|
+
self.assertEqual(self.test_user_3_multi_company.env.company, self.main_company)
|
1074
|
+
|
1075
|
+
self.test_record_2.company_id = self.main_company
|
1076
|
+
|
1077
|
+
reviews = self.test_record_2.with_user(
|
1078
|
+
self.test_user_3_multi_company.id
|
1079
|
+
).request_validation()
|
1080
|
+
self.test_record_2.invalidate_recordset()
|
1081
|
+
|
1082
|
+
self.assertEqual(len(reviews), 2)
|
1083
|
+
|
1028
1084
|
|
1029
1085
|
@tagged("at_install")
|
1030
1086
|
class TierTierValidationView(CommonTierValidation):
|
@@ -43,6 +43,7 @@ class TierValidationTester2(models.Model):
|
|
43
43
|
test_field = fields.Float()
|
44
44
|
test_validation_field = fields.Float()
|
45
45
|
user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
|
46
|
+
company_id = fields.Many2one(comodel_name="res.company")
|
46
47
|
|
47
48
|
def action_confirm(self):
|
48
49
|
self.write({"state": "confirmed"})
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-base_tier_validation
|
3
|
-
Version: 17.0.2.
|
3
|
+
Version: 17.0.2.4.0
|
4
4
|
Requires-Python: >=3.10
|
5
5
|
Requires-Dist: odoo>=17.0a,<17.1dev
|
6
6
|
Summary: Implement a validation process based on tiers.
|
@@ -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:e4f55b4e91a75826046e629fd7419db7f83cd415ce90fc9e031a00be6f69c4bf
|
27
27
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
28
28
|
|
29
29
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
@@ -1,6 +1,6 @@
|
|
1
|
-
odoo/addons/base_tier_validation/README.rst,sha256=
|
1
|
+
odoo/addons/base_tier_validation/README.rst,sha256=tCWlrLCRNwSv0EiHveb3Wr1rraNpzxvcHK0pJ2aYFsg,8904
|
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=4TyhPt7-LISnFLiMdzdpzgW3nkPcEaAjm-6_mXfgJsA,1674
|
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
6
|
odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=ShkkRe-CS7a4eBPc86lxy4u2sfn4Forn2ck85in9JeE,33179
|
@@ -17,7 +17,7 @@ odoo/addons/base_tier_validation/models/res_config_settings.py,sha256=xMdQiCfU5p
|
|
17
17
|
odoo/addons/base_tier_validation/models/res_users.py,sha256=0xJZVWDUfdJwA3_ysHKO99cQph2m8iz0Zr5JU90td68,2163
|
18
18
|
odoo/addons/base_tier_validation/models/tier_definition.py,sha256=_aMzT4DAzV2C0dWm85UwomMlXRyjNN-Bo9xLaSfl58U,5775
|
19
19
|
odoo/addons/base_tier_validation/models/tier_review.py,sha256=F6oEiE6CkIIAYAbQN9mUfyrUyqqhxdVfU9kvduNqnRg,8398
|
20
|
-
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=
|
20
|
+
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=kSTfIQ6K3nts4jEtAmeHQ1VcMRUpXMhCv4iBq75bc9w,35832
|
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.md,sha256=MuyVCH75T0_3Rtrkl7RUg7XzxjoU7zUkbPWv84_a-XU,1709
|
23
23
|
odoo/addons/base_tier_validation/readme/CONTRIBUTORS.md,sha256=QM71L1RKrzDEgNvfgXjNAoWy3dMxH5k26HhcrrpdYRs,664
|
@@ -28,7 +28,7 @@ odoo/addons/base_tier_validation/security/ir.model.access.csv,sha256=_NMShHIoKCQ
|
|
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=ocMS0YO1xbJs6kkXqCuw71UnsCa_4d1U5cMvzcKSH2U,4993
|
30
30
|
odoo/addons/base_tier_validation/static/description/icon.svg,sha256=SBeR3DJDE_jBR3Z92Yn3r7WPOkpsRlOd61t1Tuk7M_A,2684
|
31
|
-
odoo/addons/base_tier_validation/static/description/index.html,sha256=
|
31
|
+
odoo/addons/base_tier_validation/static/description/index.html,sha256=6GuA0SIofMcrXLOBZxmJhybMPCPut6up9ZP81ZQckt0,23747
|
32
32
|
odoo/addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.esm.js,sha256=MNfjKSg-9h3JfeXiYlf15SAdVHjj3aUvedj0BqVvJrk,2254
|
33
33
|
odoo/addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml,sha256=_wIy5Gv2VUJEXD5_FGphx1J19-Y8uzFlWryuPqlIh8c,2798
|
34
34
|
odoo/addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.esm.js,sha256=MDWUp2ozeRdBoLeCfTcOnD-bKnk3yF6pHwtTAnsLZmg,1090
|
@@ -37,10 +37,10 @@ odoo/addons/base_tier_validation/static/src/components/tier_review_widget/tier_r
|
|
37
37
|
odoo/addons/base_tier_validation/static/src/js/services/tier_review_service.esm.js,sha256=E4xNh1WmnofpFt88EYYCGcDWyP53S2Mt450QawcrsCM,972
|
38
38
|
odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=VI6kY0V6nVSz6KQ9GRxY_9TZkRrJgzBzsl9xFKtA__Y,3620
|
39
39
|
odoo/addons/base_tier_validation/tests/__init__.py,sha256=7tj1DSbPnyA__lAKxvjX53Ll_ZTE8y8Z1bewtZJoURI,166
|
40
|
-
odoo/addons/base_tier_validation/tests/common.py,sha256=
|
41
|
-
odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=
|
40
|
+
odoo/addons/base_tier_validation/tests/common.py,sha256=eO028boA6aiAmX_VnOkPlUQDIthAF8IqthiaAH3cwro,8229
|
41
|
+
odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=7VtIypBLgCXFEZon-KU24ZrPLycHptx70zBdp8woEUg,45343
|
42
42
|
odoo/addons/base_tier_validation/tests/test_tier_validation_reminder.py,sha256=jsLU-7pJtbUvKPi7ddXU4jAwiJp32pKTrluarrtLKvU,1963
|
43
|
-
odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=
|
43
|
+
odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=O0QFANIH-jH_1GZtcv-EqPMGp2LgWF2HJMaaibFROWs,3406
|
44
44
|
odoo/addons/base_tier_validation/views/res_config_settings_views.xml,sha256=5HbrsAVaXRoQNX7utIQ_EzZrqzKnwBrV9uHsi-PHb9M,2640
|
45
45
|
odoo/addons/base_tier_validation/views/tier_definition_view.xml,sha256=ScFV2RkAO2ysXAg4kLODlNJGSP65toR-TCKpe4-WGJo,7780
|
46
46
|
odoo/addons/base_tier_validation/views/tier_review_view.xml,sha256=tPzmpz-kbQwOOtJrAcsTJEP9bJLcfzWAITCpI86kZU4,966
|
@@ -48,7 +48,7 @@ odoo/addons/base_tier_validation/views/tier_validation_exception_view.xml,sha256
|
|
48
48
|
odoo/addons/base_tier_validation/wizard/__init__.py,sha256=52q6-LAjYeJ1Vu5ahon_jnhds9VsoJvYaQCiZc82WKw,95
|
49
49
|
odoo/addons/base_tier_validation/wizard/comment_wizard.py,sha256=gj7zCcpe47-2ifxSRlE6okQ1wtq5Ok3JBVg2CtN0ZIU,879
|
50
50
|
odoo/addons/base_tier_validation/wizard/comment_wizard_view.xml,sha256=9XFTqrNwDCZH2IEX3HutaznSkBYk-6RERXzUDwObz4I,979
|
51
|
-
odoo_addon_base_tier_validation-17.0.2.
|
52
|
-
odoo_addon_base_tier_validation-17.0.2.
|
53
|
-
odoo_addon_base_tier_validation-17.0.2.
|
54
|
-
odoo_addon_base_tier_validation-17.0.2.
|
51
|
+
odoo_addon_base_tier_validation-17.0.2.4.0.dist-info/METADATA,sha256=ol5MsWlEbHcp5gBBf5b9U15RxMdnrpyQvJgrVckZswY,9486
|
52
|
+
odoo_addon_base_tier_validation-17.0.2.4.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
|
53
|
+
odoo_addon_base_tier_validation-17.0.2.4.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
54
|
+
odoo_addon_base_tier_validation-17.0.2.4.0.dist-info/RECORD,,
|
File without changes
|