odoo-addon-base-tier-validation 16.0.1.4.1.19__py3-none-any.whl → 16.0.1.4.2.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.
Files changed (21) hide show
  1. odoo/addons/base_tier_validation/README.rst +2 -1
  2. odoo/addons/base_tier_validation/__manifest__.py +1 -1
  3. odoo/addons/base_tier_validation/i18n/base_tier_validation.pot +37 -1
  4. odoo/addons/base_tier_validation/i18n/es.po +37 -1
  5. odoo/addons/base_tier_validation/i18n/es_MX.po +37 -1
  6. odoo/addons/base_tier_validation/i18n/fr.po +37 -1
  7. odoo/addons/base_tier_validation/i18n/it.po +37 -1
  8. odoo/addons/base_tier_validation/i18n/nl_NL.po +37 -1
  9. odoo/addons/base_tier_validation/i18n/sv.po +37 -1
  10. odoo/addons/base_tier_validation/i18n/tr.po +37 -1
  11. odoo/addons/base_tier_validation/i18n/zh_CN.po +37 -1
  12. odoo/addons/base_tier_validation/models/tier_definition.py +15 -0
  13. odoo/addons/base_tier_validation/models/tier_validation.py +47 -7
  14. odoo/addons/base_tier_validation/readme/CONTRIBUTORS.rst +1 -0
  15. odoo/addons/base_tier_validation/static/description/index.html +2 -1
  16. odoo/addons/base_tier_validation/tests/test_tier_validation.py +370 -0
  17. odoo/addons/base_tier_validation/views/tier_definition_view.xml +3 -0
  18. {odoo_addon_base_tier_validation-16.0.1.4.1.19.dist-info → odoo_addon_base_tier_validation-16.0.1.4.2.1.dist-info}/METADATA +3 -2
  19. {odoo_addon_base_tier_validation-16.0.1.4.1.19.dist-info → odoo_addon_base_tier_validation-16.0.1.4.2.1.dist-info}/RECORD +21 -21
  20. {odoo_addon_base_tier_validation-16.0.1.4.1.19.dist-info → odoo_addon_base_tier_validation-16.0.1.4.2.1.dist-info}/WHEEL +0 -0
  21. {odoo_addon_base_tier_validation-16.0.1.4.1.19.dist-info → odoo_addon_base_tier_validation-16.0.1.4.2.1.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:a077c98cf1ff92fbf3aee9e4e3b630f4759f5edb3358250b5ba5d361e880fdcf
10
+ !! source digest: sha256:81e217e874bdd41d3f7698778b4e6b504838558871697dc2fb34e6f288327bad
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
@@ -210,6 +210,7 @@ Contributors
210
210
  * Kitti U. <kittiu@ecosoft.co.th>
211
211
  * Saran Lim. <saranl@ecosoft.co.th>
212
212
  * Evan Soh <evan.soh@omnisoftsolution.com>
213
+ * Manuel Regidor <manuel.regidor@sygel.es>
213
214
 
214
215
  Maintainers
215
216
  ~~~~~~~~~~~
@@ -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.1.4.1",
6
+ "version": "16.0.1.4.2",
7
7
  "development_status": "Mature",
8
8
  "maintainers": ["LoisRForgeFlow"],
9
9
  "category": "Tools",
@@ -179,8 +179,8 @@ msgid "Cancel"
179
179
  msgstr ""
180
180
 
181
181
  #. module: base_tier_validation
182
- #. odoo-python
183
182
  #. odoo-javascript
183
+ #. odoo-python
184
184
  #: code:addons/base_tier_validation/models/tier_validation.py:0
185
185
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
186
186
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -306,6 +306,27 @@ msgid ""
306
306
  "definition is triggered."
307
307
  msgstr ""
308
308
 
309
+ #. module: base_tier_validation
310
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
311
+ msgid ""
312
+ "If set, reviewers will be notified by email when a review related to this "
313
+ "definition is accepted."
314
+ msgstr ""
315
+
316
+ #. module: base_tier_validation
317
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
318
+ msgid ""
319
+ "If set, reviewers will be notified by email when a review related to this "
320
+ "definition is rejected."
321
+ msgstr ""
322
+
323
+ #. module: base_tier_validation
324
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
325
+ msgid ""
326
+ "If set, reviewers will be notified by email when a reviews related to this "
327
+ "definition are restarted."
328
+ msgstr ""
329
+
309
330
  #. module: base_tier_validation
310
331
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
311
332
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -369,11 +390,26 @@ msgstr ""
369
390
  msgid "No reviews to do."
370
391
  msgstr ""
371
392
 
393
+ #. module: base_tier_validation
394
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
395
+ msgid "Notify Reviewers on Accepted"
396
+ msgstr ""
397
+
372
398
  #. module: base_tier_validation
373
399
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
374
400
  msgid "Notify Reviewers on Creation"
375
401
  msgstr ""
376
402
 
403
+ #. module: base_tier_validation
404
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
405
+ msgid "Notify Reviewers on Rejected"
406
+ msgstr ""
407
+
408
+ #. module: base_tier_validation
409
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
410
+ msgid "Notify Reviewers on Restarted"
411
+ msgstr ""
412
+
377
413
  #. module: base_tier_validation
378
414
  #. odoo-python
379
415
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -197,8 +197,8 @@ msgid "Cancel"
197
197
  msgstr "Cancelar"
198
198
 
199
199
  #. module: base_tier_validation
200
- #. odoo-python
201
200
  #. odoo-javascript
201
+ #. odoo-python
202
202
  #: code:addons/base_tier_validation/models/tier_validation.py:0
203
203
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
204
204
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -326,6 +326,27 @@ msgstr ""
326
326
  "Si se establece, todos los posibles revisores serán notificados por correo "
327
327
  "electrónico cuando se active esta definición."
328
328
 
329
+ #. module: base_tier_validation
330
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
331
+ msgid ""
332
+ "If set, reviewers will be notified by email when a review related to this "
333
+ "definition is accepted."
334
+ msgstr ""
335
+
336
+ #. module: base_tier_validation
337
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
338
+ msgid ""
339
+ "If set, reviewers will be notified by email when a review related to this "
340
+ "definition is rejected."
341
+ msgstr ""
342
+
343
+ #. module: base_tier_validation
344
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
345
+ msgid ""
346
+ "If set, reviewers will be notified by email when a reviews related to this "
347
+ "definition are restarted."
348
+ msgstr ""
349
+
329
350
  #. module: base_tier_validation
330
351
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
331
352
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -389,11 +410,26 @@ msgstr "Siguiente: %s"
389
410
  msgid "No reviews to do."
390
411
  msgstr "No hay revisiones a realizar."
391
412
 
413
+ #. module: base_tier_validation
414
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
415
+ msgid "Notify Reviewers on Accepted"
416
+ msgstr ""
417
+
392
418
  #. module: base_tier_validation
393
419
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
394
420
  msgid "Notify Reviewers on Creation"
395
421
  msgstr "Notificar a los revisores en la creación"
396
422
 
423
+ #. module: base_tier_validation
424
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
425
+ msgid "Notify Reviewers on Rejected"
426
+ msgstr ""
427
+
428
+ #. module: base_tier_validation
429
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
430
+ msgid "Notify Reviewers on Restarted"
431
+ msgstr ""
432
+
397
433
  #. module: base_tier_validation
398
434
  #. odoo-python
399
435
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -196,8 +196,8 @@ msgid "Cancel"
196
196
  msgstr "Cancelado"
197
197
 
198
198
  #. module: base_tier_validation
199
- #. odoo-python
200
199
  #. odoo-javascript
200
+ #. odoo-python
201
201
  #: code:addons/base_tier_validation/models/tier_validation.py:0
202
202
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
203
203
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -325,6 +325,27 @@ msgstr ""
325
325
  "Si se establece, todos los posibles revisores serán notificados por correo "
326
326
  "electrónico cuando se active esta definición."
327
327
 
328
+ #. module: base_tier_validation
329
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
330
+ msgid ""
331
+ "If set, reviewers will be notified by email when a review related to this "
332
+ "definition is accepted."
333
+ msgstr ""
334
+
335
+ #. module: base_tier_validation
336
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
337
+ msgid ""
338
+ "If set, reviewers will be notified by email when a review related to this "
339
+ "definition is rejected."
340
+ msgstr ""
341
+
342
+ #. module: base_tier_validation
343
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
344
+ msgid ""
345
+ "If set, reviewers will be notified by email when a reviews related to this "
346
+ "definition are restarted."
347
+ msgstr ""
348
+
328
349
  #. module: base_tier_validation
329
350
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
330
351
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -388,11 +409,26 @@ msgstr ""
388
409
  msgid "No reviews to do."
389
410
  msgstr "No hay revisiones que hacer."
390
411
 
412
+ #. module: base_tier_validation
413
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
414
+ msgid "Notify Reviewers on Accepted"
415
+ msgstr ""
416
+
391
417
  #. module: base_tier_validation
392
418
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
393
419
  msgid "Notify Reviewers on Creation"
394
420
  msgstr "Notificar a los revisores sobre la creación"
395
421
 
422
+ #. module: base_tier_validation
423
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
424
+ msgid "Notify Reviewers on Rejected"
425
+ msgstr ""
426
+
427
+ #. module: base_tier_validation
428
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
429
+ msgid "Notify Reviewers on Restarted"
430
+ msgstr ""
431
+
396
432
  #. module: base_tier_validation
397
433
  #. odoo-python
398
434
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -197,8 +197,8 @@ msgid "Cancel"
197
197
  msgstr "Annuler"
198
198
 
199
199
  #. module: base_tier_validation
200
- #. odoo-python
201
200
  #. odoo-javascript
201
+ #. odoo-python
202
202
  #: code:addons/base_tier_validation/models/tier_validation.py:0
203
203
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
204
204
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -326,6 +326,27 @@ msgstr ""
326
326
  "Avec cette option, tous les réviseurs autorisés seront notifiés par email "
327
327
  "lors du déclenchement de cette définition."
328
328
 
329
+ #. module: base_tier_validation
330
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
331
+ msgid ""
332
+ "If set, reviewers will be notified by email when a review related to this "
333
+ "definition is accepted."
334
+ msgstr ""
335
+
336
+ #. module: base_tier_validation
337
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
338
+ msgid ""
339
+ "If set, reviewers will be notified by email when a review related to this "
340
+ "definition is rejected."
341
+ msgstr ""
342
+
343
+ #. module: base_tier_validation
344
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
345
+ msgid ""
346
+ "If set, reviewers will be notified by email when a reviews related to this "
347
+ "definition are restarted."
348
+ msgstr ""
349
+
329
350
  #. module: base_tier_validation
330
351
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
331
352
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -389,11 +410,26 @@ msgstr "Suivante : %s"
389
410
  msgid "No reviews to do."
390
411
  msgstr "Aucune revue n'est nécessaire."
391
412
 
413
+ #. module: base_tier_validation
414
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
415
+ msgid "Notify Reviewers on Accepted"
416
+ msgstr ""
417
+
392
418
  #. module: base_tier_validation
393
419
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
394
420
  msgid "Notify Reviewers on Creation"
395
421
  msgstr "Notifier les réviseurs à la création"
396
422
 
423
+ #. module: base_tier_validation
424
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
425
+ msgid "Notify Reviewers on Rejected"
426
+ msgstr ""
427
+
428
+ #. module: base_tier_validation
429
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
430
+ msgid "Notify Reviewers on Restarted"
431
+ msgstr ""
432
+
397
433
  #. module: base_tier_validation
398
434
  #. odoo-python
399
435
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -199,8 +199,8 @@ msgid "Cancel"
199
199
  msgstr "Annulla"
200
200
 
201
201
  #. module: base_tier_validation
202
- #. odoo-python
203
202
  #. odoo-javascript
203
+ #. odoo-python
204
204
  #: code:addons/base_tier_validation/models/tier_validation.py:0
205
205
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
206
206
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -328,6 +328,27 @@ msgstr ""
328
328
  "Se impostata, tutti i possibili revisori saranno avvisati via e-mail quando "
329
329
  "la definizione è attivata."
330
330
 
331
+ #. module: base_tier_validation
332
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
333
+ msgid ""
334
+ "If set, reviewers will be notified by email when a review related to this "
335
+ "definition is accepted."
336
+ msgstr ""
337
+
338
+ #. module: base_tier_validation
339
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
340
+ msgid ""
341
+ "If set, reviewers will be notified by email when a review related to this "
342
+ "definition is rejected."
343
+ msgstr ""
344
+
345
+ #. module: base_tier_validation
346
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
347
+ msgid ""
348
+ "If set, reviewers will be notified by email when a reviews related to this "
349
+ "definition are restarted."
350
+ msgstr ""
351
+
331
352
  #. module: base_tier_validation
332
353
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
333
354
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -391,11 +412,26 @@ msgstr "Prossimo: %s"
391
412
  msgid "No reviews to do."
392
413
  msgstr "Nessuna approvazione da fare."
393
414
 
415
+ #. module: base_tier_validation
416
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
417
+ msgid "Notify Reviewers on Accepted"
418
+ msgstr ""
419
+
394
420
  #. module: base_tier_validation
395
421
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
396
422
  msgid "Notify Reviewers on Creation"
397
423
  msgstr "Notifica Approvatori su Creazione"
398
424
 
425
+ #. module: base_tier_validation
426
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
427
+ msgid "Notify Reviewers on Rejected"
428
+ msgstr ""
429
+
430
+ #. module: base_tier_validation
431
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
432
+ msgid "Notify Reviewers on Restarted"
433
+ msgstr ""
434
+
399
435
  #. module: base_tier_validation
400
436
  #. odoo-python
401
437
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -199,8 +199,8 @@ msgid "Cancel"
199
199
  msgstr "Annuleer"
200
200
 
201
201
  #. module: base_tier_validation
202
- #. odoo-python
203
202
  #. odoo-javascript
203
+ #. odoo-python
204
204
  #: code:addons/base_tier_validation/models/tier_validation.py:0
205
205
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
206
206
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -329,6 +329,27 @@ msgstr ""
329
329
  "Indien ingesteld, worden alle mogelijke reviewers per e-mail op de hoogte "
330
330
  "gebracht wanneer deze definitie wordt geactiveerd."
331
331
 
332
+ #. module: base_tier_validation
333
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
334
+ msgid ""
335
+ "If set, reviewers will be notified by email when a review related to this "
336
+ "definition is accepted."
337
+ msgstr ""
338
+
339
+ #. module: base_tier_validation
340
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
341
+ msgid ""
342
+ "If set, reviewers will be notified by email when a review related to this "
343
+ "definition is rejected."
344
+ msgstr ""
345
+
346
+ #. module: base_tier_validation
347
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
348
+ msgid ""
349
+ "If set, reviewers will be notified by email when a reviews related to this "
350
+ "definition are restarted."
351
+ msgstr ""
352
+
332
353
  #. module: base_tier_validation
333
354
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
334
355
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -392,11 +413,26 @@ msgstr "Volgende: %s"
392
413
  msgid "No reviews to do."
393
414
  msgstr "Geen beoordelingen te doen."
394
415
 
416
+ #. module: base_tier_validation
417
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
418
+ msgid "Notify Reviewers on Accepted"
419
+ msgstr ""
420
+
395
421
  #. module: base_tier_validation
396
422
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
397
423
  msgid "Notify Reviewers on Creation"
398
424
  msgstr "Informeer beoordelaar bij het maken"
399
425
 
426
+ #. module: base_tier_validation
427
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
428
+ msgid "Notify Reviewers on Rejected"
429
+ msgstr ""
430
+
431
+ #. module: base_tier_validation
432
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
433
+ msgid "Notify Reviewers on Restarted"
434
+ msgstr ""
435
+
400
436
  #. module: base_tier_validation
401
437
  #. odoo-python
402
438
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -198,8 +198,8 @@ msgid "Cancel"
198
198
  msgstr "Avbryt"
199
199
 
200
200
  #. module: base_tier_validation
201
- #. odoo-python
202
201
  #. odoo-javascript
202
+ #. odoo-python
203
203
  #: code:addons/base_tier_validation/models/tier_validation.py:0
204
204
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
205
205
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -327,6 +327,27 @@ msgstr ""
327
327
  "Om den är inställd kommer alla möjliga attesterare att meddelas via e-post "
328
328
  "när denna definition aktiveras."
329
329
 
330
+ #. module: base_tier_validation
331
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
332
+ msgid ""
333
+ "If set, reviewers will be notified by email when a review related to this "
334
+ "definition is accepted."
335
+ msgstr ""
336
+
337
+ #. module: base_tier_validation
338
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
339
+ msgid ""
340
+ "If set, reviewers will be notified by email when a review related to this "
341
+ "definition is rejected."
342
+ msgstr ""
343
+
344
+ #. module: base_tier_validation
345
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
346
+ msgid ""
347
+ "If set, reviewers will be notified by email when a reviews related to this "
348
+ "definition are restarted."
349
+ msgstr ""
350
+
330
351
  #. module: base_tier_validation
331
352
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
332
353
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -390,11 +411,26 @@ msgstr "Nästa: %s"
390
411
  msgid "No reviews to do."
391
412
  msgstr "Inga attester att göra."
392
413
 
414
+ #. module: base_tier_validation
415
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
416
+ msgid "Notify Reviewers on Accepted"
417
+ msgstr ""
418
+
393
419
  #. module: base_tier_validation
394
420
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
395
421
  msgid "Notify Reviewers on Creation"
396
422
  msgstr "Meddela granskare vid skapande"
397
423
 
424
+ #. module: base_tier_validation
425
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
426
+ msgid "Notify Reviewers on Rejected"
427
+ msgstr ""
428
+
429
+ #. module: base_tier_validation
430
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
431
+ msgid "Notify Reviewers on Restarted"
432
+ msgstr ""
433
+
398
434
  #. module: base_tier_validation
399
435
  #. odoo-python
400
436
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -195,8 +195,8 @@ msgid "Cancel"
195
195
  msgstr "İptal"
196
196
 
197
197
  #. module: base_tier_validation
198
- #. odoo-python
199
198
  #. odoo-javascript
199
+ #. odoo-python
200
200
  #: code:addons/base_tier_validation/models/tier_validation.py:0
201
201
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
202
202
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -324,6 +324,27 @@ msgstr ""
324
324
  "Ayarlanırsa, bu tanım tetiklendiğinde tüm olası gözden geçirenler e-posta "
325
325
  "ile bilgilendirilecektir."
326
326
 
327
+ #. module: base_tier_validation
328
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
329
+ msgid ""
330
+ "If set, reviewers will be notified by email when a review related to this "
331
+ "definition is accepted."
332
+ msgstr ""
333
+
334
+ #. module: base_tier_validation
335
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
336
+ msgid ""
337
+ "If set, reviewers will be notified by email when a review related to this "
338
+ "definition is rejected."
339
+ msgstr ""
340
+
341
+ #. module: base_tier_validation
342
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
343
+ msgid ""
344
+ "If set, reviewers will be notified by email when a reviews related to this "
345
+ "definition are restarted."
346
+ msgstr ""
347
+
327
348
  #. module: base_tier_validation
328
349
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
329
350
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -387,11 +408,26 @@ msgstr "Sonraki: %s"
387
408
  msgid "No reviews to do."
388
409
  msgstr "Yapacak inceleme yok."
389
410
 
411
+ #. module: base_tier_validation
412
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
413
+ msgid "Notify Reviewers on Accepted"
414
+ msgstr ""
415
+
390
416
  #. module: base_tier_validation
391
417
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
392
418
  msgid "Notify Reviewers on Creation"
393
419
  msgstr "İncelemeleri Oluşturma Hakkında Bilgilendir"
394
420
 
421
+ #. module: base_tier_validation
422
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
423
+ msgid "Notify Reviewers on Rejected"
424
+ msgstr ""
425
+
426
+ #. module: base_tier_validation
427
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
428
+ msgid "Notify Reviewers on Restarted"
429
+ msgstr ""
430
+
395
431
  #. module: base_tier_validation
396
432
  #. odoo-python
397
433
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -182,8 +182,8 @@ msgid "Cancel"
182
182
  msgstr "取消"
183
183
 
184
184
  #. module: base_tier_validation
185
- #. odoo-python
186
185
  #. odoo-javascript
186
+ #. odoo-python
187
187
  #: code:addons/base_tier_validation/models/tier_validation.py:0
188
188
  #: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
189
189
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
@@ -309,6 +309,27 @@ msgid ""
309
309
  "definition is triggered."
310
310
  msgstr "如果设置,则触发此定义规则时将通过电子邮件通知所有的审批人。"
311
311
 
312
+ #. module: base_tier_validation
313
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
314
+ msgid ""
315
+ "If set, reviewers will be notified by email when a review related to this "
316
+ "definition is accepted."
317
+ msgstr ""
318
+
319
+ #. module: base_tier_validation
320
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
321
+ msgid ""
322
+ "If set, reviewers will be notified by email when a review related to this "
323
+ "definition is rejected."
324
+ msgstr ""
325
+
326
+ #. module: base_tier_validation
327
+ #: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
328
+ msgid ""
329
+ "If set, reviewers will be notified by email when a reviews related to this "
330
+ "definition are restarted."
331
+ msgstr ""
332
+
312
333
  #. module: base_tier_validation
313
334
  #: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
314
335
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
@@ -372,11 +393,26 @@ msgstr ""
372
393
  msgid "No reviews to do."
373
394
  msgstr "没有待审批的项目。"
374
395
 
396
+ #. module: base_tier_validation
397
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
398
+ msgid "Notify Reviewers on Accepted"
399
+ msgstr ""
400
+
375
401
  #. module: base_tier_validation
376
402
  #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
377
403
  msgid "Notify Reviewers on Creation"
378
404
  msgstr "创建时通知审批人"
379
405
 
406
+ #. module: base_tier_validation
407
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
408
+ msgid "Notify Reviewers on Rejected"
409
+ msgstr ""
410
+
411
+ #. module: base_tier_validation
412
+ #: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
413
+ msgid "Notify Reviewers on Restarted"
414
+ msgstr ""
415
+
380
416
  #. module: base_tier_validation
381
417
  #. odoo-python
382
418
  #: code:addons/base_tier_validation/models/tier_validation.py:0
@@ -67,6 +67,21 @@ class TierDefinition(models.Model):
67
67
  help="If set, all possible reviewers will be notified by email when "
68
68
  "this definition is triggered.",
69
69
  )
