odoo-addon-base-tier-validation 17.0.1.5.1.4__py3-none-any.whl → 17.0.2.0.0.2__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.
Files changed (26) hide show
  1. odoo/addons/base_tier_validation/README.rst +2 -1
  2. odoo/addons/base_tier_validation/__manifest__.py +2 -1
  3. odoo/addons/base_tier_validation/i18n/base_tier_validation.pot +117 -2
  4. odoo/addons/base_tier_validation/i18n/es.po +122 -3
  5. odoo/addons/base_tier_validation/i18n/es_MX.po +122 -3
  6. odoo/addons/base_tier_validation/i18n/fr.po +122 -3
  7. odoo/addons/base_tier_validation/i18n/it.po +140 -5
  8. odoo/addons/base_tier_validation/i18n/nl_NL.po +122 -3
  9. odoo/addons/base_tier_validation/i18n/sv.po +122 -3
  10. odoo/addons/base_tier_validation/i18n/tr.po +122 -3
  11. odoo/addons/base_tier_validation/i18n/zh_CN.po +122 -3
  12. odoo/addons/base_tier_validation/models/__init__.py +1 -0
  13. odoo/addons/base_tier_validation/models/tier_definition.py +4 -2
  14. odoo/addons/base_tier_validation/models/tier_validation.py +129 -4
  15. odoo/addons/base_tier_validation/models/tier_validation_exception.py +95 -0
  16. odoo/addons/base_tier_validation/readme/CONTRIBUTORS.md +1 -0
  17. odoo/addons/base_tier_validation/security/ir.model.access.csv +2 -0
  18. odoo/addons/base_tier_validation/static/description/index.html +9 -5
  19. odoo/addons/base_tier_validation/tests/test_tier_validation.py +59 -2
  20. odoo/addons/base_tier_validation/tests/tier_validation_tester.py +2 -0
  21. odoo/addons/base_tier_validation/views/tier_definition_view.xml +1 -0
  22. odoo/addons/base_tier_validation/views/tier_validation_exception_view.xml +112 -0
  23. {odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info → odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info}/METADATA +3 -2
  24. {odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info → odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info}/RECORD +26 -24
  25. {odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info → odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info}/WHEEL +0 -0
  26. {odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info → odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info}/top_level.txt +0 -0
@@ -2,12 +2,16 @@
2
2
  # Copyright (c) 2022 brain-tec AG (https://braintec.com)
3
3
  # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4
4
 
5
+ from unittest import mock
6
+
5
7
  from lxml import etree
6
8
 
7
9
  from odoo.exceptions import ValidationError
8
10
  from odoo.tests import Form
9
11
  from odoo.tests.common import tagged
10
12
 
13
+ from ..models.tier_validation import BASE_EXCEPTION_FIELDS as BEF
14
+ from ..models.tier_validation import TierValidation as TV
11
15
  from .common import CommonTierValidation
12
16
 
13
17
 
@@ -158,13 +162,14 @@ class TierTierValidation(CommonTierValidation):
158
162
  self.assertTrue(review)
159
163
  record = test_record.with_user(self.test_user_1.id)
160
164
  record.invalidate_model()
165
+ review.invalidate_model()
161
166
  res = record.validate_tier()
162
167
  ctx = res.get("context")
163
168
  wizard = Form(self.env["comment.wizard"].with_context(**ctx))
164
169
  wizard.comment = "Test Comment"
165
170
  wiz = wizard.save()
166
171
  wiz.add_comment()
167
- self.assertTrue(test_record.review_ids.mapped("comment"))
172
+ self.assertTrue(test_record.review_ids.filtered("comment"))
168
173
  # Check notify
