odoo-addon-base-tier-validation 18.0.1.0.0.9__py3-none-any.whl → 18.0.1.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.
@@ -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:7b3ca7f03e3d92d3cdaeb8de45ef9b88d126b246ba08f2f16d0b17f0121d1c11
10
+ !! source digest: sha256:4d84a194fa966bf189b8c9855d85734a26885b8a9c9379469d749217281a4686
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": "18.0.1.0.0",
6
+ "version": "18.0.1.0.2",
7
7
  "development_status": "Mature",
8
8
  "maintainers": ["LoisRForgeFlow"],
9
9
  "category": "Tools",
@@ -26,7 +26,11 @@ class TierReview(models.Model):
26
26
  default="waiting",
27
27
  )
28
28
  model = fields.Char(string="Related Document Model", index=True)
29
- res_id = fields.Integer(string="Related Document ID", index=True)
29
+ res_id = fields.Many2oneReference(
30
+ string="Related Document ID",
31
+ index=True,
32
+ model_field="model",
33
+ )
30
34
  definition_id = fields.Many2one(comodel_name="tier.definition")
31
35
  company_id = fields.Many2one(
32
36
  related="definition_id.company_id",
@@ -729,8 +729,9 @@ class TierValidation(models.AbstractModel):
729
729
  if rec.evaluate_tier(td):
730
730
  sequence += 1
731
731
  vals_list.append(rec._prepare_tier_review_vals(td, sequence))
732
- self._update_counter({"review_created": True})
733
732
  created_trs = tr_obj.create(vals_list)
733
+ if any(self.mapped("can_review")):
734
+ self._update_counter({"review_created": True})
734
735
  self._notify_review_requested(created_trs)
735
736
  return created_trs
736
737
 
@@ -765,8 +766,9 @@ class TierValidation(models.AbstractModel):
765
766
  .mapped("partner_id")
766
767
  .ids
767
768
  )
769
+ can_review = rec.can_review
768
770
  rec.mapped("review_ids").unlink()
769
- if to_update_counter:
771
+ if to_update_counter and can_review:
770
772
  self._update_counter({"review_deleted": True})
771
773
  if partners_to_notify_ids:
772
774
  subscribe = "message_subscribe"
@@ -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:7b3ca7f03e3d92d3cdaeb8de45ef9b88d126b246ba08f2f16d0b17f0121d1c11
370
+ !! source digest: sha256:4d84a194fa966bf189b8c9855d85734a26885b8a9c9379469d749217281a4686
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/18.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-18-0/server-ux-18-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=18.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
@@ -47,7 +47,7 @@
47
47
  <t
48
48
  t-foreach="_getReviewData()"
49
49
  t-as="review"
50
- t-key="review.id"
50
+ t-key="review.sequence"
51
51
  >
52
52
  <t
53
53
  t-if="review.status == 'waiting'"
@@ -131,11 +131,8 @@ class TierTierValidation(CommonTierValidation):
131
131
  )
132
132
  # Request validation
133
133
  self.test_record.with_user(self.test_user_2.id).request_validation()
134
- self.test_record.invalidate_model()
135
134
  test_record.with_user(self.test_user_2.id).request_validation()
136
- test_record.invalidate_model()
137
135
  self.test_record_2.with_user(self.test_user_2.id).request_validation()
138
- self.test_record_2.invalidate_model()
139
136
  # Get review user count as systray icon would do and check count value
140
137
  docs = self.test_user_1.with_user(self.test_user_1).review_user_count()
141
138
  for doc in docs:
@@ -295,14 +292,14 @@ class TierTierValidation(CommonTierValidation):
295
292
  self.assertTrue(reviews)
296
293
 
297
294
  record1 = test_record.with_user(self.test_user_1.id)
298
- record1.invalidate_model()
299
295
  self.assertTrue(record1.can_review)
300
296
  # Validation will be all by sequence
297
+ self.assertEqual(len(record1.review_ids), 2)
301
298
  self.assertEqual(
302
- 2, len(record1.review_ids.filtered(lambda x: x.status == "waiting"))
299
+ 1, len(record1.review_ids.filtered(lambda x: x.status == "waiting"))
303
300
  )