70
+ notify_on_accepted = fields.Boolean(
71
+ string="Notify Reviewers on Accepted",
72
+ help="If set, reviewers will be notified by email when a review related "
73
+ "to this definition is accepted.",
74
+ )
75
+ notify_on_rejected = fields.Boolean(
76
+ string="Notify Reviewers on Rejected",
77
+ help="If set, reviewers will be notified by email when a review related "
78
+ "to this definition is rejected.",
79
+ )
80
+ notify_on_restarted = fields.Boolean(
81
+ string="Notify Reviewers on Restarted",
82
+ help="If set, reviewers will be notified by email when a reviews related "
83
+ "to this definition are restarted.",
84
+ )
70
85
  has_comment = fields.Boolean(string="Comment", default=False)
71
86
  approve_sequence = fields.Boolean(
72
87
  string="Approve by sequence",
@@ -325,9 +325,20 @@ class TierValidation(models.AbstractModel):
325
325
  "reviewed_date": fields.Datetime.now(),
326
326
  }
327
327
  )
328
- for review in user_reviews:
329
- rec = self.env[review.model].browse(review.res_id)
330
- rec._notify_accepted_reviews()
328
+ reviews_to_nofity = user_reviews.filtered(
329
+ lambda r: r.definition_id.notify_on_accepted
330
+ )
331
+ if reviews_to_nofity:
332
+ subscribe = "message_subscribe"
333
+ if hasattr(self, subscribe):
334
+ getattr(self, subscribe)(
335
+ partner_ids=reviews_to_nofity.mapped("reviewer_ids")
336
+ .mapped("partner_id")
337
+ .ids
338
+ )
339
+ for review in reviews_to_nofity:
340
+ rec = self.env[review.model].browse(review.res_id)
341
+ rec._notify_accepted_reviews()
331
342
 