169
174
  comment = test_record.with_user(
170
175
  self.test_user_1.id
@@ -193,13 +198,14 @@ class TierTierValidation(CommonTierValidation):
193
198
  self.assertTrue(review)
194
199
  record = test_record.with_user(self.test_user_1.id)
195
200
  record.invalidate_model()
201
+ review.invalidate_model()
196
202
  res = record.reject_tier() # Rejection
197
203
  ctx = res.get("context")
198
204
  wizard = Form(self.env["comment.wizard"].with_context(**ctx))
199
205
  wizard.comment = "Test Comment"
200
206
  wiz = wizard.save()
201
207
  wiz.add_comment()
202
- self.assertTrue(test_record.review_ids.mapped("comment"))
208
+ self.assertTrue(test_record.review_ids.filtered("comment"))
203
209
  # Check notify
204
210
  comment = test_record.with_user(
205
211
  self.test_user_1.id
@@ -917,6 +923,57 @@ class TierTierValidation(CommonTierValidation):
917
923
  )
918
924
  self.assertEqual(notifications_no_2, notifications_no_1)
919
925
 
926
+ def test_25_change_field_exception_validation(self):
927
+ """Test under and after validations"""
928
+ # Cannot create `tier.validation.exception` records because
929
+ # `tier.validation.tester` are fake model and its fields are
930
+ # not propagated to the DDBB and cannot read from `ir.model.fields`.
931
+ # We will use the mock.patch instead.
932
+ _tvf = ["test_validation_field"]
933
+ _rv = _tvf + BEF
934
+ self.assertEqual(self.test_record.test_validation_field, 0)
935
+ self.assertFalse(self.test_record.review_ids)
936
+ reviews = self.test_record.with_user(self.test_user_2.id).request_validation()
937
+ self.assertTrue(reviews)
938
+ self.test_record.invalidate_model()
939
+ self.assertTrue(self.test_record.review_ids)
940
+ # Unable to write test_validation_field under validation
941
+ with self.assertRaises(ValidationError):
942
+ self.test_record.with_user(self.test_user_2.id).write(
943
+ {"test_validation_field": 1}
944
+ )
945
+ # Able to write test_validation_field under validation
946
+ with mock.patch.object(
947
+ TV, "_get_under_validation_exceptions", return_value=_rv
948
+ ):
949
+ self.test_record.with_user(self.test_user_2.id).write(
950
+ {"test_validation_field": 2}
951
+ )
952
+ self.assertEqual(self.test_record.test_validation_field, 2)
953
+ # Validate record
954
+ record = self.test_record.with_user(self.test_user_1.id)
955
+ record.invalidate_model()
956
+ record.validate_tier()
957
+ record.action_confirm()
958
+ self.assertTrue(record.validated)
959
+ # Unable to write test_validation_field after validation
960
+ with self.assertRaises(ValidationError):
961
+ # Simulate there are fields, but not test_validation_field
962
+ with mock.patch.object(TV, "_get_validation_exceptions", return_value=BEF):
963
+ self.test_record.with_user(self.test_user_2.id).write(
964
+ {"test_validation_field": 3}
965
+ )
966
+ # Able to write test_validation_field after validation
967
+ with mock.patch.multiple(
968
+ TV,
969
+ _get_validation_exceptions=mock.MagicMock(return_value=_tvf),
970
+ _get_after_validation_exceptions=mock.MagicMock(return_value=_rv),
971
+ ):
972
+ self.test_record.with_user(self.test_user_2.id).write(
973
+ {"test_validation_field": 4}
974
+ )
975
+ self.assertEqual(self.test_record.test_validation_field, 4)
976
+
920
977
 
921
978
  @tagged("at_install")
922
979
  class TierTierValidationView(CommonTierValidation):
@@ -18,6 +18,7 @@ class TierValidationTester(models.Model):
18
18
  ],
19
19
  default="draft",
20
20
  )
21
+ test_validation_field = fields.Integer(default=0)
21
22
  test_field = fields.Float()
22
23
  user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
23
24
 
@@ -40,6 +41,7 @@ class TierValidationTester2(models.Model):
40
41
  default="draft",
41
42
  )
42
43
  test_field = fields.Float()
44
+ test_validation_field = fields.Float()
43
45
  user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
44
46
 
45
47
  def action_confirm(self):
@@ -168,5 +168,6 @@
168
168
  id="menu_tier_definition"
169
169
  parent="menu_tier_confirmation"
170
170
  action="tier_definition_action"
171
+ sequence="10"
171
172
  />
172
173
  </odoo>
