odoo-addon-base-tier-validation 16.0.2.2.2.3__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/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.3.dist-info → odoo_addon_base_tier_validation-16.0.2.3.0.dist-info}/METADATA +2 -2
- {odoo_addon_base_tier_validation-16.0.2.2.2.3.dist-info → odoo_addon_base_tier_validation-16.0.2.3.0.dist-info}/RECORD +11 -11
- {odoo_addon_base_tier_validation-16.0.2.2.2.3.dist-info → odoo_addon_base_tier_validation-16.0.2.3.0.dist-info}/WHEEL +0 -0
- {odoo_addon_base_tier_validation-16.0.2.2.2.3.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"
|
@@ -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)
|
@@ -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,9 +1,9 @@
|
|
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
9
|
odoo/addons/base_tier_validation/i18n/fr.po,sha256=dsR5-957iIpHkSPnRNWBcvJ-bZNvBw-RTv_c3eJE7mw,38351
|
@@ -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,,
|
File without changes
|