332
343
  def _get_requested_notification_subtype(self):
333
344
  return "base_tier_validation.mt_tier_validation_requested"
@@ -434,9 +445,21 @@ class TierValidation(models.AbstractModel):
434
445
  "reviewed_date": fields.Datetime.now(),
435
446
  }
436
447
  )
437
- for review in user_reviews:
438
- rec = self.env[review.model].browse(review.res_id)
439
- rec._notify_rejected_review()
448
+
449
+ reviews_to_nofity = user_reviews.filtered(
450
+ lambda r: r.definition_id.notify_on_rejected
451
+ )
452
+ if reviews_to_nofity:
453
+ subscribe = "message_subscribe"
454
+ if hasattr(self, subscribe):
455
+ getattr(self, subscribe)(
456
+ partner_ids=reviews_to_nofity.mapped("reviewer_ids")
457
+ .mapped("partner_id")
458
+ .ids
459
+ )
460
+ for review in reviews_to_nofity:
461
+ rec = self.env[review.model].browse(review.res_id)
462
+ rec._notify_rejected_review()
440
463
 
441
464
  def _notify_requested_review_body(self):
442
465
  return _("A review has been requested by %s.") % (self.env.user.name)
@@ -504,16 +527,33 @@ class TierValidation(models.AbstractModel):
504
527
 