@@ -0,0 +1,112 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <!-- Copyright 2024 Moduon Team (https://www.moduon.team)
3
+ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
4
+ <odoo>
5
+ <record id="tier_validation_exception_tree" model="ir.ui.view">
6
+ <field name="name">tier.validation.exception.tree</field>
7
+ <field name="model">tier.validation.exception</field>
8
+ <field name="arch" type="xml">
9
+ <tree>
10
+ <field name="model_id" />
11
+ <field name="field_ids" widget="many2many_tags" optional="show" />
12
+ <field name="company_id" groups="base.group_multi_company" />
13
+ <field name="allowed_to_write_under_validation" />
14
+ <field name="allowed_to_write_after_validation" />
15
+ </tree>
16
+ </field>
17
+ </record>
18
+
19
+ <record id="tier_validation_exception_form" model="ir.ui.view">
20
+ <field name="name">tier.validation.exception.form</field>
21
+ <field name="model">tier.validation.exception</field>
22
+ <field name="arch" type="xml">
23
+ <form string="Tier Validation Exception">
24
+ <sheet>
25
+ <div class="oe_title">
26
+ <span class="oe_edit_only">Model</span>
27
+ <h1>
28
+ <field
29
+ name="model_id"
30
+ options="{'no_create': True, 'no_open': True}"
31
+ />
32
+ </h1>
33
+ </div>
34
+ <group>
35
+ <group name="left">
36
+ <field name="valid_model_field_ids" invisible="1" />
37
+ <field
38
+ name="field_ids"
39
+ widget="many2many_tags"
40
+ options="{'no_create': True}"
41
+ />
42
+ <field
43
+ name="company_id"
44
+ groups="base.group_multi_company"
45
+ />
46
+ </group>
47
+ <group name="right">
48
+ <field name="allowed_to_write_under_validation" />
49
+ <field name="allowed_to_write_after_validation" />
50
+ </group>
51
+ </group>
52
+ </sheet>
53
+ </form>
54
+ </field>
55
+ </record>
56
+
57
+ <record id="tier_validation_exception_search" model="ir.ui.view">
58
+ <field name="name">tier.validation.exception.search</field>
59
+ <field name="model">tier.validation.exception</field>
60
+ <field name="arch" type="xml">
61
+ <search>
62
+ <field name="model_id" />
63
+ <field name="field_ids" />
64
+ <field name="company_id" groups="base.group_multi_company" />
65
+ <separator />
66
+ <filter
67
+ string="Write under validation"
68
+ name="flt_allowed_to_write_under_validation_true"
69
+ domain="[('allowed_to_write_under_validation', '=', True)]"
70
+ />
71
+ <filter
72
+ string="Write after validation"
73
+ name="flt_allowed_to_write_after_validation_true"
74
+ domain="[('allowed_to_write_after_validation', '=', True)]"
75
+ />
76
+ <group>
77
+ <filter
78
+ string="Company"
79
+ name="grp_company"
80
+ domain="[]"
81
+ context="{'group_by': 'company_id'}"
82
+ />
83
+ </group>
84
+ </search>
85
+ </field>
86
+ </record>
87
+
88
+ <record id="tier_validation_exception_action" model="ir.actions.act_window">
89
+ <field name="name">Tier Validation Exception</field>
90
+ <field name="type">ir.actions.act_window</field>
91
+ <field name="res_model">tier.validation.exception</field>
92
+ <field name="view_mode">tree,form</field>
93
+ <field name="help" type="html">
94
+ <p
95
+ class="o_view_nocontent_smiling_face"
96
+ >Create a new Validation Exception!</p>
97
+ <p
98
+ >Once created, you can decide which fields you want to be editable when the record:</p>
99
+ <ul>
100
+ <li>It's in the validation process</li>
101
+ <li>It's fully validated</li>
102
+ </ul>
103
+ </field>
104
+ </record>
105
+
106
+ <menuitem
107
+ id="menu_tier_validation_exception"
108
+ parent="menu_tier_confirmation"
109
+ action="tier_validation_exception_action"
110
+ sequence="20"
111
+ />
112
+ </odoo>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-base_tier_validation
3
- Version: 17.0.1.5.1.4
3
+ Version: 17.0.2.0.0.2
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:985b9816d91b596431cb157813581e485b5dee02ac1d0625e208d1516f970a34
26
+ !! source digest: sha256:c6317aa94557d07370f45bb16d3bb54ddbd9f037937958680816482aba127ff2
27
27
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28
28
 
29
29
  .. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
@@ -251,6 +251,7 @@ Contributors
251
251
  - bosd
252
252
  - Evan Soh <evan.soh@omnisoftsolution.com>
253
253
  - Manuel Regidor <manuel.regidor@sygel.es>
254
+ - Eduardo de Miguel <edu@moduon.team>
254
255
 
255
256
  Maintainers
256
257
  -----------
@@ -1,31 +1,32 @@
1
- odoo/addons/base_tier_validation/README.rst,sha256=9rsIQR1_-kthmYgfGqRZ_3ecDq1twhLHjE1gsUTwMak,7527
1
+ odoo/addons/base_tier_validation/README.rst,sha256=_rWFCAo-c-7hzpvRCmjzhlBM2l6Sb4y1d9-b2z-_Hgo,7566
2
2
  odoo/addons/base_tier_validation/__init__.py,sha256=rKfzYX9RhkkCxgh2f0PJLYN45Kw8T8-fwxw1pbjLuug,108
3
- odoo/addons/base_tier_validation/__manifest__.py,sha256=hF3vB__WhQDiptSIhmHpoyJsv6ENK0oI66NlmwbsyGk,1606
3
+ odoo/addons/base_tier_validation/__manifest__.py,sha256=ucZRGbnNu0J2mV4NgQDs7WpsRlGE59h8AEna26rdoFQ,1658
4
4
  odoo/addons/base_tier_validation/data/mail_data.xml,sha256=UKzkLT8rYrFuThdp43v7nLW5SOco4vvIIAhbB_IAQZs,1414
5
- odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=kLaZk1QzRvPUFTxYyATaYg7Xtqj6ZqKT8j4V6Lwh_jQ,26806
6
- odoo/addons/base_tier_validation/i18n/es.po,sha256=1mrTc0uRWxDdBlub8QIZwsKoE6t28vT_YniNN1gnlr0,32571
7
- odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=jZqztOsZHTRMOY9d2iK1OG0HYCufAhuFK9cGoXvJ2KE,30201
8
- odoo/addons/base_tier_validation/i18n/fr.po,sha256=nxS-gcZ8rtqdX6IJbIDRpj6tWw2s-d3GQTJ0IjFzZaA,31207
9
- odoo/addons/base_tier_validation/i18n/it.po,sha256=4IqjboE5CTUuD7XDM_7zX1fcKtJ1Els3laTg8QfDEwM,32119
10
- odoo/addons/base_tier_validation/i18n/nl_NL.po,sha256=8-gfWvAqGgFjX5EE9FMeypSFsAp_mSX6McCIdBFE5h0,30500
11
- odoo/addons/base_tier_validation/i18n/sv.po,sha256=b9nhAtjUwRplMD4yygEQejqyFDK9X1PjBC5KOnS1hC8,32686
12
- odoo/addons/base_tier_validation/i18n/tr.po,sha256=kJCCMKVkULuJjhh5SHf2SK7Pu03fmMaBuoNckKd2MSY,30073
13
- odoo/addons/base_tier_validation/i18n/zh_CN.po,sha256=0gJMwbLvUSNpV64Yl9S49sr5Mb9mHeuPyFN9yE2lnQ4,28624
14
- odoo/addons/base_tier_validation/models/__init__.py,sha256=mLFF29I3WBYA2Qwlf9NU4pP2KwDKn5JpbZRzwe9-9pg,210
5
+ odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=8v7x8P7bvRckBkHImSDiOALz-5viZ1Lq2Rkd_tkdsIA,31437
6
+ odoo/addons/base_tier_validation/i18n/es.po,sha256=4g3BtpzOMWmbarD48Zul_Z2Zmh_Oypkr4uJnVqoH3TY,37279
7
+ odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=itlE-LN3zw8e0n-4NpKIPhxoXEz_GMLIRaBWXcTTZRU,34909
8
+ odoo/addons/base_tier_validation/i18n/fr.po,sha256=DRFJ2xjTSciN06ZrJ4RXPxMfZpbPlapYii7P2uECOV4,35915
9
+ odoo/addons/base_tier_validation/i18n/it.po,sha256=Br4OkTYbOkrlvxcK_BRu5a5ogIWv2y2mMZ41d0gO-QM,37777
10
+ odoo/addons/base_tier_validation/i18n/nl_NL.po,sha256=RgCeoBqGK6e7pEnbSzJVVDC4yVtnIqhBaF1twZ_SryQ,35208
11
+ odoo/addons/base_tier_validation/i18n/sv.po,sha256=LkisxUz38BbKuhmd20mLlIJYgYRtoY-wsxAtmL0LQ48,37394
12
+ odoo/addons/base_tier_validation/i18n/tr.po,sha256=y6RHegYXnqFHIJOjf8lXm0WApKeknjZ9Ep1Ply6PzpM,34781
13
+ odoo/addons/base_tier_validation/i18n/zh_CN.po,sha256=ZSAK41YdIXYZIXidO85x_YygrPWpVbxohFqrlV3lK2U,33332
14
+ odoo/addons/base_tier_validation/models/__init__.py,sha256=X8c8CFM5eOXyIErFr7xsaGDBPZMBSKE2v4W-_2h9B2s,250
15
15
  odoo/addons/base_tier_validation/models/res_config_settings.py,sha256=xMdQiCfU5p7Z5puKcSRvJihLpI9ulyVFUd_QJjAOuwc,619
16
16
  odoo/addons/base_tier_validation/models/res_users.py,sha256=JhUZ0NxJ9EPwpkJ-mvsNTrE1avQncGNKqAF-xFxokEo,2638
17
- odoo/addons/base_tier_validation/models/tier_definition.py,sha256=yHFe4atrr-zHUPAfmxB1BYyWK8oC172JTLPnEbCoanI,4125
17
+ odoo/addons/base_tier_validation/models/tier_definition.py,sha256=I-HeOZopA1n-bISs28XDeAosUrTnhL_mp_TB3awb2w0,4168
18
18
  odoo/addons/base_tier_validation/models/tier_review.py,sha256=vuR832VVM-ZUDm-4j9zK1BSNnL0JfesxBSLyhW4Zia8,6754
19
- odoo/addons/base_tier_validation/models/tier_validation.py,sha256=QdE966M-46aTix_rlIuKiH28pYrduf8jsjK2PHir61Q,27196
19
+ odoo/addons/base_tier_validation/models/tier_validation.py,sha256=I-I5q68QdDAALJeUzgN-xSj-UQN7sOk0cx5QFdz-qOI,32602
20
+ odoo/addons/base_tier_validation/models/tier_validation_exception.py,sha256=wlzi9q3oS5YwYdJed6CqO9CRdj9MQWr5-Y0GIZnZkJE,2992
20
21
  odoo/addons/base_tier_validation/readme/CONFIGURE.md,sha256=95NOZLcm0wpb4a8gC89YlSibj7GZ1kz5IbDsuqaaNII,752
21
- odoo/addons/base_tier_validation/readme/CONTRIBUTORS.md,sha256=_JIIvdWdZ7iVO1dpyq9XJ1UtytA1gowJ9L0y0LABJuo,504
22
+ odoo/addons/base_tier_validation/readme/CONTRIBUTORS.md,sha256=J7LBj933qFHjWwQrkaxWQUhFE-O3rqObqyRw96H5dpc,545
22
23
  odoo/addons/base_tier_validation/readme/DESCRIPTION.md,sha256=nFbYOx89EsI26v6NJF9d-Wm-X2YtHduSRlV5Euk3WWc,651
23
24
  odoo/addons/base_tier_validation/readme/HISTORY.md,sha256=P8GfoUhYG7QGIpa8Z0L67E3YEeZBFQCwpDXnt5WG-DY,1332
24
25
  odoo/addons/base_tier_validation/readme/ROADMAP.md,sha256=HRRQQuOlSeOF5yfqG0KuANnvrde8y6Suz2pbrXB1OyU,864
25
- odoo/addons/base_tier_validation/security/ir.model.access.csv,sha256=BuwLCexKbuj-5uOaxK8STRW1UMAhFJVaZj9Kto4iBp8,900
26
+ odoo/addons/base_tier_validation/security/ir.model.access.csv,sha256=g6B58IuYYqxD54e9I9vyre7mD74tkpauqTqMAH4Oey0,1134
26
27
  odoo/addons/base_tier_validation/security/tier_validation_security.xml,sha256=eWFwz-osHgYFmVoEVzOSboO9oqUMtQ8oygyaz0os50Y,806
27
28
  odoo/addons/base_tier_validation/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
28
- odoo/addons/base_tier_validation/static/description/index.html,sha256=YytZbh7jIMWxDd_BbOmrva_hVwBXdLEcHlOVEh1haEQ,21686
29
+ odoo/addons/base_tier_validation/static/description/index.html,sha256=IpKrO7kJcxmH9DDFqbPtiR0Nxo_xUiAILXHRqeIskSw,21892
29
30
  odoo/addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.esm.js,sha256=MNfjKSg-9h3JfeXiYlf15SAdVHjj3aUvedj0BqVvJrk,2254
30
31
  odoo/addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml,sha256=_wIy5Gv2VUJEXD5_FGphx1J19-Y8uzFlWryuPqlIh8c,2798
31
32
  odoo/addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.esm.js,sha256=MDWUp2ozeRdBoLeCfTcOnD-bKnk3yF6pHwtTAnsLZmg,1090
@@ -35,15 +36,16 @@ odoo/addons/base_tier_validation/static/src/js/services/tier_review_service.esm.
35
36
  odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=VI6kY0V6nVSz6KQ9GRxY_9TZkRrJgzBzsl9xFKtA__Y,3620
36
37
  odoo/addons/base_tier_validation/tests/__init__.py,sha256=3z2_lQ9JiDSFDam4p24qDw5j02iaPb4m2naxv9DkbGA,122
37
38
  odoo/addons/base_tier_validation/tests/common.py,sha256=Q0g3zv6cYrSPx8QHwsikFxRmi7TtmuUr4ID_9WvImd8,4504
38
- odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=jSjddl2waQQzOMLGlAAuqKQrItlEeZodA7yMnasgE6g,38852
39
- odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=sUN-BRUHDDQ8t1Dze5c6H_2XQqop7c5cEsA4vJksEpA,1660
39
+ odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=7l1kfCv31dqzNgAirZMaQM5OVvaA2OvJ7uAc0O7PLYw,41566
40
+ odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=3usFbhfDhlKIWbVu--3qsbsm52B6RwTP4zy244dY1yk,1757
40
41
  odoo/addons/base_tier_validation/views/res_config_settings_views.xml,sha256=5HbrsAVaXRoQNX7utIQ_EzZrqzKnwBrV9uHsi-PHb9M,2640
41
- odoo/addons/base_tier_validation/views/tier_definition_view.xml,sha256=u0n0iMvMxECxoduao9IpYf1f0LG-sH7QXqIj1mKB1o4,7613
42
+ odoo/addons/base_tier_validation/views/tier_definition_view.xml,sha256=FHpO2tW8FYKQffayERVlQEJH_ip8baZ7nC1NcFDsP7Y,7635
42
43
  odoo/addons/base_tier_validation/views/tier_review_view.xml,sha256=tPzmpz-kbQwOOtJrAcsTJEP9bJLcfzWAITCpI86kZU4,966
44
+ odoo/addons/base_tier_validation/views/tier_validation_exception_view.xml,sha256=aLh_jOIpEl4ScujerORyc2e4ANNVce3GVVf7Jo3waPg,4685
43
45
  odoo/addons/base_tier_validation/wizard/__init__.py,sha256=52q6-LAjYeJ1Vu5ahon_jnhds9VsoJvYaQCiZc82WKw,95
44
46
  odoo/addons/base_tier_validation/wizard/comment_wizard.py,sha256=gj7zCcpe47-2ifxSRlE6okQ1wtq5Ok3JBVg2CtN0ZIU,879
45
47
  odoo/addons/base_tier_validation/wizard/comment_wizard_view.xml,sha256=9XFTqrNwDCZH2IEX3HutaznSkBYk-6RERXzUDwObz4I,979
46
- odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info/METADATA,sha256=ZOeAPe_hXV4QFqxjaNxwIH8_rapZSdiMZL3oDWVL3iA,8125
47
- odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info/WHEEL,sha256=8Rd4enx1PCuyDWP4SABqO5Fv8rpaknqp3VzjoFFLa6c,83
48
- odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
49
- odoo_addon_base_tier_validation-17.0.1.5.1.4.dist-info/RECORD,,
48
+ odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info/METADATA,sha256=wD7etGhtIYVfus6BnWTfM7j8yS8E-OmVuA_MTlY-N4Q,8164
49
+ odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info/WHEEL,sha256=8Rd4enx1PCuyDWP4SABqO5Fv8rpaknqp3VzjoFFLa6c,83
50
+ odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
51
+ odoo_addon_base_tier_validation-17.0.2.0.0.2.dist-info/RECORD,,