304
301
  self.assertEqual(
305
- 0, len(record1.review_ids.filtered(lambda x: x.status == "pending"))
302
+ 1, len(record1.review_ids.filtered(lambda x: x.status == "pending"))
306
303
  )
307
304
  record1.validate_tier()
308
305
  self.assertEqual(
@@ -311,14 +308,29 @@ class TierTierValidation(CommonTierValidation):
311
308
  self.assertEqual(
312
309
  1, len(record1.review_ids.filtered(lambda x: x.status == "pending"))
313
310
  )
311
+ self.assertEqual(
312
+ 1, len(record1.review_ids.filtered(lambda x: x.status == "approved"))
313
+ )
314
314
  record1.validate_tier()
315
315
  self.assertEqual(
316
316
  0, len(record1.review_ids.filtered(lambda x: x.status == "waiting"))
317
317
  )
318
+ self.assertEqual(
319
+ 0, len(record1.review_ids.filtered(lambda x: x.status == "pending"))
320
+ )
321
+ self.assertEqual(
322
+ 2, len(record1.review_ids.filtered(lambda x: x.status == "approved"))
323
+ )
318
324
  record1.validate_tier()
325
+ self.assertEqual(
326
+ 0, len(record1.review_ids.filtered(lambda x: x.status == "waiting"))
327
+ )
319
328
  self.assertEqual(
320
329
  0, len(record1.review_ids.filtered(lambda x: x.status == "pending"))
321
330
  )
331
+ self.assertEqual(
332
+ 2, len(record1.review_ids.filtered(lambda x: x.status == "approved"))
333
+ )
322
334
 
323
335
  def test_12_approve_sequence_same_user_bypassed(self):
324
336
  """Similar to test_12_approve_sequence, with all same users,
@@ -354,14 +366,14 @@ class TierTierValidation(CommonTierValidation):
354
366
  self.assertTrue(reviews)
355
367
 
356
368
  record1 = test_record.with_user(self.test_user_1.id)
357
- record1.invalidate_model()
358
369
  self.assertTrue(record1.can_review)
359
370
  # When the first tier is validated, all the rest will be approved.
371
+ self.assertEqual(len(record1.review_ids), 2)
360
372
  self.assertEqual(
361
- 2, len(record1.review_ids.filtered(lambda x: x.status == "waiting"))
373
+ 1, len(record1.review_ids.filtered(lambda x: x.status == "waiting"))
362
374
  )
363
375
  self.assertEqual(
364
- 0, len(record1.review_ids.filtered(lambda x: x.status == "pending"))
376
+ 1, len(record1.review_ids.filtered(lambda x: x.status == "pending"))
365
377
  )
366
378
  record1.validate_tier()
367
379
  self.assertEqual(
@@ -370,6 +382,9 @@ class TierTierValidation(CommonTierValidation):
370
382
  self.assertEqual(
371
383
  0, len(record1.review_ids.filtered(lambda x: x.status == "waiting"))
372
384
  )
385
+ self.assertEqual(
386
+ 2, len(record1.review_ids.filtered(lambda x: x.status == "approved"))
387
+ )
373
388
 
374
389
  def test_13_onchange_review_type(self):
375
390
  tier_def_id = self.tier_def_obj.create(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-base_tier_validation
3
- Version: 18.0.1.0.0.9
3
+ Version: 18.0.1.0.2
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: odoo==18.0.*
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:7b3ca7f03e3d92d3cdaeb8de45ef9b88d126b246ba08f2f16d0b17f0121d1c11
26
+ !! source digest: sha256:4d84a194fa966bf189b8c9855d85734a26885b8a9c9379469d749217281a4686
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=ph3HT-A3Lnfsdinm61_0Jg5Yv9U-GUPjong_u-syYYQ,9088
1
+ odoo/addons/base_tier_validation/README.rst,sha256=qkx4tyVi_58vxE4JzGFar0yOwd70GxA_XMIKD5Ib4kU,9088
2
2
  odoo/addons/base_tier_validation/__init__.py,sha256=rKfzYX9RhkkCxgh2f0PJLYN45Kw8T8-fwxw1pbjLuug,108
3
- odoo/addons/base_tier_validation/__manifest__.py,sha256=MxW0ttuwNSEfmCqfQ69ZsyoQrnZxrQlL_vPBWcWdwek,1201
3
+ odoo/addons/base_tier_validation/__manifest__.py,sha256=iymnke9SBIZhadXgmXX0NQ0LfhnfLF0U17T9hSOdA4s,1201
4
4
  odoo/addons/base_tier_validation/data/cron_data.xml,sha256=7lNJCyjZPSvpXiccQLG-z5pSGui90Ox0hsjQA56_l4g,619
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=oY389tAzqrkQz9RU06DmbNiowyICmI1a5bVx1ZlojVs,31930
@@ -17,8 +17,8 @@ odoo/addons/base_tier_validation/models/__init__.py,sha256=X8c8CFM5eOXyIErFr7xsa
17
17
  odoo/addons/base_tier_validation/models/res_config_settings.py,sha256=xMdQiCfU5p7Z5puKcSRvJihLpI9ulyVFUd_QJjAOuwc,619
18
18
  odoo/addons/base_tier_validation/models/res_users.py,sha256=V65OZZ-ktYFs5Vm5oxlbhTia09rdrtbWGQF9JnQzbBA,2183
19
19
  odoo/addons/base_tier_validation/models/tier_definition.py,sha256=r1aCQJBDKYxoamgLuWVxCZHRx39CzcnuVPnQYHMGXnA,5901
20
- odoo/addons/base_tier_validation/models/tier_review.py,sha256=V-ywnymdx6oqFTvNbhyC4y5GgiO7Z-ZqGPgX_kD8uds,8230
21
- odoo/addons/base_tier_validation/models/tier_validation.py,sha256=DsvdqW8mLhCg3CEd4sE7C8ywKt0rSWYfzpg0du1I4Vs,35706
20
+ odoo/addons/base_tier_validation/models/tier_review.py,sha256=b1z-Nx7yUqhGul8eHQetHQPlqix-7roSEYfzDdATJ-Q,8292
21
+ odoo/addons/base_tier_validation/models/tier_validation.py,sha256=iPsGTv35ThvFRcW-8M8ywvSd_0XUXauVTDWrCqlG0WQ,35804
22
22
  odoo/addons/base_tier_validation/models/tier_validation_exception.py,sha256=8AuFyX9wDyux5puLNQZd6QuvUuqZKZmha11c11uZuS8,3021
23
23
  odoo/addons/base_tier_validation/readme/CONFIGURE.md,sha256=MuyVCH75T0_3Rtrkl7RUg7XzxjoU7zUkbPWv84_a-XU,1709
24
24
  odoo/addons/base_tier_validation/readme/CONTRIBUTORS.md,sha256=qLNyJqdNmLTkT9MAMGyL0ULd3vtTCrJFDXWehyJOXXo,738
@@ -30,17 +30,17 @@ odoo/addons/base_tier_validation/security/ir.model.access.csv,sha256=_NMShHIoKCQ
30
30
  odoo/addons/base_tier_validation/security/tier_validation_security.xml,sha256=FA3lm5R4sEKrpEJmmqM9N3bRYuOUeYqhfmdXHMRF-Uo,724
31
31
  odoo/addons/base_tier_validation/static/description/icon.png,sha256=ocMS0YO1xbJs6kkXqCuw71UnsCa_4d1U5cMvzcKSH2U,4993
32
32
  odoo/addons/base_tier_validation/static/description/icon.svg,sha256=SBeR3DJDE_jBR3Z92Yn3r7WPOkpsRlOd61t1Tuk7M_A,2684
33
- odoo/addons/base_tier_validation/static/description/index.html,sha256=It4rFIVfEEqGBg94thFd36Yzfl8x2UOmzavJZfbqLQw,24298
33
+ odoo/addons/base_tier_validation/static/description/index.html,sha256=U5oUqm8pXIX4GcmCi2XB5BhwXy05obIPURnFu0UfowY,24298
34
34
  odoo/addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.esm.js,sha256=LZhT9W17yecXeX7U6iwcwB4Ns_inM0kd91jl5hG2tBI,2162
35
35
  odoo/addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml,sha256=Xkal2szcRU1QYAwNSB6-QFRbKs7aP66kBGdCidhri8I,3151
36
36
  odoo/addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.esm.js,sha256=30ncVXFkj-5ws0gBWJGADabzf_SNHC5xnhjnVaSEZWk,1211
37
37
  odoo/addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.scss,sha256=yhDdc0b133_Q0QWFmbvJOBUasZiqVzQ_pQ27EZZGAIU,685
38
- odoo/addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml,sha256=s2BHPjurYpCXglem4dZCWvZmoqUGdQO9ON97SCmuVYw,6016
38
+ odoo/addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml,sha256=9j00tnqWy9kBx5HfT4SmKN1j841m4n5Up_hIje6C4fY,6022
39
39
  odoo/addons/base_tier_validation/static/src/js/services/tier_review_service.esm.js,sha256=rEhap9yid30t8zGAfhauNautXYoSxuTff1vvEcvpaVs,983
40
40
  odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=jk7sOuu7Z_AJYLD1rwYBIrYK0Qlh66guQGoE0fEiqpo,3230
41
41
  odoo/addons/base_tier_validation/tests/__init__.py,sha256=7tj1DSbPnyA__lAKxvjX53Ll_ZTE8y8Z1bewtZJoURI,166
42
42
  odoo/addons/base_tier_validation/tests/common.py,sha256=qC5dIEkY_Q1J6maro234cK9-lTBqO_E0J0_8d2_mQhg,5823
43
- odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=I8hVKYLcaiVGY7XKRI-rQ3wNsB1yR1VGqEdNWgaYSwk,42670
43
+ odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=WVZNMIGu2Rh0EjwuVUVuoLXBUgjy2yzqEK2OhR4J8zM,43283
44
44
  odoo/addons/base_tier_validation/tests/test_tier_validation_reminder.py,sha256=jsLU-7pJtbUvKPi7ddXU4jAwiJp32pKTrluarrtLKvU,1963
45
45
  odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=m25QbB9-9Goxx1Fiz0qwsVO3WPL6jrtMlGDW6VQbLik,3345
46
46
  odoo/addons/base_tier_validation/views/res_config_settings_views.xml,sha256=5HbrsAVaXRoQNX7utIQ_EzZrqzKnwBrV9uHsi-PHb9M,2640
@@ -50,7 +50,7 @@ odoo/addons/base_tier_validation/views/tier_validation_exception_view.xml,sha256
50
50
  odoo/addons/base_tier_validation/wizard/__init__.py,sha256=52q6-LAjYeJ1Vu5ahon_jnhds9VsoJvYaQCiZc82WKw,95
51
51
  odoo/addons/base_tier_validation/wizard/comment_wizard.py,sha256=gj7zCcpe47-2ifxSRlE6okQ1wtq5Ok3JBVg2CtN0ZIU,879
52
52
  odoo/addons/base_tier_validation/wizard/comment_wizard_view.xml,sha256=9XFTqrNwDCZH2IEX3HutaznSkBYk-6RERXzUDwObz4I,979
53
- odoo_addon_base_tier_validation-18.0.1.0.0.9.dist-info/METADATA,sha256=6_paZtZnhgylA3h16TUTSWGzChjoZCSpColixHukYNo,9664
54
- odoo_addon_base_tier_validation-18.0.1.0.0.9.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
55
- odoo_addon_base_tier_validation-18.0.1.0.0.9.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
56
- odoo_addon_base_tier_validation-18.0.1.0.0.9.dist-info/RECORD,,
53
+ odoo_addon_base_tier_validation-18.0.1.0.2.dist-info/METADATA,sha256=qJpqZo3JMZpeZD0zhurxDltOgSHweVwBVgO2YuqM24I,9662
54
+ odoo_addon_base_tier_validation-18.0.1.0.2.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
55
+ odoo_addon_base_tier_validation-18.0.1.0.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
56
+ odoo_addon_base_tier_validation-18.0.1.0.2.dist-info/RECORD,,