505
528
  def restart_validation(self):
506
529
  for rec in self:
530
+ partners_to_notify_ids = False
507
531
  if getattr(rec, self._state_field) in self._state_from:
508
532
  to_update_counter = (
509
533
  rec.mapped("review_ids").filtered(lambda a: a.status == "pending")
510
534
  and True
511
535
  or False
512
536
  )
537
+ reviews_to_nofity = rec.review_ids.filtered(
538
+ lambda r: r.definition_id.notify_on_restarted
539
+ )
540
+ if reviews_to_nofity:
541
+ partners_to_notify_ids = (
542
+ reviews_to_nofity.mapped("reviewer_ids")
543
+ .mapped("partner_id")
544
+ .ids
545
+ )
513
546
  rec.mapped("review_ids").unlink()
514
547
  if to_update_counter:
515
548
  self._update_counter({"review_deleted": True})
516
- rec._notify_restarted_review()
549
+ if partners_to_notify_ids:
550
+ subscribe = "message_subscribe"
551
+ reviews_to_nofity = rec.review_ids.filtered(
552
+ lambda r: r.definition_id.notify_on_restarted
553
+ )
554
+ if hasattr(self, subscribe):
555
+ getattr(self, subscribe)(partner_ids=partners_to_notify_ids)
556
+ rec._notify_restarted_review()
517
557
 
