odoo-addon-base-tier-validation 16.0.2.1.0.3__py3-none-any.whl → 16.0.2.2.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.
@@ -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:63bf2b0b14c3e9aba79d5e35651801a5d7172339b1265297c4712d5647b65494
10
+ !! source digest: sha256:8b1acaf63ebb5ca436aa5ceacd1eda68013349402be0a94052155ba9f286e931
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
@@ -3,7 +3,7 @@
3
3
  {
4
4
  "name": "Base Tier Validation",
5
5
  "summary": "Implement a validation process based on tiers.",
6
- "version": "16.0.2.1.0",
6
+ "version": "16.0.2.2.0",
7
7
  "development_status": "Mature",
8
8
  "maintainers": ["LoisRForgeFlow"],
9
9
  "category": "Tools",
@@ -14,6 +14,7 @@
14
14
  "installable": True,
15
15
  "depends": ["mail"],
16
16
  "data": [
17
+ "data/cron_data.xml",
17
18
  "data/mail_data.xml",
18
19
  "security/ir.model.access.csv",
19
20
  "security/tier_validation_security.xml",
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <odoo noupdate="1">
3
+ <record id="ir_cron_auto_tier_validation" model="ir.cron">
4
+ <field name="name">Send Tier Review Reminder</field>
5
+ <field name="interval_number">1</field>
6
+ <field name="interval_type">days</field>
7
+ <field name="numbercall">-1</field>
8
+ <field
9
+ name="nextcall"
10
+ eval="(datetime.now() + timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M:%S')"
11
+ />
12
+ <field name="doall" eval="False" />
13
+ <field name="model_id" ref="model_tier_definition" />
14
+ <field name="code">model._cron_send_review_reminder()</field>
15
+ <field name="state">code</field>
16
+ </record>
17
+ </odoo>
@@ -40,4 +40,22 @@
40
40
  <field name="internal" eval="True" />
41
41
  <field name="hidden" eval="True" />
42
42
  </record>
43
+ <record
44
+ id="mt_tier_validation_reminder"
45
+ model="mail.message.subtype"
46
+ forcecreate="1"
47
+ >
48
+ <field name="name">Tier Validation Reminder</field>
49
+ <field name="default" eval="True" />
50
+ <field name="internal" eval="True" />
51
+ <field name="hidden" eval="True" />
52
+ </record>
53
+ <record
54
+ id="mail_act_tier_validation_reminder"
55
+ model="mail.activity.type"
56
+ forcecreate="1"
57
+ >
58
+ <field name="name">Tier Validation Reminder</field>
59
+ <field name="icon">fa-bell</field>
60
+ </record>
43
61
  </odoo>
@@ -45,6 +45,13 @@ msgstr ""
45
45
  msgid "<span>Bypassed, if previous tier was validated by same reviewer</span>"
46
46
  msgstr ""
47
47
 
48
+ #. module: base_tier_validation
49
+ #. odoo-python
50
+ #: code:addons/base_tier_validation/models/tier_review.py:0
51
+ #, python-format
52
+ msgid "A review has been requested %s days ago."
53
+ msgstr ""
54
+
48
55
  #. module: base_tier_validation
49
56
  #. odoo-python
50
57
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -374,6 +381,11 @@ msgstr ""
374
381
  msgid "Last Modified on"
375
382
  msgstr ""
376
383
 
384
+ #. module: base_tier_validation
385
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
386
+ msgid "Last Reminder Date"
387
+ msgstr ""
388
+
377
389
  #. module: base_tier_validation
378
390
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
379
391
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
@@ -460,6 +472,13 @@ msgstr ""
460
472
  msgid "Notify Reviewers on Restarted"
461
473
  msgstr ""
462
474
 
475
+ #. module: base_tier_validation
476
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
477
+ msgid ""
478
+ "Number of days after which a message must be posted to remind about pending "
479
+ "validation (0 = no reminder)"
480
+ msgstr ""
481
+
463
482
  #. module: base_tier_validation
464
483
  #: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
465
484
  msgid ""
@@ -603,6 +622,17 @@ msgstr ""
603
622
  msgid "Reviews"
604
623
  msgstr ""
605
624
 
625
+ #. module: base_tier_validation
626
+ #: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
627
+ #: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
628
+ msgid "Send Tier Review Reminder"
629
+ msgstr ""
630
+
631
+ #. module: base_tier_validation
632
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
633
+ msgid "Send reminder message on pending reviews"
634
+ msgstr ""
635
+
606
636
  #. module: base_tier_validation
607
637
  #. odoo-javascript
608
638
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
@@ -710,6 +740,12 @@ msgstr ""
710
740
  msgid "Tier Validation Rejected Notification"
711
741
  msgstr ""
712
742
 
743
+ #. module: base_tier_validation
744
+ #: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
745
+ #: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
746
+ msgid "Tier Validation Reminder"
747
+ msgstr ""
748
+
713
749
  #. module: base_tier_validation
714
750
  #: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
715
751
  msgid "Tier Validation Requested"
@@ -83,6 +83,11 @@ class TierDefinition(models.Model):
83
83
  "to this definition are restarted.",
84
84
  )
85
85
  has_comment = fields.Boolean(string="Comment", default=False)
86
+ notify_reminder_delay = fields.Integer(
87
+ string="Send reminder message on pending reviews",
88
+ help="Number of days after which a message must be posted to remind about "
89
+ "pending validation (0 = no reminder)",
90
+ )
86
91
  approve_sequence = fields.Boolean(
87
92
  string="Approve by sequence",
88
93
  default=False,
@@ -105,3 +110,33 @@ class TierDefinition(models.Model):
105
110
  .sudo()
106
111
  .search([("model", "=", rec.model), ("relation", "=", "res.users")])
107
112
  )
113
+
114
+ def _get_review_needing_reminder(self):
115
+ """Return all the reviews that have the reminder setup."""
116
+ self.ensure_one()
117
+ if not self.notify_reminder_delay:
118
+ return self.env["tier.review"]
119
+ review_date = fields.Datetime.subtract(
120
+ fields.Datetime.now(), days=self.notify_reminder_delay
121
+ )
122
+ return self.env["tier.review"].search(
123
+ [
124
+ ("definition_id", "=", self.id),
125
+ ("status", "=", "pending"),
126
+ "|",
127
+ "&",
128
+ ("create_date", "<", review_date),
129
+ ("last_reminder_date", "=", False),
130
+ ("last_reminder_date", "<", review_date),
131
+ ],
132
+ limit=1,
133
+ )
134
+
135
+ def _cron_send_review_reminder(self):
136
+ definition_with_reminder = self.env["tier.definition"].search(
137
+ [("notify_reminder_delay", ">", 0)]
138
+ )
139
+ for record in definition_with_reminder:
140
+ review_to_remind = record._get_review_needing_reminder()
141
+ if review_to_remind:
142
+ review_to_remind._send_review_reminder()
@@ -1,11 +1,15 @@
1
1
  # Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
2
2
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
3
 
4
+ import logging
5
+
4
6
  import pytz
5
7
 
6
8
  from odoo import _, api, fields, models
7
9
  from odoo.exceptions import ValidationError
8
10
 
11
+ _logger = logging.getLogger(__name__)
12
+
9
13
 
10
14
  class TierReview(models.Model):
11
15
  _name = "tier.review"
@@ -64,6 +68,7 @@ class TierReview(models.Model):
64
68
  approve_sequence_bypass = fields.Boolean(
65
69
  related="definition_id.approve_sequence_bypass", readonly=True
66
70
  )
71
+ last_reminder_date = fields.Datetime(readonly=True)
67
72
 
68
73
  @api.depends("status")
69
74
  def _compute_display_status(self):
@@ -138,3 +143,38 @@ class TierReview(models.Model):
138
143
  if not reviewer_field or not reviewer_field._name == "res.users":
139
144
  raise ValidationError(_("There are no res.users in the selected field"))
140
145
  return reviewer_field
146
+
147
+ def _get_reminder_notification_subtype(self):
148
+ return "base_tier_validation.mt_tier_validation_reminder"
149
+
150
+ def _get_reminder_activity_type(self):
151
+ return "base_tier_validation.mail_act_tier_validation_reminder"
152
+
153
+ def _notify_review_reminder_body(self):
154
+ delay = (fields.Datetime.now() - self.create_date).days
155
+ return _("A review has been requested %s days ago.") % (delay)
156
+
157
+ def _send_review_reminder(self):
158
+ record = self.env[self.model].browse(self.res_id)
159
+ # Only schedule activity if reviewer is a single user and model has activities
160
+ if len(self.reviewer_ids) == 1 and hasattr(record, "activity_ids"):
161
+ self._schedule_review_reminder_activity(record)
162
+ elif hasattr(record, "message_post"):
163
+ self._notify_review_reminder(record)
164
+ else:
165
+ msg = "Could not send reminder for record %s" % record
166
+ _logger.exception(msg)
167
+ self.last_reminder_date = fields.Datetime.now()
168
+
169
+ def _notify_review_reminder(self, record):
170
+ record.message_post(
171
+ subtype_xmlid=self._get_reminder_notification_subtype(),
172
+ body=self._notify_review_reminder_body(),
173
+ )
174
+
175
+ def _schedule_review_reminder_activity(self, record):
176
+ record.activity_schedule(
177
+ act_type_xmlid=self._get_reminder_activity_type(),
178
+ note=self._notify_review_reminder_body(),
179
+ act_values={"user_id": self.reviewer_ids.id},
180
+ )
@@ -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:63bf2b0b14c3e9aba79d5e35651801a5d7172339b1265297c4712d5647b65494
370
+ !! source digest: sha256:8b1acaf63ebb5ca436aa5ceacd1eda68013349402be0a94052155ba9f286e931
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&amp;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
@@ -2,3 +2,4 @@
2
2
 
3
3
  from . import common
4
4
  from . import test_tier_validation
5
+ from . import test_tier_validation_reminder
@@ -73,7 +73,7 @@ class CommonTierValidation(common.TransactionCase):
73
73
 
74
74
  # Create tier definitions:
75
75
  cls.tier_def_obj = cls.env["tier.definition"]
76
- cls.tier_def_obj.create(
76
+ cls.tier_definition = cls.tier_def_obj.create(
77
77
  {
78
78
  "model_id": cls.tester_model.id,
79
79
  "review_type": "individual",
@@ -0,0 +1,46 @@
1
+ # Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
2
+ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
3
+
4
+ from freezegun import freeze_time
5
+
6
+ from odoo import fields
7
+ from odoo.tests.common import tagged
8
+
9
+ from .common import CommonTierValidation
10
+
11
+
12
+ @tagged("post_install", "-at_install")
13
+ class TierTierValidation(CommonTierValidation):
14
+ def test_validation_reminder(self):
15
+ """Check the posting of reminder to reviews."""
16
+ tier_definition = self.tier_definition
17
+ tier_definition.notify_reminder_delay = 3
18
+
19
+ # Request a review today
20
+ self.test_record.with_user(self.test_user_2.id).request_validation()
21
+ review = self.env["tier.review"].search(
22
+ [("definition_id", "=", tier_definition.id)]
23
+ )
24
+ self.assertTrue(review)
25
+ self.assertEqual(review.last_reminder_date, False)
26
+
27
+ # 2 days later no reminder should be posted
28
+ in_2_days = fields.Datetime.add(fields.Datetime.now(), days=2)
29
+ with freeze_time(in_2_days):
30
+ tier_definition._cron_send_review_reminder()
31
+ self.assertEqual(review.last_reminder_date, False)
32
+ # 4 days later first reminder
33
+ in_4_days = fields.Datetime.add(fields.Datetime.now(), days=4)
34
+ with freeze_time(in_4_days):
35
+ self.tier_definition._cron_send_review_reminder()
36
+ self.assertEqual(review.last_reminder_date, in_4_days)
37
+ # 5 days later no new reminder
38
+ in_6_days = fields.Datetime.add(fields.Datetime.now(), days=6)
39
+ with freeze_time(in_6_days):
40
+ self.tier_definition._cron_send_review_reminder()
41
+ self.assertEqual(review.last_reminder_date, in_4_days)
42
+ # 9 days later second reminder
43
+ in_9_days = fields.Datetime.add(fields.Datetime.now(), days=9)
44
+ with freeze_time(in_9_days):
45
+ self.tier_definition._cron_send_review_reminder()
46
+ self.assertEqual(review.last_reminder_date, in_9_days)
@@ -103,6 +103,7 @@
103
103
  <field name="notify_on_rejected" />
104
104
  <field name="notify_on_restarted" />
105
105
  <field name="has_comment" />
106
+ <field name="notify_reminder_delay" />
106
107
  </group>
107
108
  </group>
108
109
  </page>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-base_tier_validation
3
- Version: 16.0.2.1.0.3
3
+ Version: 16.0.2.2.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:63bf2b0b14c3e9aba79d5e35651801a5d7172339b1265297c4712d5647b65494
26
+ !! source digest: sha256:8b1acaf63ebb5ca436aa5ceacd1eda68013349402be0a94052155ba9f286e931
27
27
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28
28
 
29
29
  .. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
@@ -1,8 +1,9 @@
1
- odoo/addons/base_tier_validation/README.rst,sha256=Jt0EWVSDTH7ABeHnPnNsLfq9WRB_3pGf6N-xnI--zmQ,7923
1
+ odoo/addons/base_tier_validation/README.rst,sha256=WKb2UQhzf26eoEp_QtiAqqUpzzknkes42lAgTthn33A,7923
2
2
  odoo/addons/base_tier_validation/__init__.py,sha256=rKfzYX9RhkkCxgh2f0PJLYN45Kw8T8-fwxw1pbjLuug,108
3
- odoo/addons/base_tier_validation/__manifest__.py,sha256=hpR-HuA4CGAp5t6GGvI9h7Ar_N8j5B-Jb2JHQHDhGhI,1981
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=uYM6IM16FY40uXix5y70lM1R089hX-qkCrVR9GfN2xQ,30633
3
+ odoo/addons/base_tier_validation/__manifest__.py,sha256=f5nlAgFFR2kvfzRhgYjR_x8tjgy-L4wwfVnByUubnRI,2011
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=hXhGTSyG2NAsDfZShmpyBKTXJi46L5PP1mFJAlKmlVE,1984
6
+ odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=ei6nid7LgkDWw5XSppYPq98Lm40Un5EZZkJoWHgVNos,31951
6
7
  odoo/addons/base_tier_validation/i18n/es.po,sha256=qr5OdG339ONKix0tTUxcVAfbwX3DvJgaZpa3zQ6mDdg,35845
7
8
  odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=80IMp-B8IwIpmPQ0S5JreRDh2g7lwniOVTIKK4Rm-q8,33946
8
9
  odoo/addons/base_tier_validation/i18n/fr.po,sha256=Q35eYMQSV0NiuPdEXt2v5gM9Sgq5hphHmU-NcP-FBAY,35752
@@ -14,8 +15,8 @@ odoo/addons/base_tier_validation/i18n/zh_CN.po,sha256=D7zHVoiCS2T_jYNrPygS3DpWg1
14
15
  odoo/addons/base_tier_validation/models/__init__.py,sha256=X8c8CFM5eOXyIErFr7xsaGDBPZMBSKE2v4W-_2h9B2s,250
15
16
  odoo/addons/base_tier_validation/models/res_config_settings.py,sha256=n-i1InkXDcFrKmNkTCWtxcDSaxIAvxY7JsU5NrufmmA,617
16
17
  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=X7U_FCai73UDB3UVDPGgaUNOHzhMLuvAJvfz4I7IRXc,3800
18
- odoo/addons/base_tier_validation/models/tier_review.py,sha256=l7eOgr0fSg4_C42JwNDnUOIs-CKHYzvIDWPtDmu5Sm8,5669
18
+ odoo/addons/base_tier_validation/models/tier_definition.py,sha256=rcDv7ySDKqBD1ksJ09um_4Reec_Im1MrdotivQ7Q_44,5173
19
+ odoo/addons/base_tier_validation/models/tier_review.py,sha256=ic6Rkh0PhliJ4gkWHmPJ84Ln2puGC1U5W5N2PCFlXw8,7267
19
20
  odoo/addons/base_tier_validation/models/tier_validation.py,sha256=66CUEME8O7yfLLyexzz9KCMVvK2M5i43J15Ljts_sbM,31180
20
21
  odoo/addons/base_tier_validation/models/tier_validation_exception.py,sha256=A0cgAMLVm9WcQlF93UXNruxjJ4tLVLMwyiRoalBOkaI,2877
21
22
  odoo/addons/base_tier_validation/readme/CONFIGURE.rst,sha256=ABgtWmfnm0QieIj7_ZsvoTHwjaKiZkBLCAjUXJeOnm4,1466
@@ -26,7 +27,7 @@ odoo/addons/base_tier_validation/readme/ROADMAP.rst,sha256=UWhIpMUTM_ido6s3jZiF8
26
27
  odoo/addons/base_tier_validation/security/ir.model.access.csv,sha256=vsKy73mk8r45jzU0fAt_vfM7-JSH7lIAA7JBr1P6FAY,633
27
28
  odoo/addons/base_tier_validation/security/tier_validation_security.xml,sha256=eWFwz-osHgYFmVoEVzOSboO9oqUMtQ8oygyaz0os50Y,806
28
29
  odoo/addons/base_tier_validation/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
29
- odoo/addons/base_tier_validation/static/description/index.html,sha256=iSyv-03F2l3wm7twgjP-uwPZkuikbUw9sGWVjQRaoIU,22175
30
+ odoo/addons/base_tier_validation/static/description/index.html,sha256=jtyz_01QflmYS1GoMfSuAamGTzGmtjk1TMqr0tmOMAM,22175
30
31
  odoo/addons/base_tier_validation/static/src/js/ir_model.esm.js,sha256=kHSA7CeIt02IZmsKJdn2yZVqKqSyQ6_g6QVmtq5Qo2A,706
31
32
  odoo/addons/base_tier_validation/static/src/js/main.esm.js,sha256=ZSHScoLlMQcO6jW9mLVusJOfyH5kJIw4szPK3xU-KHA,263
32
33
  odoo/addons/base_tier_validation/static/src/js/review_group_view.esm.js,sha256=G110cBwOwENHBUkuScOB8Xg05D0FzOqlsSl_US0PngA,1677
@@ -43,18 +44,19 @@ odoo/addons/base_tier_validation/static/src/xml/reviewer_menu_container.xml,sha2
43
44
  odoo/addons/base_tier_validation/static/src/xml/systray.xml,sha256=8W04E80UhUPQp6U9zvmDu1qqOXsDaDP8Q5YFw6Dgg7s,4987
44
45
  odoo/addons/base_tier_validation/static/src/xml/tier_review_template.xml,sha256=o72pPVkPiPmr2KWucaTJahR945MbD4gaYyi3KQn6AyI,6217
45
46
  odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=fuIyMgIwp_UWrlR75TeAKMrfiK-kd2lH8xshLkwWeRg,4191
46
- odoo/addons/base_tier_validation/tests/__init__.py,sha256=3z2_lQ9JiDSFDam4p24qDw5j02iaPb4m2naxv9DkbGA,122
47
- odoo/addons/base_tier_validation/tests/common.py,sha256=iJ5JFDbxPOuQdG15fPkp3WLg3181oFgVD9-ZM9pFnUk,3058
47
+ odoo/addons/base_tier_validation/tests/__init__.py,sha256=7tj1DSbPnyA__lAKxvjX53Ll_ZTE8y8Z1bewtZJoURI,166
48
+ odoo/addons/base_tier_validation/tests/common.py,sha256=sl4yBrOQzQW7nXJMeXIMYPp606NcOHeWGlZpElwQKrk,3080
48
49
  odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=u2p6FZuLYsx4Ol1quw6wresVtvxkbp87Nbof4qid_KA,38308
50
+ odoo/addons/base_tier_validation/tests/test_tier_validation_reminder.py,sha256=jsLU-7pJtbUvKPi7ddXU4jAwiJp32pKTrluarrtLKvU,1963
49
51
  odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=3usFbhfDhlKIWbVu--3qsbsm52B6RwTP4zy244dY1yk,1757
50
52
  odoo/addons/base_tier_validation/views/res_config_settings_views.xml,sha256=Al6XKCN1QGLPcgAaXTvEnSTYkwBrzDGfSRh3CQD4g5Q,4234
51
- odoo/addons/base_tier_validation/views/tier_definition_view.xml,sha256=8Tb0e1WiMsex_FVc2HZbZb0gCUFYML_a4qnx-IBLwTQ,7135
53
+ odoo/addons/base_tier_validation/views/tier_definition_view.xml,sha256=uQoI-IIQ92EgnqaVFp-IKheX_oh9s-1De5b2y23MxFU,7210
52
54
  odoo/addons/base_tier_validation/views/tier_review_view.xml,sha256=tPzmpz-kbQwOOtJrAcsTJEP9bJLcfzWAITCpI86kZU4,966
53
55
  odoo/addons/base_tier_validation/views/tier_validation_exception_view.xml,sha256=aDtHtZU_5eVIvSQgT8uhM26aKYC7Sp0KUBYwd1eM3KM,5219
54
56
  odoo/addons/base_tier_validation/wizard/__init__.py,sha256=52q6-LAjYeJ1Vu5ahon_jnhds9VsoJvYaQCiZc82WKw,95
55
57
  odoo/addons/base_tier_validation/wizard/comment_wizard.py,sha256=gj7zCcpe47-2ifxSRlE6okQ1wtq5Ok3JBVg2CtN0ZIU,879
56
58
  odoo/addons/base_tier_validation/wizard/comment_wizard_view.xml,sha256=9XFTqrNwDCZH2IEX3HutaznSkBYk-6RERXzUDwObz4I,979
57
- odoo_addon_base_tier_validation-16.0.2.1.0.3.dist-info/METADATA,sha256=yCYJtha8NUuoGooYqUVmECa5S0u1JQ-NizsyyMLvcKA,8508
58
- odoo_addon_base_tier_validation-16.0.2.1.0.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
59
- odoo_addon_base_tier_validation-16.0.2.1.0.3.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
60
- odoo_addon_base_tier_validation-16.0.2.1.0.3.dist-info/RECORD,,
59
+ odoo_addon_base_tier_validation-16.0.2.2.0.dist-info/METADATA,sha256=53oPpDPT55_QhwUEa1wzQlm5WlvqHzGCvagDWJtTWus,8506
60
+ odoo_addon_base_tier_validation-16.0.2.2.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
61
+ odoo_addon_base_tier_validation-16.0.2.2.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
62
+ odoo_addon_base_tier_validation-16.0.2.2.0.dist-info/RECORD,,