odoo-addon-base-tier-validation 16.0.1.0.4.76__py3-none-any.whl → 16.0.1.0.5.1__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/__manifest__.py +1 -1
- odoo/addons/base_tier_validation/i18n/it.po +3 -3
- odoo/addons/base_tier_validation/models/tier_validation.py +38 -18
- odoo/addons/base_tier_validation/static/src/xml/tier_review_template.xml +40 -16
- odoo/addons/base_tier_validation/templates/tier_validation_templates.xml +5 -5
- {odoo_addon_base_tier_validation-16.0.1.0.4.76.dist-info → odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info}/METADATA +1 -1
- {odoo_addon_base_tier_validation-16.0.1.0.4.76.dist-info → odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info}/RECORD +9 -9
- {odoo_addon_base_tier_validation-16.0.1.0.4.76.dist-info → odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info}/WHEEL +0 -0
- {odoo_addon_base_tier_validation-16.0.1.0.4.76.dist-info → odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,7 @@ 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: 2023-06-
|
9
|
+
"PO-Revision-Date: 2023-06-30 10:10+0000\n"
|
10
10
|
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
|
11
11
|
"Language-Team: none\n"
|
12
12
|
"Language: it\n"
|
@@ -423,7 +423,7 @@ msgstr ""
|
|
423
423
|
#. module: base_tier_validation
|
424
424
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
425
425
|
msgid "Request Validation"
|
426
|
-
msgstr "Richiedi
|
426
|
+
msgstr "Richiedi validazione"
|
427
427
|
|
428
428
|
#. module: base_tier_validation
|
429
429
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
|
@@ -452,7 +452,7 @@ msgstr "Res Model"
|
|
452
452
|
#. module: base_tier_validation
|
453
453
|
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
454
454
|
msgid "Restart Validation"
|
455
|
-
msgstr "Riavvia
|
455
|
+
msgstr "Riavvia validazione"
|
456
456
|
|
457
457
|
#. module: base_tier_validation
|
458
458
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
|
@@ -193,9 +193,7 @@ class TierValidation(models.AbstractModel):
|
|
193
193
|
tiers = self.env["tier.definition"].search([("model", "=", self._name)])
|
194
194
|
valid_tiers = any([rec.evaluate_tier(tier) for tier in tiers])
|
195
195
|
rec.need_validation = (
|
196
|
-
not rec.review_ids
|
197
|
-
and valid_tiers
|
198
|
-
and getattr(rec, self._state_field) in self._state_from
|
196
|
+
not rec.review_ids and valid_tiers and rec._check_state_from_condition()
|
199
197
|
)
|
200
198
|
|
201
199
|
def evaluate_tier(self, tier):
|
@@ -253,10 +251,16 @@ class TierValidation(models.AbstractModel):
|
|
253
251
|
self.mapped("review_ids").unlink()
|
254
252
|
return super(TierValidation, self).write(vals)
|
255
253
|
|
254
|
+
def _check_state_from_condition(self):
|
255
|
+
return self.env.context.get("skip_check_state_condition") or (
|
256
|
+
self._state_field in self._fields
|
257
|
+
and getattr(self, self._state_field) in self._state_from
|
258
|
+
)
|
259
|
+
|
256
260
|
def _check_state_conditions(self, vals):
|
257
261
|
self.ensure_one()
|
258
262
|
return (
|
259
|
-
|
263
|
+
self._check_state_from_condition()
|
260
264
|
and vals.get(self._state_field) in self._state_to
|
261
265
|
)
|
262
266
|
|
@@ -405,7 +409,7 @@ class TierValidation(models.AbstractModel):
|
|
405
409
|
td_obj = self.env["tier.definition"]
|
406
410
|
tr_obj = created_trs = self.env["tier.review"]
|
407
411
|
for rec in self:
|
408
|
-
if
|
412
|
+
if rec._check_state_from_condition():
|
409
413
|
if rec.need_validation:
|
410
414
|
tier_definitions = td_obj.search(
|
411
415
|
[("model", "=", self._name)], order="sequence desc"
|
@@ -463,6 +467,27 @@ class TierValidation(models.AbstractModel):
|
|
463
467
|
self.mapped("review_ids").unlink()
|
464
468
|
return super().unlink()
|
465
469
|
|
470
|
+
def _add_tier_validation_buttons(self, node, params):
|
471
|
+
str_element = self.env["ir.qweb"]._render(
|
472
|
+
"base_tier_validation.tier_validation_buttons", params
|
473
|
+
)
|
474
|
+
new_node = etree.fromstring(str_element)
|
475
|
+
return new_node
|
476
|
+
|
477
|
+
def _add_tier_validation_label(self, node, params):
|
478
|
+
str_element = self.env["ir.qweb"]._render(
|
479
|
+
"base_tier_validation.tier_validation_label", params
|
480
|
+
)
|
481
|
+
new_node = etree.fromstring(str_element)
|
482
|
+
return new_node
|
483
|
+
|
484
|
+
def _add_tier_validation_reviews(self, node, params):
|
485
|
+
str_element = self.env["ir.qweb"]._render(
|
486
|
+
"base_tier_validation.tier_validation_reviews", params
|
487
|
+
)
|
488
|
+
new_node = etree.fromstring(str_element)
|
489
|
+
return new_node
|
490
|
+
|
466
491
|
@api.model
|
467
492
|
def get_view(self, view_id=None, view_type="form", **options):
|
468
493
|
res = super().get_view(view_id=view_id, view_type=view_type, **options)
|
@@ -476,32 +501,27 @@ class TierValidation(models.AbstractModel):
|
|
476
501
|
doc = etree.XML(res["arch"])
|
477
502
|
params = {
|
478
503
|
"state_field": self._state_field,
|
479
|
-
"
|
504
|
+
"state_operator": "not in",
|
505
|
+
"state_value": self._state_from,
|
480
506
|
}
|
481
507
|
all_models = res["models"].copy()
|
482
508
|
for node in doc.xpath(self._tier_validation_buttons_xpath):
|
483
509
|
# By default, after the last button of the header
|
484
|
-
|
485
|
-
|
486
|
-
)
|
487
|
-
new_node = etree.fromstring(str_element)
|
510
|
+
# _add_tier_validation_buttons process
|
511
|
+
new_node = self._add_tier_validation_buttons(node, params)
|
488
512
|
new_arch, new_models = View.postprocess_and_fields(new_node, self._name)
|
489
513
|
new_node = etree.fromstring(new_arch)
|
490
514
|
for new_element in new_node:
|
491
515
|
node.addnext(new_element)
|
492
516
|
for node in doc.xpath("/form/sheet"):
|
493
|
-
|
494
|
-
|
495
|
-
)
|
496
|
-
new_node = etree.fromstring(str_element)
|
517
|
+
# _add_tier_validation_label process
|
518
|
+
new_node = self._add_tier_validation_label(node, params)
|
497
519
|
new_arch, new_models = View.postprocess_and_fields(new_node, self._name)
|
498
520
|
new_node = etree.fromstring(new_arch)
|
499
521
|
for new_element in new_node:
|
500
522
|
node.addprevious(new_element)
|
501
|
-
|
502
|
-
|
503
|
-
)
|
504
|
-
new_node = etree.fromstring(str_element)
|
523
|
+
# _add_tier_validation_reviews process
|
524
|
+
new_node = self._add_tier_validation_reviews(node, params)
|
505
525
|
new_arch, new_models = View.postprocess_and_fields(new_node, self._name)
|
506
526
|
for model in new_models:
|
507
527
|
if model in all_models:
|
@@ -21,14 +21,38 @@
|
|
21
21
|
<table class="oe_mt32 table table-condensed">
|
22
22
|
<thead>
|
23
23
|
<tr>
|
24
|
-
<th
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
<th
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
<th
|
25
|
+
name="th_sequence"
|
26
|
+
class="text-center"
|
27
|
+
>Sequence</th>
|
28
|
+
<th
|
29
|
+
name="th_requested_by"
|
30
|
+
class="text-left"
|
31
|
+
>Requested by</th>
|
32
|
+
<th
|
33
|
+
name="th_name"
|
34
|
+
class="text-right"
|
35
|
+
>Description</th>
|
36
|
+
<th
|
37
|
+
name="th_display_status"
|
38
|
+
class="text-right"
|
39
|
+
>Status</th>
|
40
|
+
<th
|
41
|
+
name="th_todo_by"
|
42
|
+
class="text-right"
|
43
|
+
>Todo by</th>
|
44
|
+
<th
|
45
|
+
name="th_done_by"
|
46
|
+
class="text-right"
|
47
|
+
>Done by</th>
|
48
|
+
<th
|
49
|
+
name="th_reviewed_date"
|
50
|
+
class="text-right"
|
51
|
+
>Validation Date</th>
|
52
|
+
<th
|
53
|
+
name="th_comment"
|
54
|
+
class="text-right"
|
55
|
+
>Comment</th>
|
32
56
|
</tr>
|
33
57
|
</thead>
|
34
58
|
<tbody class="sale_tbody">
|
@@ -53,32 +77,32 @@
|
|
53
77
|
t-value="'alert-danger'"
|
54
78
|
/>
|
55
79
|
<tr t-att-class="status_class">
|
56
|
-
<td class="text-center">
|
80
|
+
<td name="td_sequence" class="text-center">
|
57
81
|
<span t-esc="review.sequence" />
|
58
82
|
</td>
|
59
|
-
<td class="text-left">
|
83
|
+
<td name="td_requested_by" class="text-left">
|
60
84
|
<span t-esc="review.requested_by[1]" />
|
61
85
|
</td>
|
62
|
-
<td class="text-right">
|
86
|
+
<td name="td_name" class="text-right">
|
63
87
|
<span t-esc="review.name" />
|
64
88
|
</td>
|
65
|
-
<td class="text-right">
|
89
|
+
<td name="td_display_status" class="text-right">
|
66
90
|
<span t-esc="review.status" />
|
67
91
|
</td>
|
68
|
-
<td class="text-right">
|
92
|
+
<td name="td_todo_by" class="text-right">
|
69
93
|
<span t-esc="review.todo_by" />
|
70
94
|
</td>
|
71
|
-
<td class="text-right">
|
95
|
+
<td name="td_done_by" class="text-right">
|
72
96
|
<span t-esc="review.done_by[1]" />
|
73
97
|
</td>
|
74
|
-
<td class="text-right">
|
98
|
+
<td name="td_reviewed_date" class="text-right">
|
75
99
|
<t t-if="review.reviewed_formated_date">
|
76
100
|
<span
|
77
101
|
t-esc="review.reviewed_formated_date"
|
78
102
|
/>
|
79
103
|
</t>
|
80
104
|
</td>
|
81
|
-
<td class="text-left">
|
105
|
+
<td name="td_comment" class="text-left">
|
82
106
|
<t t-if="review.comment">
|
83
107
|
<span t-esc="review.comment" />
|
84
108
|
</t>
|
@@ -5,13 +5,13 @@
|
|
5
5
|
<button
|
6
6
|
name="request_validation"
|
7
7
|
string="Request Validation"
|
8
|
-
t-attf-attrs="{'invisible': ['|','|',('need_validation', '!=', True),('rejected','=',True),('#{state_field}', '
|
8
|
+
t-attf-attrs="{'invisible': ['|','|',('need_validation', '!=', True),('rejected','=',True),('#{state_field}', '#{state_operator}', #{state_value})]}"
|
9
9
|
type="object"
|
10
10
|
/>
|
11
11
|
<button
|
12
12
|
name="restart_validation"
|
13
13
|
string="Restart Validation"
|
14
|
-
t-attf-attrs="{'invisible': ['|',('review_ids', '=', []),('#{state_field}', '
|
14
|
+
t-attf-attrs="{'invisible': ['|',('review_ids', '=', []),('#{state_field}', '#{state_operator}', #{state_value})]}"
|
15
15
|
type="object"
|
16
16
|
/>
|
17
17
|
</div>
|
@@ -25,7 +25,7 @@
|
|
25
25
|
class="alert alert-warning"
|
26
26
|
role="alert"
|
27
27
|
t-attf-attrs="{'invisible': ['|', '|', '|',
|
28
|
-
('validated', '=', True), ('#{state_field}', '
|
28
|
+
('validated', '=', True), ('#{state_field}', '#{state_operator}', #{state_value}),
|
29
29
|
('rejected', '=', True), ('review_ids', '=', [])]}"
|
30
30
|
style="margin-bottom:0px;"
|
31
31
|
>
|
@@ -56,7 +56,7 @@
|
|
56
56
|
<div
|
57
57
|
class="alert alert-success"
|
58
58
|
role="alert"
|
59
|
-
t-attf-attrs="{'invisible': ['|', '|', ('validated', '!=', True), ('#{state_field}', '
|
59
|
+
t-attf-attrs="{'invisible': ['|', '|', ('validated', '!=', True), ('#{state_field}', '#{state_operator}', #{state_value}), ('review_ids', '=', [])]}"
|
60
60
|
style="margin-bottom:0px;"
|
61
61
|
>
|
62
62
|
<p>
|
@@ -69,7 +69,7 @@
|
|
69
69
|
<div
|
70
70
|
class="alert alert-danger"
|
71
71
|
role="alert"
|
72
|
-
t-attf-attrs="{'invisible': ['|', '|', ('rejected', '!=', True), ('#{state_field}', '
|
72
|
+
t-attf-attrs="{'invisible': ['|', '|', ('rejected', '!=', True), ('#{state_field}', '#{state_operator}', #{state_value}), ('review_ids', '=', [])]}"
|
73
73
|
style="margin-bottom:0px;"
|
74
74
|
>
|
75
75
|
<p>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-base-tier-validation
|
3
|
-
Version: 16.0.1.0.
|
3
|
+
Version: 16.0.1.0.5.1
|
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)
|
@@ -1,12 +1,12 @@
|
|
1
1
|
odoo/addons/base_tier_validation/README.rst,sha256=uL0-_2pPU4OnuqECQyZl7KCrYhoSchd5i0YEZfCZ36c,6652
|
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=bBmyG8Bq981jonco_dNieiLFkif9SZBmSp74qPtF5IY,1929
|
4
4
|
odoo/addons/base_tier_validation/data/mail_data.xml,sha256=UKzkLT8rYrFuThdp43v7nLW5SOco4vvIIAhbB_IAQZs,1414
|
5
5
|
odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=5EzPAc8NDwVwm_pIyUUnaqo5re83OGqydm99R16oXe8,21900
|
6
6
|
odoo/addons/base_tier_validation/i18n/es.po,sha256=-H1xRSJUWm8inPraBgfSVZQeYY7sJnD3NraMudlZNao,24648
|
7
7
|
odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=-TfqfsFL4mngLYC3wzmAi2FGfCD2wGLr9KTqiNZu8kc,24619
|
8
8
|
odoo/addons/base_tier_validation/i18n/fr.po,sha256=n4XyuaWQMLTZbFyxZzLGGZw4w3ZeennVMDzTMznbJys,23547
|
9
|
-
odoo/addons/base_tier_validation/i18n/it.po,sha256=
|
9
|
+
odoo/addons/base_tier_validation/i18n/it.po,sha256=_XCjs-jDLlTKpP9fsFckspnLfE_hGUSktoFhioW4aPs,24205
|
10
10
|
odoo/addons/base_tier_validation/i18n/nl_NL.po,sha256=Uu6pzvBlYWE71MxTFIdLf6exWkMCYydyuDq066nOBLA,23871
|
11
11
|
odoo/addons/base_tier_validation/i18n/sv.po,sha256=cQ30T4g_uUWpnZJYY8bOoMM0qDDL0CLcm2_-kVD8J0E,25377
|
12
12
|
odoo/addons/base_tier_validation/i18n/tr.po,sha256=HLPoGImlq_2uEhgVuchcyFdiTczwZPJ9VnYFj7LTkD0,24521
|
@@ -16,7 +16,7 @@ odoo/addons/base_tier_validation/models/res_config_settings.py,sha256=-Gw9jsRHKU
|
|
16
16
|
odoo/addons/base_tier_validation/models/res_users.py,sha256=6zI7I5IUnmQrLJw0AvGZJ2xyW7zrQUBAdvhtxTwmUg4,2368
|
17
17
|
odoo/addons/base_tier_validation/models/tier_definition.py,sha256=UU3VxJXWuO8wUq8IXtB8-O1kghgisp297FmtVKEKswc,2952
|
18
18
|
odoo/addons/base_tier_validation/models/tier_review.py,sha256=SYQbhaC8vjxe_D7-cAjSMmc3B9jSyXo-PG8gI98PIHY,5069
|
19
|
-
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=
|
19
|
+
odoo/addons/base_tier_validation/models/tier_validation.py,sha256=gPseQg-u4AvpuF5E6NpCD9C0lo1KODuSGaOzHcOJ3BA,21494
|
20
20
|
odoo/addons/base_tier_validation/readme/CONFIGURE.rst,sha256=-XvqIRVzdEx5Pl-w5qVHayTDYzGDI1FX92ChdijeNh0,503
|
21
21
|
odoo/addons/base_tier_validation/readme/CONTRIBUTORS.rst,sha256=ibMe_AqDBgemGXGJOMH6_NCDegHoav6Umt7Fy4cmC-E,282
|
22
22
|
odoo/addons/base_tier_validation/readme/DESCRIPTION.rst,sha256=MFbI1iBk0moWjdQUueJa05am8-JfIiiLRSyGgi1NBFY,653
|
@@ -40,8 +40,8 @@ odoo/addons/base_tier_validation/static/src/scss/review.scss,sha256=K0ZLNShHoj-p
|
|
40
40
|
odoo/addons/base_tier_validation/static/src/scss/systray.scss,sha256=vco1l3nsJfXBzfKWONvy4RGunKvJviAYyH2S9znF620,3912
|
41
41
|
odoo/addons/base_tier_validation/static/src/xml/reviewer_menu_container.xml,sha256=pMgADQ7SgdHrE_FTo2hnpDJqPbuc9jOHXHSAaa0Gjbk,271
|
42
42
|
odoo/addons/base_tier_validation/static/src/xml/systray.xml,sha256=8W04E80UhUPQp6U9zvmDu1qqOXsDaDP8Q5YFw6Dgg7s,4987
|
43
|
-
odoo/addons/base_tier_validation/static/src/xml/tier_review_template.xml,sha256=
|
44
|
-
odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=
|
43
|
+
odoo/addons/base_tier_validation/static/src/xml/tier_review_template.xml,sha256=Sx9YalTQ3Dna-1jKOYBXWu-3COz3BKLys4LKuF-F2OE,6209
|
44
|
+
odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=B5qrTgq6u3_iQFZpdSejp3iaIdEjNIcwRVZl1K-Kgw8,3997
|
45
45
|
odoo/addons/base_tier_validation/tests/__init__.py,sha256=3z2_lQ9JiDSFDam4p24qDw5j02iaPb4m2naxv9DkbGA,122
|
46
46
|
odoo/addons/base_tier_validation/tests/common.py,sha256=RlwG9uTfv3URzFK05KuYNSSTqudpY7EMo_AB4GibwUk,2673
|
47
47
|
odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=DnR2GFaxHH7yOCmhGaHrk1eb_LnMjLIHCXzlZxq1gc4,20311
|
@@ -52,7 +52,7 @@ odoo/addons/base_tier_validation/views/tier_review_view.xml,sha256=tPzmpz-kbQwOO
|
|
52
52
|
odoo/addons/base_tier_validation/wizard/__init__.py,sha256=52q6-LAjYeJ1Vu5ahon_jnhds9VsoJvYaQCiZc82WKw,95
|
53
53
|
odoo/addons/base_tier_validation/wizard/comment_wizard.py,sha256=gj7zCcpe47-2ifxSRlE6okQ1wtq5Ok3JBVg2CtN0ZIU,879
|
54
54
|
odoo/addons/base_tier_validation/wizard/comment_wizard_view.xml,sha256=9XFTqrNwDCZH2IEX3HutaznSkBYk-6RERXzUDwObz4I,979
|
55
|
-
odoo_addon_base_tier_validation-16.0.1.0.
|
56
|
-
odoo_addon_base_tier_validation-16.0.1.0.
|
57
|
-
odoo_addon_base_tier_validation-16.0.1.0.
|
58
|
-
odoo_addon_base_tier_validation-16.0.1.0.
|
55
|
+
odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info/METADATA,sha256=L-RTdDEQq2MWmfulzIsbX7LYpulOF4YmahCmw3ahgW8,7259
|
56
|
+
odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
57
|
+
odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
58
|
+
odoo_addon_base_tier_validation-16.0.1.0.5.1.dist-info/RECORD,,
|
File without changes
|