518
558
  @api.model
519
559
  def _update_counter(self, review_counter):
@@ -6,3 +6,4 @@
6
6
  * Kitti U. <kittiu@ecosoft.co.th>
7
7
  * Saran Lim. <saranl@ecosoft.co.th>
8
8
  * Evan Soh <evan.soh@omnisoftsolution.com>
9
+ * Manuel Regidor <manuel.regidor@sygel.es>
@@ -366,7 +366,7 @@ ul.auto-toc {
366
366
  !! This file is generated by oca-gen-addon-readme !!
367
367
  !! changes will be overwritten. !!
368
368
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
369
- !! source digest: sha256:a077c98cf1ff92fbf3aee9e4e3b630f4759f5edb3358250b5ba5d361e880fdcf
369
+ !! source digest: sha256:81e217e874bdd41d3f7698778b4e6b504838558871697dc2fb34e6f288327bad
370
370
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
371
371
  <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>
372
372
  <p>Validating some operations is a common need across different areas in a company
@@ -563,6 +563,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
563
563
  <li>Kitti U. &lt;<a class="reference external" href="mailto:kittiu&#64;ecosoft.co.th">kittiu&#64;ecosoft.co.th</a>&gt;</li>
564
564
  <li>Saran Lim. &lt;<a class="reference external" href="mailto:saranl&#64;ecosoft.co.th">saranl&#64;ecosoft.co.th</a>&gt;</li>
565
565
  <li>Evan Soh &lt;<a class="reference external" href="mailto:evan.soh&#64;omnisoftsolution.com">evan.soh&#64;omnisoftsolution.com</a>&gt;</li>
566
+ <li>Manuel Regidor &lt;<a class="reference external" href="mailto:manuel.regidor&#64;sygel.es">manuel.regidor&#64;sygel.es</a>&gt;</li>
566
567
  </ul>
567
568
  </div>
568
569
  <div class="section" id="maintainers">
@@ -481,6 +481,376 @@ class TierTierValidation(CommonTierValidation):
481
481
  self.assertTrue(review)
482
482
  self.assertEqual(review.reviewer_ids, self.test_user_2)
483
483
 
484
+ def test_19_notify_on_create(self):
485
+ # notify on create
486
+ tier_definition = self.env["tier.definition"].search([])
487
+ tier_definition.write(
488
+ {
489
+ "notify_on_create": True,
490
+ "notify_on_accepted": False,
491
+ "notify_on_rejected": False,
492
+ "notify_on_restarted": False,
493
+ "review_type": "group",
494
+ "reviewer_group_id": self.env.ref("base.group_system").id,
495
+ }
496
+ )
497
+ test_record_1 = self.test_model.create({"test_field": 2.5})
498
+ notifications_no_1 = len(
499
+ self.env["mail.notification"].search(
500
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
501
+ )
502
+ )
503
+ test_record_1.request_validation()
504
+ notifications_no_2 = len(
505
+ self.env["mail.notification"].search(
506
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
507
+ )
508
+ )
509
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
510
+
511
+ # do not notify on create
512
+ tier_definition.write({"notify_on_create": False})
513
+ test_record_2 = self.test_model.create({"test_field": 2.5})
514
+ notifications_no_1 = len(
515
+ self.env["mail.notification"].search(
516
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
517
+ )
518
+ )
519
+ test_record_2.request_validation()
520
+ notifications_no_2 = len(
521
+ self.env["mail.notification"].search(
522
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
523
+ )
524
+ )
525
+ self.assertEqual(notifications_no_2, notifications_no_1)
526
+
527
+ def test_20_notify_on_accepted(self):
528
+ self.test_user_2.write(
529
+ {
530
+ "groups_id": [(6, 0, self.env.ref("base.group_system").ids)],
531
+ }
532
+ )
533
+
534
+ # notify on accepted
535
+ tier_definition = self.env["tier.definition"].search([])
536
+ tier_definition.write(
537
+ {
538
+ "notify_on_create": False,
539
+ "notify_on_accepted": True,
540
+ "notify_on_rejected": False,
541
+ "notify_on_restarted": False,
542
+ "review_type": "group",
543
+ "reviewer_group_id": self.env.ref("base.group_system").id,
544
+ }
545
+ )
546
+ test_record_1 = self.test_model.create({"test_field": 2.5})
547
+ test_record_1.request_validation()
548
+ test_record_1.invalidate_model()
549
+ record = test_record_1.with_user(self.test_user_2.id)
550
+ notifications_no_1 = len(
551
+ self.env["mail.notification"].search(
552
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
553
+ )
554
+ )
555
+ record.validate_tier()
556
+ notifications_no_2 = len(
557
+ self.env["mail.notification"].search(
558
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
559
+ )
560
+ )
561
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
562
+
563
+ # do not notify on accepted
564
+ tier_definition.write({"notify_on_accepted": False})
565
+ test_record_2 = self.test_model.create({"test_field": 2.5})
566
+ test_record_2.request_validation()
567
+ test_record_2.invalidate_model()
568
+ test_record_2.with_user(self.test_user_2.id)
569
+ notifications_no_1 = len(
570
+ self.env["mail.notification"].search(
571
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
572
+ )
573
+ )
574
+ test_record_2.validate_tier()
575
+ notifications_no_2 = len(
576
+ self.env["mail.notification"].search(
577
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
578
+ )
579
+ )
580
+ self.assertEqual(notifications_no_2, notifications_no_1)
581
+
582
+ def test_21_notify_on_rejected(self):
583
+ self.test_user_2.write(
584
+ {
585
+ "groups_id": [(6, 0, self.env.ref("base.group_system").ids)],
586
+ }
587
+ )
588
+
589
+ # notify on rejected
590
+ tier_definition = self.env["tier.definition"].search([])
591
+ tier_definition.write(
592
+ {
593
+ "notify_on_create": False,
594
+ "notify_on_accepted": False,
595
+ "notify_on_rejected": True,
596
+ "notify_on_restarted": False,
597
+ "review_type": "group",
598
+ "reviewer_group_id": self.env.ref("base.group_system").id,
599
+ }
600
+ )
601
+ test_record_1 = self.test_model.create({"test_field": 2.5})
602
+ test_record_1.request_validation()
603
+ test_record_1.invalidate_model()
604
+ record = test_record_1.with_user(self.test_user_2.id)
605
+ notifications_no_1 = len(
606
+ self.env["mail.notification"].search(
607
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
608
+ )
609
+ )
610
+ record.reject_tier()
611
+ notifications_no_2 = len(
612
+ self.env["mail.notification"].search(
613
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
614
+ )
615
+ )
616
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
617
+
618
+ # do not notify on rejected
619
+ tier_definition.write({"notify_on_rejected": False})
620
+ test_record_2 = self.test_model.create({"test_field": 2.5})
621
+ test_record_2.request_validation()
622
+ test_record_2.invalidate_model()
623
+ test_record_2.with_user(self.test_user_2.id)
624
+
625
+ notifications_no_1 = len(
626
+ self.env["mail.notification"].search(
627
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
628
+ )
629
+ )
630
+ test_record_2.reject_tier()
631
+ notifications_no_2 = len(
632
+ self.env["mail.notification"].search(
633
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
634
+ )
635
+ )
636
+ self.assertEqual(notifications_no_2, notifications_no_1)
637
+
638
+ def test_22_notify_on_restarted(self):
639
+ self.test_user_2.write(
640
+ {
641
+ "groups_id": [(6, 0, self.env.ref("base.group_system").ids)],
642
+ }
643
+ )
644
+
645
+ # notify on restarted
646
+ tier_definition = self.env["tier.definition"].search([])
647
+ tier_definition.write(
648
+ {
649
+ "notify_on_create": False,
650
+ "notify_on_accepted": False,
651
+ "notify_on_rejected": False,
652
+ "notify_on_restarted": True,
653
+ "review_type": "group",
654
+ "reviewer_group_id": self.env.ref("base.group_system").id,
655
+ }
656
+ )
657
+ test_record_1 = self.test_model.create({"test_field": 2.5})
658
+ test_record_1.request_validation()
659
+ test_record_1.invalidate_model()
660
+ record = test_record_1.with_user(self.test_user_2.id)
661
+ notifications_no_1 = len(
662
+ self.env["mail.notification"].search(
663
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
664
+ )
665
+ )
666
+ record.restart_validation()
667
+ notifications_no_2 = len(
668
+ self.env["mail.notification"].search(
669
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
670
+ )
671
+ )
672
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
673
+
674
+ # do not notify on restarted
675
+ tier_definition.write({"notify_on_restarted": False})
676
+ test_record_2 = self.test_model.create({"test_field": 2.5})
677
+ test_record_2.request_validation()
678
+ test_record_2.with_user(self.test_user_2.id)
679
+ notifications_no_1 = len(
680
+ self.env["mail.notification"].search(
681
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
682
+ )
683
+ )
684
+ test_record_2.restart_validation()
685
+ notifications_no_2 = len(
686
+ self.env["mail.notification"].search(
687
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
688
+ )
689
+ )
690
+ self.assertEqual(notifications_no_2, notifications_no_1)
691
+
692
+ def test_23_all_notification(self):
693
+ self.test_user_2.write(
694
+ {
695
+ "groups_id": [(6, 0, self.env.ref("base.group_system").ids)],
696
+ }
697
+ )
698
+
699
+ # notify on restarted
700
+ tier_definition = self.env["tier.definition"].search([])
701
+ tier_definition.write(
702
+ {
703
+ "notify_on_create": True,
704
+ "notify_on_accepted": True,
705
+ "notify_on_rejected": True,
706
+ "notify_on_restarted": True,
707
+ "review_type": "group",
708
+ "reviewer_group_id": self.env.ref("base.group_system").id,
709
+ }
710
+ )
711
+
712
+ test_record = self.test_model.create({"test_field": 2.5})
713
+
714
+ # request validation
715
+ notifications_no_1 = len(
716
+ self.env["mail.notification"].search(
717
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
718
+ )
719
+ )
720
+ test_record.request_validation()
721
+ test_record.invalidate_model()
722
+ notifications_no_2 = len(
723
+ self.env["mail.notification"].search(
724
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
725
+ )
726
+ )
727
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
728
+
729
+ # accept validation
730
+ record = test_record.with_user(self.test_user_2.id)
731
+ notifications_no_1 = len(
732
+ self.env["mail.notification"].search(
733
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
734
+ )
735
+ )
736
+ record.validate_tier()
737
+ notifications_no_2 = len(
738
+ self.env["mail.notification"].search(
739
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
740
+ )
741
+ )
742
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
743
+
744
+ # restart validation
745
+ notifications_no_1 = len(
746
+ self.env["mail.notification"].search(
747
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
748
+ )
749
+ )
750
+ record.restart_validation()
751
+ notifications_no_2 = len(
752
+ self.env["mail.notification"].search(
753
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
754
+ )
755
+ )
756
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
757
+
758
+ # reject validation
759
+ record.request_validation()
760
+ notifications_no_1 = len(
761
+ self.env["mail.notification"].search(
762
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
763
+ )
764
+ )
765
+ record.reject_tier()
766
+ notifications_no_2 = len(
767
+ self.env["mail.notification"].search(
768
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
769
+ )
770
+ )
771
+ self.assertEqual(notifications_no_2, notifications_no_1 + 1)
772
+
773
+ def test_24_no_notification(self):
774
+ self.test_user_2.write(
775
+ {
776
+ "groups_id": [(6, 0, self.env.ref("base.group_system").ids)],
777
+ }
778
+ )
779
+
780
+ # notify on restarted
781
+ tier_definition = self.env["tier.definition"].search([])
782
+ tier_definition.write(
783
+ {
784
+ "notify_on_create": False,
785
+ "notify_on_accepted": False,
786
+ "notify_on_rejected": False,
787
+ "notify_on_restarted": False,
788
+ "review_type": "group",
789
+ "reviewer_group_id": self.env.ref("base.group_system").id,
790
+ }
791
+ )
792
+
793
+ test_record = self.test_model.create({"test_field": 2.5})
794
+
795
+ # request validation
796
+ notifications_no_1 = len(
797
+ self.env["mail.notification"].search(
798
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
799
+ )
800
+ )
801
+ test_record.request_validation()
802
+ test_record.invalidate_model()
803
+ notifications_no_2 = len(
804
+ self.env["mail.notification"].search(
805
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
806
+ )
807
+ )
808
+ self.assertEqual(notifications_no_2, notifications_no_1)
809
+
810
+ # accept validation
811
+ record = test_record.with_user(self.test_user_2.id)
812
+ notifications_no_1 = len(
813
+ self.env["mail.notification"].search(
814
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
815
+ )
816
+ )
817
+ record.validate_tier()
818
+ notifications_no_2 = len(
819
+ self.env["mail.notification"].search(
820
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
821
+ )
822
+ )
823
+ self.assertEqual(notifications_no_2, notifications_no_1)
824
+
825
+ # restart validation
826
+ notifications_no_1 = len(
827
+ self.env["mail.notification"].search(
828
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
829
+ )
830
+ )
831
+ record.restart_validation()
832
+ notifications_no_2 = len(
833
+ self.env["mail.notification"].search(
834
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
835
+ )
836
+ )
837
+ self.assertEqual(notifications_no_2, notifications_no_1)
838
+
839
+ # reject validation
840
+ record.request_validation()
841
+ notifications_no_1 = len(
842
+ self.env["mail.notification"].search(
843
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
844
+ )
845
+ )
846
+ record.reject_tier()
847
+ notifications_no_2 = len(
848
+ self.env["mail.notification"].search(
849
+ [("res_partner_id", "=", self.test_user_1.partner_id.id)]
850
+ )
851
+ )
852
+ self.assertEqual(notifications_no_2, notifications_no_1)
853
+
484
854
 
485
855
  @tagged("at_install")
486
856
  class TierTierValidationView(CommonTierValidation):
@@ -99,6 +99,9 @@
99
99
  <group name="more_option">
100
100
  <group name="notify">
101
101
  <field name="notify_on_create" />
102
+ <field name="notify_on_accepted" />
103
+ <field name="notify_on_rejected" />
104
+ <field name="notify_on_restarted" />
102
105
  <field name="has_comment" />
103
106
  </group>
104
107
  </group>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-base-tier-validation
3
- Version: 16.0.1.4.1.19
3
+ Version: 16.0.1.4.2.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)
@@ -24,7 +24,7 @@ Base Tier Validation
24
24
  !! This file is generated by oca-gen-addon-readme !!
25
25
  !! changes will be overwritten. !!
26
26
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27
- !! source digest: sha256:a077c98cf1ff92fbf3aee9e4e3b630f4759f5edb3358250b5ba5d361e880fdcf
27
+ !! source digest: sha256:81e217e874bdd41d3f7698778b4e6b504838558871697dc2fb34e6f288327bad
28
28
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29
29
 
30
30
  .. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
@@ -227,6 +227,7 @@ Contributors
227
227
  * Kitti U. <kittiu@ecosoft.co.th>
228
228
  * Saran Lim. <saranl@ecosoft.co.th>
229
229
  * Evan Soh <evan.soh@omnisoftsolution.com>
230
+ * Manuel Regidor <manuel.regidor@sygel.es>
230
231
 
231
232
  Maintainers
232
233
  ~~~~~~~~~~~
@@ -1,31 +1,31 @@
1
- odoo/addons/base_tier_validation/README.rst,sha256=6i7j-pLEQJy2FZRfDdkQIQXsBJ34GybWfssI-76ZNow,6879
1
+ odoo/addons/base_tier_validation/README.rst,sha256=wSqD4E1JnMuleR1MRyk55qIqYqO6Un7EYLXWVA4zzQg,6922
2
2
  odoo/addons/base_tier_validation/__init__.py,sha256=rKfzYX9RhkkCxgh2f0PJLYN45Kw8T8-fwxw1pbjLuug,108
3
- odoo/addons/base_tier_validation/__manifest__.py,sha256=CB-4F4CwVWXNs6j4_zk_U7GWk1kSuhckAPiveThmhMg,1929
3
+ odoo/addons/base_tier_validation/__manifest__.py,sha256=RWlCWdILmdTWhM872GKhJZETlRV4OhB6R6a6-3VaI-k,1929
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=fg76CQ3Ebmlw3j1-rsWVcJ0vpuajOyB6P6cb81721IQ,24535
6
- odoo/addons/base_tier_validation/i18n/es.po,sha256=GyiQwfWmoTfEtakI0c8l8OoUrvDWUuHQ4Mg4fjarZaw,27853
7
- odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=40uyNB26YW86ZkEKoWo3V8FtDCQiazPBUDHcPVQkQCM,27254
8
- odoo/addons/base_tier_validation/i18n/fr.po,sha256=Q0G7ZYH9cGWY82iJMeALlswLjQEXBWBh653TDqk-VGs,28112
9
- odoo/addons/base_tier_validation/i18n/it.po,sha256=WZP96hMIWRbMxZDEitc8jV4vyptjRjW2FwZK_Iq3Seo,27948
10
- odoo/addons/base_tier_validation/i18n/nl_NL.po,sha256=QWhlWzs0HtzNEOukheP0DY1lWOMaY0xWwexT1NM8otE,28135
11
- odoo/addons/base_tier_validation/i18n/sv.po,sha256=InFO2W2fp6q5RzF2PgifNztoI2XLrbh20pd485hhvdo,28124
12
- odoo/addons/base_tier_validation/i18n/tr.po,sha256=bc46QhEi9VYXaMfA6KocssTNLfnSAAo9iNjdZxs0nkM,27156
13
- odoo/addons/base_tier_validation/i18n/zh_CN.po,sha256=2n28od4_AtupwMm7nRgPAtlMzUnU03_hb2__yqrlb78,26224
5
+ odoo/addons/base_tier_validation/i18n/base_tier_validation.pot,sha256=Tlh5c4Pb5XeApbMGBHt6rWrWdITfQZq7Z8pSI_863OM,25843
6
+ odoo/addons/base_tier_validation/i18n/es.po,sha256=-_QFNLSMJLR05JsJNnhVrk-GbZ8JTj1V-BTVGYHS7hE,29161
7
+ odoo/addons/base_tier_validation/i18n/es_MX.po,sha256=_IpZWZadVviPueJC_FQyjnEXvYpKmpNhGwoLgk20VnM,28562
8
+ odoo/addons/base_tier_validation/i18n/fr.po,sha256=7bdzA2R9YlbX_HBx5ytiTEGLLdjF_qf6w3ACtWfwyYg,29420
9
+ odoo/addons/base_tier_validation/i18n/it.po,sha256=pByJsrTFZyHbp81BcrMj48bh7l4V57fVnZi-XrFq9Lg,29256
10
+ odoo/addons/base_tier_validation/i18n/nl_NL.po,sha256=GoxIiqprBBRLbGUOW-v1mMcdoT2zUyz4Pccv3fQT0kU,29443
11
+ odoo/addons/base_tier_validation/i18n/sv.po,sha256=k_KiZwnnfggd77q5FANQjjPYKy5zOUKK1wJmMWkqvXU,29432
12
+ odoo/addons/base_tier_validation/i18n/tr.po,sha256=sf76O_P1VDWDRZwTh8DW8ExGwQTShRdIbb6HH5cDnsw,28464
13
+ odoo/addons/base_tier_validation/i18n/zh_CN.po,sha256=c4a2Sw60KqGT7tlpZSfy7Hyc5Yk4DHmYnL71MndllQU,27532
14
14
  odoo/addons/base_tier_validation/models/__init__.py,sha256=mLFF29I3WBYA2Qwlf9NU4pP2KwDKn5JpbZRzwe9-9pg,210
15
15
  odoo/addons/base_tier_validation/models/res_config_settings.py,sha256=n-i1InkXDcFrKmNkTCWtxcDSaxIAvxY7JsU5NrufmmA,617
16
16
  odoo/addons/base_tier_validation/models/res_users.py,sha256=R9idahM3P8CjB8DdodEKtvpd4BC56Jx-LzZAoM4eq88,2674
17
- odoo/addons/base_tier_validation/models/tier_definition.py,sha256=iWGZoHBmZ1pPbRX5JQG2QpFMoDl2HtfQYdkrfEcyDoA,3095
17
+ odoo/addons/base_tier_validation/models/tier_definition.py,sha256=uf_HVz9NmWTHyV5Z-584Li_DQgXfwdTRUW-LsNJJYGc,3757
18
18
  odoo/addons/base_tier_validation/models/tier_review.py,sha256=lB9Ifp721lcyJmR3PgsMoGUi-V-e4OVHOL8-87uZ4_0,5191
19
- odoo/addons/base_tier_validation/models/tier_validation.py,sha256=4b2V6kupF56gvZrbyeGRSBx2XRWpvTyvyItXBGu_noY,23712
19
+ odoo/addons/base_tier_validation/models/tier_validation.py,sha256=PfyhUC1_-M0AZhLTv2Pa7y9O6m31kq-ovA7X1BLFM6E,25410
20
20
  odoo/addons/base_tier_validation/readme/CONFIGURE.rst,sha256=-XvqIRVzdEx5Pl-w5qVHayTDYzGDI1FX92ChdijeNh0,503
21
- odoo/addons/base_tier_validation/readme/CONTRIBUTORS.rst,sha256=E0jhj0Cdv5mvm8AEZcCoLsk5g9y3BD9lE4zkKZQvCQ0,325
21
+ odoo/addons/base_tier_validation/readme/CONTRIBUTORS.rst,sha256=iKjNkx8eclqWJ1GrD9LEc04fyGelr2J3qH3RMAbnf3c,368
22
22
  odoo/addons/base_tier_validation/readme/DESCRIPTION.rst,sha256=MFbI1iBk0moWjdQUueJa05am8-JfIiiLRSyGgi1NBFY,653
23
23
  odoo/addons/base_tier_validation/readme/HISTORY.rst,sha256=YAvhjBTl1mz8-V5WxMmn3wwwSCcPwnczeRQtkxNmqBU,1440
24
24
  odoo/addons/base_tier_validation/readme/ROADMAP.rst,sha256=UWhIpMUTM_ido6s3jZiF8YYkAyC-mhMjAGJx6vGEn3w,867
25
25
  odoo/addons/base_tier_validation/security/ir.model.access.csv,sha256=ZlU5wKSjQ8gL6iCulpR_AF-AdULanaGK9J1gl-Fx__4,399
26
26
  odoo/addons/base_tier_validation/security/tier_validation_security.xml,sha256=eWFwz-osHgYFmVoEVzOSboO9oqUMtQ8oygyaz0os50Y,806
27
27
  odoo/addons/base_tier_validation/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
28
- odoo/addons/base_tier_validation/static/description/index.html,sha256=nkrw1YzZQOxLB3vOF8K09HvnMBVElQHQq5WKkwE1iZk,20660
28
+ odoo/addons/base_tier_validation/static/description/index.html,sha256=XkYCrYQgw7XFnUWE7OUYZYNGO31izGpCYu3QmNb7Lsg,20796
29
29
  odoo/addons/base_tier_validation/static/src/js/ir_model.esm.js,sha256=kHSA7CeIt02IZmsKJdn2yZVqKqSyQ6_g6QVmtq5Qo2A,706
30
30
  odoo/addons/base_tier_validation/static/src/js/main.esm.js,sha256=ZSHScoLlMQcO6jW9mLVusJOfyH5kJIw4szPK3xU-KHA,263
31
31
  odoo/addons/base_tier_validation/static/src/js/review_group_view.esm.js,sha256=G110cBwOwENHBUkuScOB8Xg05D0FzOqlsSl_US0PngA,1677
@@ -44,15 +44,15 @@ odoo/addons/base_tier_validation/static/src/xml/tier_review_template.xml,sha256=
44
44
  odoo/addons/base_tier_validation/templates/tier_validation_templates.xml,sha256=RXopPauknDx4fEC8ztKAz7z7WMU9sBCCVkp5tqNPNPc,4010
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=iJ5JFDbxPOuQdG15fPkp3WLg3181oFgVD9-ZM9pFnUk,3058
47
- odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=KfOJoelgic8CeV-KyVx0wGUISGmnZIAD-uffRFZcrcI,22118
47
+ odoo/addons/base_tier_validation/tests/test_tier_validation.py,sha256=8HLrB8zRYMX6h03-38ctslLPrRH9YNajrDl02lZom5E,35702
48
48
  odoo/addons/base_tier_validation/tests/tier_validation_tester.py,sha256=sUN-BRUHDDQ8t1Dze5c6H_2XQqop7c5cEsA4vJksEpA,1660
49
49
  odoo/addons/base_tier_validation/views/res_config_settings_views.xml,sha256=Al6XKCN1QGLPcgAaXTvEnSTYkwBrzDGfSRh3CQD4g5Q,4234
50
- odoo/addons/base_tier_validation/views/tier_definition_view.xml,sha256=V5l1JHCfei8zjDP5V-mvwquBMj_hplLNJF94n9AiEpQ,6896
50
+ odoo/addons/base_tier_validation/views/tier_definition_view.xml,sha256=92KWggMTWUXsfnPWZSbcbeGZXGgoKIZDUrumYdO-Ptc,7113
51
51
  odoo/addons/base_tier_validation/views/tier_review_view.xml,sha256=tPzmpz-kbQwOOtJrAcsTJEP9bJLcfzWAITCpI86kZU4,966
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.4.1.19.dist-info/METADATA,sha256=7TSww5LNVa7gENMzg7cxbKkT80qNPCzNpu-eon-RnOo,7485
56
- odoo_addon_base_tier_validation-16.0.1.4.1.19.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
57
- odoo_addon_base_tier_validation-16.0.1.4.1.19.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
58
- odoo_addon_base_tier_validation-16.0.1.4.1.19.dist-info/RECORD,,
55
+ odoo_addon_base_tier_validation-16.0.1.4.2.1.dist-info/METADATA,sha256=oR5q1ZjJNqLsVTOXTMOvjjoJzOyegntVMptLUv4OFkg,7527
56
+ odoo_addon_base_tier_validation-16.0.1.4.2.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
57
+ odoo_addon_base_tier_validation-16.0.1.4.2.1.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
58
+ odoo_addon_base_tier_validation-16.0.1.4.2.1.dist-info/RECORD,,