mirror of
https://gitlab.com/flectra-community/server-ux.git
synced 2024-12-23 12:51:48 +00:00
Automatic Update form OCA2FC Migrator
This commit is contained in:
parent
7e1a1d515a
commit
0bd7a2255c
@ -19,7 +19,7 @@ addon | version | summary
|
|||||||
[base_optional_quick_create](base_optional_quick_create/) | 3.0.1.0.0| Avoid "quick create" on m2o fields, on a "by model" basis
|
[base_optional_quick_create](base_optional_quick_create/) | 3.0.1.0.0| Avoid "quick create" on m2o fields, on a "by model" basis
|
||||||
[base_tier_validation_forward](base_tier_validation_forward/) | 3.0.1.0.0| Forward option for base tiers
|
[base_tier_validation_forward](base_tier_validation_forward/) | 3.0.1.0.0| Forward option for base tiers
|
||||||
[announcement](announcement/) | 3.0.1.0.0| Notify internal users about relevant organization stuff
|
[announcement](announcement/) | 3.0.1.0.0| Notify internal users about relevant organization stuff
|
||||||
[base_tier_validation](base_tier_validation/) | 3.0.2.2.1| Implement a validation process based on tiers.
|
[base_tier_validation](base_tier_validation/) | 3.0.2.3.0| Implement a validation process based on tiers.
|
||||||
[base_revision](base_revision/) | 3.0.1.0.0| Keep track of revised document
|
[base_revision](base_revision/) | 3.0.1.0.0| Keep track of revised document
|
||||||
[date_range_account](date_range_account/) | 3.0.1.0.0| Add Date Range menu entry in Invoicing app
|
[date_range_account](date_range_account/) | 3.0.1.0.0| Add Date Range menu entry in Invoicing app
|
||||||
[barcode_action](barcode_action/) | 3.0.1.0.0| Allows to use barcodes as a launcher
|
[barcode_action](barcode_action/) | 3.0.1.0.0| Allows to use barcodes as a launcher
|
||||||
|
@ -7,7 +7,7 @@ Base Tier Validation
|
|||||||
!! This file is generated by oca-gen-addon-readme !!
|
!! This file is generated by oca-gen-addon-readme !!
|
||||||
!! changes will be overwritten. !!
|
!! changes will be overwritten. !!
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
!! source digest: sha256:1d286dc389232f0cc60fd6012ae72c5eaf918284c9e7ef73da914cd6691cf822
|
!! source digest: sha256:9d45fb0cb0dd64489508d2963bbd948c59b466f16618469b6e86e3d606511aeb
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
||||||
@ -66,16 +66,16 @@ To configure this module, you need to:
|
|||||||
|
|
||||||
**Note:**
|
**Note:**
|
||||||
|
|
||||||
- If check *Notify Reviewers on Creation*, all possible reviewers will
|
- If check *Notify Reviewers on Creation*, all possible reviewers will
|
||||||
be notified by email when this definition is triggered.
|
be notified by email when this definition is triggered.
|
||||||
- If check *Notify reviewers on reaching pending* if you want to send a
|
- If check *Notify reviewers on reaching pending* if you want to send a
|
||||||
notification when pending status is reached. This is usefull in a
|
notification when pending status is reached. This is usefull in a
|
||||||
approve by sequence scenario to only notify reviewers when it is
|
approve by sequence scenario to only notify reviewers when it is their
|
||||||
their turn in the sequence.
|
turn in the sequence.
|
||||||
- If check *Comment*, reviewers can comment after click Validate or
|
- If check *Comment*, reviewers can comment after click Validate or
|
||||||
Reject.
|
Reject.
|
||||||
- If check *Approve by sequence*, reviewers is forced to review by
|
- If check *Approve by sequence*, reviewers is forced to review by
|
||||||
specified sequence.
|
specified sequence.
|
||||||
|
|
||||||
To configure Tier Validation Exceptions, you need to:
|
To configure Tier Validation Exceptions, you need to:
|
||||||
|
|
||||||
@ -90,16 +90,14 @@ To configure Tier Validation Exceptions, you need to:
|
|||||||
|
|
||||||
**Note:**
|
**Note:**
|
||||||
|
|
||||||
- If you don't create any exception, the Validated record will be
|
- If you don't create any exception, the Validated record will be
|
||||||
readonly and cannot be modified.
|
readonly and cannot be modified.
|
||||||
- If check *Write under Validation*, records will be able to be
|
- If check *Write under Validation*, records will be able to be modified
|
||||||
modified only in the defined fields when the Validation process is
|
only in the defined fields when the Validation process is ongoing.
|
||||||
ongoing.
|
- If check *Write after Validation*, records will be able to be modified
|
||||||
- If check *Write after Validation*, records will be able to be
|
only in the defined fields when the Validation process is finished.
|
||||||
modified only in the defined fields when the Validation process is
|
- If check *Write after Validation* and *Write under Validation*,
|
||||||
finished.
|
records will be able to be modified defined fields always.
|
||||||
- If check *Write after Validation* and *Write under Validation*,
|
|
||||||
records will be able to be modified defined fields always.
|
|
||||||
|
|
||||||
Known issues / Roadmap
|
Known issues / Roadmap
|
||||||
======================
|
======================
|
||||||
@ -107,25 +105,25 @@ Known issues / Roadmap
|
|||||||
This is the list of known issues for this module. Any proposal for
|
This is the list of known issues for this module. Any proposal for
|
||||||
improvement will be very valuable.
|
improvement will be very valuable.
|
||||||
|
|
||||||
- **Issue:**
|
- **Issue:**
|
||||||
|
|
||||||
When using approve_sequence option in any tier.definition there can
|
When using approve_sequence option in any tier.definition there can be
|
||||||
be inconsistencies in the systray notifications.
|
inconsistencies in the systray notifications.
|
||||||
|
|
||||||
**Description:**
|
**Description:**
|
||||||
|
|
||||||
Field can_review in tier.review is used to filter out, in the systray
|
Field can_review in tier.review is used to filter out, in the systray
|
||||||
notifications, the reviews a user can approve. This can_review field
|
notifications, the reviews a user can approve. This can_review field
|
||||||
is updated **in the database** in method review_user_count, this can
|
is updated **in the database** in method review_user_count, this can
|
||||||
make it very inconsistent for databases with a lot of users and
|
make it very inconsistent for databases with a lot of users and
|
||||||
recurring updates that can change the expected behavior.
|
recurring updates that can change the expected behavior.
|
||||||
|
|
||||||
- **Migration to 15.0:**
|
- **Migration to 15.0:**
|
||||||
|
|
||||||
The parameter \_tier_validation_manual_config will become False, on
|
The parameter \_tier_validation_manual_config will become False, on
|
||||||
14.0, the default value is True, as the change is applied after the
|
14.0, the default value is True, as the change is applied after the
|
||||||
migration. In order to use the new behavior we need to modify the
|
migration. In order to use the new behavior we need to modify the
|
||||||
value on our expected model.
|
value on our expected model.
|
||||||
|
|
||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
@ -147,69 +145,69 @@ Migrated to Odoo 14.
|
|||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
- When using approve_sequence option in any tier.definition there can
|
- When using approve_sequence option in any tier.definition there can be
|
||||||
be inconsistencies in the systray notifications
|
inconsistencies in the systray notifications
|
||||||
- When using approve_sequence, still not approve only the needed
|
- When using approve_sequence, still not approve only the needed
|
||||||
sequence, but also other sequence for the same approver
|
sequence, but also other sequence for the same approver
|
||||||
|
|
||||||
12.0.3.3.1 (2019-12-02)
|
12.0.3.3.1 (2019-12-02)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
- Show comment on Reviews Table.
|
- Show comment on Reviews Table.
|
||||||
- Edit notification with approve_sequence.
|
- Edit notification with approve_sequence.
|
||||||
|
|
||||||
12.0.3.3.0 (2019-11-27)
|
12.0.3.3.0 (2019-11-27)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
New features:
|
New features:
|
||||||
|
|
||||||
- Add comment on Reviews Table.
|
- Add comment on Reviews Table.
|
||||||
- Approve by sequence.
|
- Approve by sequence.
|
||||||
|
|
||||||
12.0.3.2.1 (2019-11-26)
|
12.0.3.2.1 (2019-11-26)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
- Remove message_subscribe_users
|
- Remove message_subscribe_users
|
||||||
|
|
||||||
12.0.3.2.0 (2019-11-25)
|
12.0.3.2.0 (2019-11-25)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
New features:
|
New features:
|
||||||
|
|
||||||
- Notify reviewers
|
- Notify reviewers
|
||||||
|
|
||||||
12.0.3.1.0 (2019-07-08)
|
12.0.3.1.0 (2019-07-08)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
- Singleton error
|
- Singleton error
|
||||||
|
|
||||||
12.0.3.0.0 (2019-12-02)
|
12.0.3.0.0 (2019-12-02)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
- Edit Reviews Table
|
- Edit Reviews Table
|
||||||
|
|
||||||
12.0.2.1.0 (2019-05-29)
|
12.0.2.1.0 (2019-05-29)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
- Edit drop-down style width and position
|
- Edit drop-down style width and position
|
||||||
|
|
||||||
12.0.2.0.0 (2019-05-28)
|
12.0.2.0.0 (2019-05-28)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
New features:
|
New features:
|
||||||
|
|
||||||
- Pass parameters as functions.
|
- Pass parameters as functions.
|
||||||
- Add Systray.
|
- Add Systray.
|
||||||
|
|
||||||
12.0.1.0.0 (2019-02-18)
|
12.0.1.0.0 (2019-02-18)
|
||||||
-----------------------
|
-----------------------
|
||||||
@ -252,24 +250,24 @@ Authors
|
|||||||
Contributors
|
Contributors
|
||||||
------------
|
------------
|
||||||
|
|
||||||
- Lois Rilo <lois.rilo@forgeflow.com>
|
- Lois Rilo <lois.rilo@forgeflow.com>
|
||||||
- Naglis Jonaitis <naglis@versada.eu>
|
- Naglis Jonaitis <naglis@versada.eu>
|
||||||
- Adrià Gil Sorribes <adria.gil@forgeflow.com>
|
- Adrià Gil Sorribes <adria.gil@forgeflow.com>
|
||||||
- Pimolnat Suntian <pimolnats@ecosoft.co.th>
|
- Pimolnat Suntian <pimolnats@ecosoft.co.th>
|
||||||
- Pedro Gonzalez <pedro.gonzalez@pesol.es>
|
- Pedro Gonzalez <pedro.gonzalez@pesol.es>
|
||||||
- Kitti U. <kittiu@ecosoft.co.th>
|
- Kitti U. <kittiu@ecosoft.co.th>
|
||||||
- Saran Lim. <saranl@ecosoft.co.th>
|
- Saran Lim. <saranl@ecosoft.co.th>
|
||||||
- Carlos Lopez <celm1990@gmail.com>
|
- Carlos Lopez <celm1990@gmail.com>
|
||||||
- Javier Colmeiro <javier.colmeiro@braintec.com>
|
- Javier Colmeiro <javier.colmeiro@braintec.com>
|
||||||
- bosd
|
- bosd
|
||||||
- Evan Soh <evan.soh@omnisoftsolution.com>
|
- Evan Soh <evan.soh@omnisoftsolution.com>
|
||||||
- Manuel Regidor <manuel.regidor@sygel.es>
|
- Manuel Regidor <manuel.regidor@sygel.es>
|
||||||
- Eduardo de Miguel <edu@moduon.team>
|
- Eduardo de Miguel <edu@moduon.team>
|
||||||
- `XCG Consulting <https://xcg-consulting.fr>`__:
|
- `XCG Consulting <https://xcg-consulting.fr>`__:
|
||||||
|
|
||||||
- Houzéfa Abbasbhay
|
- Houzéfa Abbasbhay
|
||||||
|
|
||||||
- Stefan Rijnhart <stefan@opener.amsterdam>
|
- Stefan Rijnhart <stefan@opener.amsterdam>
|
||||||
|
|
||||||
Maintainers
|
Maintainers
|
||||||
-----------
|
-----------
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Base Tier Validation",
|
"name": "Base Tier Validation",
|
||||||
"summary": "Implement a validation process based on tiers.",
|
"summary": "Implement a validation process based on tiers.",
|
||||||
"version": "3.0.2.2.1",
|
"version": "3.0.2.3.0",
|
||||||
"development_status": "Mature",
|
"development_status": "Mature",
|
||||||
"maintainers": ["LoisRForgeFlow"],
|
"maintainers": ["LoisRForgeFlow"],
|
||||||
"category": "Tools",
|
"category": "Tools",
|
||||||
@ -14,6 +14,7 @@
|
|||||||
"installable": True,
|
"installable": True,
|
||||||
"depends": ["mail"],
|
"depends": ["mail"],
|
||||||
"data": [
|
"data": [
|
||||||
|
"data/cron_data.xml",
|
||||||
"data/mail_data.xml",
|
"data/mail_data.xml",
|
||||||
"security/ir.model.access.csv",
|
"security/ir.model.access.csv",
|
||||||
"security/tier_validation_security.xml",
|
"security/tier_validation_security.xml",
|
||||||
|
17
base_tier_validation/data/cron_data.xml
Normal file
17
base_tier_validation/data/cron_data.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<flectra noupdate="1">
|
||||||
|
<record id="ir_cron_auto_tier_validation" model="ir.cron">
|
||||||
|
<field name="name">Send Tier Review Reminder</field>
|
||||||
|
<field name="interval_number">1</field>
|
||||||
|
<field name="interval_type">days</field>
|
||||||
|
<field name="numbercall">-1</field>
|
||||||
|
<field
|
||||||
|
name="nextcall"
|
||||||
|
eval="(datetime.now() + timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M:%S')"
|
||||||
|
/>
|
||||||
|
<field name="doall" eval="False" />
|
||||||
|
<field name="model_id" ref="model_tier_definition" />
|
||||||
|
<field name="code">model._cron_send_review_reminder()</field>
|
||||||
|
<field name="state">code</field>
|
||||||
|
</record>
|
||||||
|
</flectra>
|
@ -40,4 +40,22 @@
|
|||||||
<field name="internal" eval="True" />
|
<field name="internal" eval="True" />
|
||||||
<field name="hidden" eval="True" />
|
<field name="hidden" eval="True" />
|
||||||
</record>
|
</record>
|
||||||
|
<record
|
||||||
|
id="mt_tier_validation_reminder"
|
||||||
|
model="mail.message.subtype"
|
||||||
|
forcecreate="1"
|
||||||
|
>
|
||||||
|
<field name="name">Tier Validation Reminder</field>
|
||||||
|
<field name="default" eval="True" />
|
||||||
|
<field name="internal" eval="True" />
|
||||||
|
<field name="hidden" eval="True" />
|
||||||
|
</record>
|
||||||
|
<record
|
||||||
|
id="mail_act_tier_validation_reminder"
|
||||||
|
model="mail.activity.type"
|
||||||
|
forcecreate="1"
|
||||||
|
>
|
||||||
|
<field name="name">Tier Validation Reminder</field>
|
||||||
|
<field name="icon">fa-bell</field>
|
||||||
|
</record>
|
||||||
</flectra>
|
</flectra>
|
||||||
|
@ -56,6 +56,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -115,6 +122,11 @@ msgstr ""
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -395,6 +407,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -490,6 +507,13 @@ msgstr ""
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -627,6 +651,16 @@ msgstr ""
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -674,7 +708,8 @@ msgstr ""
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -733,6 +768,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
|
@ -71,6 +71,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr "Un registro a revisar ha sido creado por %s."
|
msgstr "Un registro a revisar ha sido creado por %s."
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -130,6 +137,11 @@ msgstr "Actividades"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -426,6 +438,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -521,6 +538,13 @@ msgstr "Notificar a los Revisores al Reiniciar"
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr "Notificar a los Revisores sobre la recepción de Pendientes"
|
msgstr "Notificar a los Revisores sobre la recepción de Pendientes"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -660,6 +684,16 @@ msgstr "Revisores"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "Revisiones"
|
msgstr "Revisiones"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -707,11 +741,10 @@ msgstr "Este %s necesita ser validado"
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Esta acción necesita ser validada para algún registro.\n"
|
|
||||||
"Por favor, solicita una validación."
|
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -768,6 +801,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "Validación de nivel Notificación rechazada"
|
msgstr "Validación de nivel Notificación rechazada"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -925,6 +964,14 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "ej. Validación de Nivel por..."
|
msgstr "ej. Validación de Nivel por..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Esta acción necesita ser validada para algún registro.\n"
|
||||||
|
#~ "Por favor, solicita una validación."
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid "The operation is under validation."
|
#~ msgid "The operation is under validation."
|
||||||
#~ msgstr "Esta operación está en proceso de validación."
|
#~ msgstr "Esta operación está en proceso de validación."
|
||||||
|
@ -59,6 +59,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -119,6 +126,11 @@ msgstr ""
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -403,6 +415,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -498,6 +515,13 @@ msgstr ""
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -635,6 +659,16 @@ msgstr "Revisores"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "Comentarios"
|
msgstr "Comentarios"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -682,11 +716,10 @@ msgstr ""
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Esta acción debe validarse para al menos un registro.\n"
|
|
||||||
"Solicite una validación."
|
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -743,6 +776,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "Notificación de rechazo de validación de nivel"
|
msgstr "Notificación de rechazo de validación de nivel"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -900,6 +939,14 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "p.ej. Validación de nivel para ..."
|
msgstr "p.ej. Validación de nivel para ..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Esta acción debe validarse para al menos un registro.\n"
|
||||||
|
#~ "Solicite una validación."
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid "The operation is under validation."
|
#~ msgid "The operation is under validation."
|
||||||
#~ msgstr "La operación está en proceso de validación."
|
#~ msgstr "La operación está en proceso de validación."
|
||||||
|
@ -59,6 +59,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -120,6 +127,11 @@ msgstr "Activité"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Tout"
|
msgstr "Tout"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -404,6 +416,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -499,6 +516,13 @@ msgstr ""
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -638,6 +662,16 @@ msgstr "Réviseurs"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "Revues"
|
msgstr "Revues"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -685,11 +719,10 @@ msgstr "%s : Cet enregistrement requiert une validation"
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cette action requiert une validation pour au moins un des enregistrements. \n"
|
|
||||||
"Veuillez demander cette validation."
|
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -746,6 +779,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "Validation par niveau - Notification - Rejetée"
|
msgstr "Validation par niveau - Notification - Rejetée"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -903,6 +942,15 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "par ex Niveau de validation pour..."
|
msgstr "par ex Niveau de validation pour..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Cette action requiert une validation pour au moins un des "
|
||||||
|
#~ "enregistrements. \n"
|
||||||
|
#~ "Veuillez demander cette validation."
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid "The operation is under validation."
|
#~ msgid "The operation is under validation."
|
||||||
#~ msgstr "Cette opération est en cours de validation."
|
#~ msgstr "Cette opération est en cours de validation."
|
||||||
|
@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 14.0\n"
|
"Project-Id-Version: Odoo Server 14.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-07-29 08:58+0000\n"
|
"PO-Revision-Date: 2024-11-26 20:06+0000\n"
|
||||||
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
|
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
@ -72,6 +72,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr "Un record a revisionare è stato creato da %s."
|
msgstr "Un record a revisionare è stato creato da %s."
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr "Una revisione è stata richiesta %s giorni fa."
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -131,6 +138,11 @@ msgstr "Attività"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Tutto"
|
msgstr "Tutto"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr "Permetti scrittura ai revisori"
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -429,6 +441,11 @@ msgstr "Completamente validato"
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr "È nel processo di validazione"
|
msgstr "È nel processo di validazione"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr "Data ultimo promemoria"
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -524,6 +541,15 @@ msgstr "Notifica revisori al riavvio"
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr "Notifica i revisori quando passa a \"In sospeso\""
|
msgstr "Notifica i revisori quando passa a \"In sospeso\""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
"Numero di giorni dopo i quali un messaggio deve essere inviato per ricordare "
|
||||||
|
"della valutazione in attesa (0 = nessun promemoria)"
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -665,6 +691,16 @@ msgstr "Revisori"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "Revisioni"
|
msgstr "Revisioni"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr "Invia promemoria revisione livello"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr "Invia messaggio promemoria per le revisioni in attesa"
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -712,11 +748,14 @@ msgstr "Questo %s deve essere approvato"
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Questa azione richiede di essere approvata per almeno un record.\n"
|
"Quest'azione deve essere approvata per almeno un record. Approvazioni in "
|
||||||
"Prego richiedere un'approvazione."
|
"sospeso:\n"
|
||||||
|
" - %s \n"
|
||||||
|
"Richiedere un'approvazione."
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -773,6 +812,12 @@ msgstr "Eccezioni validazione livello"
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "Notifica Rifiuto Livello Approvazione"
|
msgstr "Notifica Rifiuto Livello Approvazione"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr "Promemoria valutazione livello"
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -940,6 +985,14 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "es. Validazione livello per ..."
|
msgstr "es. Validazione livello per ..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Questa azione richiede di essere approvata per almeno un record.\n"
|
||||||
|
#~ "Prego richiedere un'approvazione."
|
||||||
|
|
||||||
#~ msgid "<span class=\"oe_edit_only\">Model</span>"
|
#~ msgid "<span class=\"oe_edit_only\">Model</span>"
|
||||||
#~ msgstr "<span class=\"oe_edit_only\">Modello</span>"
|
#~ msgstr "<span class=\"oe_edit_only\">Modello</span>"
|
||||||
|
|
||||||
|
@ -72,6 +72,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr "Een record dat dient te worden beoordeeld, is aangemaakt door %s."
|
msgstr "Een record dat dient te worden beoordeeld, is aangemaakt door %s."
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -131,6 +138,11 @@ msgstr "Activiteit"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -417,6 +429,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -512,6 +529,13 @@ msgstr ""
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -651,6 +675,16 @@ msgstr "Beoordelaars"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "Beoordelingen"
|
msgstr "Beoordelingen"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -698,11 +732,10 @@ msgstr "Dit %s dient te worden beoordeeld"
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Deze actie moet voor ten minste één record gevalideerd worden.\n"
|
|
||||||
"Vraag een validatie aan."
|
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -759,6 +792,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "Tier-validatie (abstract)"
|
msgstr "Tier-validatie (abstract)"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -916,6 +955,14 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "bijv. Tier validatie voor..."
|
msgstr "bijv. Tier validatie voor..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Deze actie moet voor ten minste één record gevalideerd worden.\n"
|
||||||
|
#~ "Vraag een validatie aan."
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid "The operation is under validation."
|
#~ msgid "The operation is under validation."
|
||||||
#~ msgstr "De bewerking is onder validatie."
|
#~ msgstr "De bewerking is onder validatie."
|
||||||
|
@ -71,6 +71,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr "En post som ska granskas har skapats av %s."
|
msgstr "En post som ska granskas har skapats av %s."
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -130,6 +137,11 @@ msgstr "Aktivitet"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alla"
|
msgstr "Alla"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -427,6 +439,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -522,6 +539,13 @@ msgstr "Meddela granskare vid omstart"
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr "Meddela granskare om att nå Pending"
|
msgstr "Meddela granskare om att nå Pending"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -661,6 +685,16 @@ msgstr "Granskare"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "Granskningar"
|
msgstr "Granskningar"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -708,11 +742,10 @@ msgstr "Denna %s måste bekräftas"
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Denna åtgärd måste bekräftas för minst en post.\n"
|
|
||||||
"Vänligen begär en validering."
|
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -769,6 +802,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "Meddelande vid nekad attestering"
|
msgstr "Meddelande vid nekad attestering"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -926,6 +965,14 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "t.ex. attestvalidering för..."
|
msgstr "t.ex. attestvalidering för..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Denna åtgärd måste bekräftas för minst en post.\n"
|
||||||
|
#~ "Vänligen begär en validering."
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid "The operation is under validation."
|
#~ msgid "The operation is under validation."
|
||||||
#~ msgstr "Åtgärden håller på att bekräftas."
|
#~ msgstr "Åtgärden håller på att bekräftas."
|
||||||
|
@ -59,6 +59,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -118,6 +125,11 @@ msgstr "Aktivite"
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Bütün"
|
msgstr "Bütün"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -402,6 +414,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -497,6 +514,13 @@ msgstr ""
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -634,6 +658,16 @@ msgstr "İnceleyenler"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "İncelemeler"
|
msgstr "İncelemeler"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -681,11 +715,10 @@ msgstr "Bu %s 'nin doğrulanması gerekiyor"
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Bu eylemin en az bir kayıt için doğrulanması gerekir.\n"
|
|
||||||
"Lütfen doğrulama isteğinde bulunun."
|
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -742,6 +775,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "Seviye Doğrulaması Reddedildi Bildirimi"
|
msgstr "Seviye Doğrulaması Reddedildi Bildirimi"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -899,6 +938,14 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "ör. Şunun için Seviye Doğrulaması..."
|
msgstr "ör. Şunun için Seviye Doğrulaması..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Bu eylemin en az bir kayıt için doğrulanması gerekir.\n"
|
||||||
|
#~ "Lütfen doğrulama isteğinde bulunun."
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid "The operation is under validation."
|
#~ msgid "The operation is under validation."
|
||||||
#~ msgstr "İşlem doğrulama aşamasındadır."
|
#~ msgstr "İşlem doğrulama aşamasındadır."
|
||||||
|
@ -59,6 +59,13 @@ msgstr ""
|
|||||||
msgid "A record to be reviewed has been created by %s."
|
msgid "A record to be reviewed has been created by %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#. odoo-python
|
||||||
|
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "A review has been requested %s days ago."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-python
|
#. odoo-python
|
||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
@ -118,6 +125,11 @@ msgstr ""
|
|||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "所有"
|
msgstr "所有"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__allow_write_for_reviewer
|
||||||
|
msgid "Allow Write For Reviewers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||||
msgid "Allowed groups to use this Tier Validation Exception"
|
msgid "Allowed groups to use this Tier Validation Exception"
|
||||||
@ -398,6 +410,11 @@ msgstr ""
|
|||||||
msgid "It's in the validation process"
|
msgid "It's in the validation process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||||
|
msgid "Last Reminder Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_uid
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_uid
|
||||||
@ -493,6 +510,13 @@ msgstr ""
|
|||||||
msgid "Notify Reviewers on reaching Pending"
|
msgid "Notify Reviewers on reaching Pending"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid ""
|
||||||
|
"Number of days after which a message must be posted to remind about pending "
|
||||||
|
"validation (0 = no reminder)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -630,6 +654,16 @@ msgstr "审批者"
|
|||||||
msgid "Reviews"
|
msgid "Reviews"
|
||||||
msgstr "审批"
|
msgstr "审批"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||||
|
msgid "Send Tier Review Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_reminder_delay
|
||||||
|
msgid "Send reminder message on pending reviews"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
|
||||||
@ -677,11 +711,10 @@ msgstr ""
|
|||||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"This action needs to be validated for at least one record. \n"
|
"This action needs to be validated for at least one record. Reviews pending:\n"
|
||||||
|
" - %s \n"
|
||||||
"Please request a validation."
|
"Please request a validation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"此操作需要至少对一条记录进行审批。\n"
|
|
||||||
"请发起审批申请。"
|
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||||
@ -740,6 +773,12 @@ msgstr ""
|
|||||||
msgid "Tier Validation Rejected Notification"
|
msgid "Tier Validation Rejected Notification"
|
||||||
msgstr "多层级审批(抽象)"
|
msgstr "多层级审批(抽象)"
|
||||||
|
|
||||||
|
#. module: base_tier_validation
|
||||||
|
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||||
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||||
|
msgid "Tier Validation Reminder"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: base_tier_validation
|
#. module: base_tier_validation
|
||||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||||
msgid "Tier Validation Requested"
|
msgid "Tier Validation Requested"
|
||||||
@ -897,6 +936,14 @@ msgstr ""
|
|||||||
msgid "e.g. Tier Validation for..."
|
msgid "e.g. Tier Validation for..."
|
||||||
msgstr "例如:审批层级用于..."
|
msgstr "例如:审批层级用于..."
|
||||||
|
|
||||||
|
#, python-format
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This action needs to be validated for at least one record. \n"
|
||||||
|
#~ "Please request a validation."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "此操作需要至少对一条记录进行审批。\n"
|
||||||
|
#~ "请发起审批申请。"
|
||||||
|
|
||||||
#, python-format
|
#, python-format
|
||||||
#~ msgid "The operation is under validation."
|
#~ msgid "The operation is under validation."
|
||||||
#~ msgstr "该操作正在审批中。"
|
#~ msgstr "该操作正在审批中。"
|
||||||
|
@ -20,11 +20,13 @@ class Users(models.Model):
|
|||||||
review_groups = self.env["tier.review"].read_group(domain, ["model"], ["model"])
|
review_groups = self.env["tier.review"].read_group(domain, ["model"], ["model"])
|
||||||
for review_group in review_groups:
|
for review_group in review_groups:
|
||||||
model = review_group["model"]
|
model = review_group["model"]
|
||||||
|
Model = self.env[model]
|
||||||
reviews = self.env["tier.review"].search(review_group.get("__domain"))
|
reviews = self.env["tier.review"].search(review_group.get("__domain"))
|
||||||
if reviews:
|
# Skip Models not having Tier Validation enabled (example: was unistalled)
|
||||||
|
if reviews and hasattr(Model, "can_review"):
|
||||||
records = (
|
records = (
|
||||||
self.env[model]
|
Model.with_user(self.env.user)
|
||||||
.with_user(self.env.user)
|
.with_context(active_test=False)
|
||||||
.search([("id", "in", reviews.mapped("res_id"))])
|
.search([("id", "in", reviews.mapped("res_id"))])
|
||||||
.filtered(lambda x: not x.rejected and x.can_review)
|
.filtered(lambda x: not x.rejected and x.can_review)
|
||||||
)
|
)
|
||||||
|
@ -38,6 +38,10 @@ class TierDefinition(models.Model):
|
|||||||
("field", "Field in related record"),
|
("field", "Field in related record"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
allow_write_for_reviewer = fields.Boolean(
|
||||||
|
string="Allow Write For Reviewers",
|
||||||
|
default=False,
|
||||||
|
)
|
||||||
reviewer_id = fields.Many2one(comodel_name="res.users", string="Reviewer")
|
reviewer_id = fields.Many2one(comodel_name="res.users", string="Reviewer")
|
||||||
reviewer_group_id = fields.Many2one(
|
reviewer_group_id = fields.Many2one(
|
||||||
comodel_name="res.groups", string="Reviewer group"
|
comodel_name="res.groups", string="Reviewer group"
|
||||||
@ -90,6 +94,11 @@ class TierDefinition(models.Model):
|
|||||||
"to this definition are restarted.",
|
"to this definition are restarted.",
|
||||||
)
|
)
|
||||||
has_comment = fields.Boolean(string="Comment", default=False)
|
has_comment = fields.Boolean(string="Comment", default=False)
|
||||||
|
notify_reminder_delay = fields.Integer(
|
||||||
|
string="Send reminder message on pending reviews",
|
||||||
|
help="Number of days after which a message must be posted to remind about "
|
||||||
|
"pending validation (0 = no reminder)",
|
||||||
|
)
|
||||||
approve_sequence = fields.Boolean(
|
approve_sequence = fields.Boolean(
|
||||||
string="Approve by sequence",
|
string="Approve by sequence",
|
||||||
default=False,
|
default=False,
|
||||||
@ -113,3 +122,33 @@ class TierDefinition(models.Model):
|
|||||||
.sudo()
|
.sudo()
|
||||||
.search([("model", "=", rec.model), ("relation", "=", "res.users")])
|
.search([("model", "=", rec.model), ("relation", "=", "res.users")])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _get_review_needing_reminder(self):
|
||||||
|
"""Return all the reviews that have the reminder setup."""
|
||||||
|
self.ensure_one()
|
||||||
|
if not self.notify_reminder_delay:
|
||||||
|
return self.env["tier.review"]
|
||||||
|
review_date = fields.Datetime.subtract(
|
||||||
|
fields.Datetime.now(), days=self.notify_reminder_delay
|
||||||
|
)
|
||||||
|
return self.env["tier.review"].search(
|
||||||
|
[
|
||||||
|
("definition_id", "=", self.id),
|
||||||
|
("status", "in", ["waiting", "pending"]),
|
||||||
|
"|",
|
||||||
|
"&",
|
||||||
|
("create_date", "<", review_date),
|
||||||
|
("last_reminder_date", "=", False),
|
||||||
|
("last_reminder_date", "<", review_date),
|
||||||
|
],
|
||||||
|
limit=1,
|
||||||
|
)
|
||||||
|
|
||||||
|
def _cron_send_review_reminder(self):
|
||||||
|
definition_with_reminder = self.env["tier.definition"].search(
|
||||||
|
[("notify_reminder_delay", ">", 0)]
|
||||||
|
)
|
||||||
|
for record in definition_with_reminder:
|
||||||
|
review_to_remind = record._get_review_needing_reminder()
|
||||||
|
if review_to_remind:
|
||||||
|
review_to_remind._send_review_reminder()
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
# Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
|
# Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
import pytz
|
import pytz
|
||||||
|
|
||||||
from flectra import _, api, fields, models
|
from flectra import _, api, fields, models
|
||||||
from flectra.exceptions import ValidationError
|
from flectra.exceptions import ValidationError
|
||||||
|
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class TierReview(models.Model):
|
class TierReview(models.Model):
|
||||||
_name = "tier.review"
|
_name = "tier.review"
|
||||||
@ -65,6 +69,7 @@ class TierReview(models.Model):
|
|||||||
approve_sequence_bypass = fields.Boolean(
|
approve_sequence_bypass = fields.Boolean(
|
||||||
related="definition_id.approve_sequence_bypass", readonly=True
|
related="definition_id.approve_sequence_bypass", readonly=True
|
||||||
)
|
)
|
||||||
|
last_reminder_date = fields.Datetime(readonly=True)
|
||||||
|
|
||||||
@api.depends("status")
|
@api.depends("status")
|
||||||
def _compute_display_status(self):
|
def _compute_display_status(self):
|
||||||
@ -159,3 +164,38 @@ class TierReview(models.Model):
|
|||||||
"""Method to call and reuse abstract notification method"""
|
"""Method to call and reuse abstract notification method"""
|
||||||
resource = self.env[self.model].browse(self.res_id)
|
resource = self.env[self.model].browse(self.res_id)
|
||||||
resource._notify_review_available(review_ids)
|
resource._notify_review_available(review_ids)
|
||||||
|
|
||||||
|
def _get_reminder_notification_subtype(self):
|
||||||
|
return "base_tier_validation.mt_tier_validation_reminder"
|
||||||
|
|
||||||
|
def _get_reminder_activity_type(self):
|
||||||
|
return "base_tier_validation.mail_act_tier_validation_reminder"
|
||||||
|
|
||||||
|
def _notify_review_reminder_body(self):
|
||||||
|
delay = (fields.Datetime.now() - self.create_date).days
|
||||||
|
return _("A review has been requested %s days ago.") % (delay)
|
||||||
|
|
||||||
|
def _send_review_reminder(self):
|
||||||
|
record = self.env[self.model].browse(self.res_id)
|
||||||
|
# Only schedule activity if reviewer is a single user and model has activities
|
||||||
|
if len(self.reviewer_ids) == 1 and hasattr(record, "activity_ids"):
|
||||||
|
self._schedule_review_reminder_activity(record)
|
||||||
|
elif hasattr(record, "message_post"):
|
||||||
|
self._notify_review_reminder(record)
|
||||||
|
else:
|
||||||
|
msg = "Could not send reminder for record %s" % record
|
||||||
|
_logger.exception(msg)
|
||||||
|
self.last_reminder_date = fields.Datetime.now()
|
||||||
|
|
||||||
|
def _notify_review_reminder(self, record):
|
||||||
|
record.message_post(
|
||||||
|
subtype_xmlid=self._get_reminder_notification_subtype(),
|
||||||
|
body=self._notify_review_reminder_body(),
|
||||||
|
)
|
||||||
|
|
||||||
|
def _schedule_review_reminder_activity(self, record):
|
||||||
|
record.activity_schedule(
|
||||||
|
act_type_xmlid=self._get_reminder_activity_type(),
|
||||||
|
note=self._notify_review_reminder_body(),
|
||||||
|
user_id=self.reviewer_ids.id,
|
||||||
|
)
|
||||||
|
@ -128,19 +128,25 @@ class TierValidation(models.AbstractModel):
|
|||||||
def _search_validated(self, operator, value):
|
def _search_validated(self, operator, value):
|
||||||
assert operator in ("=", "!="), "Invalid domain operator"
|
assert operator in ("=", "!="), "Invalid domain operator"
|
||||||
assert value in (True, False), "Invalid domain value"
|
assert value in (True, False), "Invalid domain value"
|
||||||
pos = self.search(
|
pos = self.search([(self._state_field, "in", self._state_from)]).filtered(
|
||||||
[(self._state_field, "in", self._state_from), ("review_ids", "!=", False)]
|
lambda r: r.validated
|
||||||
).filtered(lambda r: r.validated == value)
|
)
|
||||||
return [("id", "in", pos.ids)]
|
if value:
|
||||||
|
return [("id", "in", pos.ids)]
|
||||||
|
else:
|
||||||
|
return [("id", "not in", pos.ids)]
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _search_rejected(self, operator, value):
|
def _search_rejected(self, operator, value):
|
||||||
assert operator in ("=", "!="), "Invalid domain operator"
|
assert operator in ("=", "!="), "Invalid domain operator"
|
||||||
assert value in (True, False), "Invalid domain value"
|
assert value in (True, False), "Invalid domain value"
|
||||||
pos = self.search(
|
pos = self.search([(self._state_field, "in", self._state_from)]).filtered(
|
||||||
[(self._state_field, "in", self._state_from), ("review_ids", "!=", False)]
|
lambda r: r.rejected
|
||||||
).filtered(lambda r: r.rejected == value)
|
)
|
||||||
return [("id", "in", pos.ids)]
|
if value:
|
||||||
|
return [("id", "in", pos.ids)]
|
||||||
|
else:
|
||||||
|
return [("id", "not in", pos.ids)]
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _search_reviewer_ids(self, operator, value):
|
def _search_reviewer_ids(self, operator, value):
|
||||||
@ -304,7 +310,13 @@ class TierValidation(models.AbstractModel):
|
|||||||
|
|
||||||
def _check_allow_write_under_validation(self, vals):
|
def _check_allow_write_under_validation(self, vals):
|
||||||
"""Allow to add exceptions for fields that are allowed to be written
|
"""Allow to add exceptions for fields that are allowed to be written
|
||||||
even when the record is under validation."""
|
or for reviewers for all fields, even when the record is under
|
||||||
|
validation."""
|
||||||
|
if (
|
||||||
|
all(self.review_ids.mapped("definition_id.allow_write_for_reviewer"))
|
||||||
|
and self.env.user in self.reviewer_ids
|
||||||
|
):
|
||||||
|
return True
|
||||||
exceptions = self._get_under_validation_exceptions()
|
exceptions = self._get_under_validation_exceptions()
|
||||||
for val in vals:
|
for val in vals:
|
||||||
if val not in exceptions:
|
if val not in exceptions:
|
||||||
@ -341,6 +353,15 @@ class TierValidation(models.AbstractModel):
|
|||||||
allowed_field_names.append(fld_data["string"])
|
allowed_field_names.append(fld_data["string"])
|
||||||
return allowed_field_names, not_allowed_field_names
|
return allowed_field_names, not_allowed_field_names
|
||||||
|
|
||||||
|
def _check_tier_state_transition(self, vals):
|
||||||
|
"""
|
||||||
|
Check we are in origin state and not destination state
|
||||||
|
"""
|
||||||
|
self.ensure_one()
|
||||||
|
return getattr(self, self._state_field) in self._state_from and vals.get(
|
||||||
|
self._state_field
|
||||||
|
) not in (self._state_to + [self._cancel_state])
|
||||||
|
|
||||||
def write(self, vals):
|
def write(self, vals):
|
||||||
self._tier_validation_check_state_on_write(vals)
|
self._tier_validation_check_state_on_write(vals)
|
||||||
self._tier_validation_check_write_allowed(vals)
|
self._tier_validation_check_write_allowed(vals)
|
||||||
@ -382,11 +403,16 @@ class TierValidation(models.AbstractModel):
|
|||||||
reviews = rec.request_validation()
|
reviews = rec.request_validation()
|
||||||
rec._validate_tier(reviews)
|
rec._validate_tier(reviews)
|
||||||
if not self._calc_reviews_validated(reviews):
|
if not self._calc_reviews_validated(reviews):
|
||||||
|
pending_reviews = reviews.filtered(
|
||||||
|
lambda r: r.status == "pending"
|
||||||
|
).mapped("name")
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
_(
|
_(
|
||||||
"This action needs to be validated for at least "
|
"This action needs to be validated for at least "
|
||||||
"one record. \nPlease request a validation."
|
"one record. Reviews pending:\n - %s "
|
||||||
|
"\nPlease request a validation."
|
||||||
)
|
)
|
||||||
|
% "\n - ".join(pending_reviews)
|
||||||
)
|
)
|
||||||
if rec.review_ids and not rec.validated:
|
if rec.review_ids and not rec.validated:
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
@ -401,9 +427,7 @@ class TierValidation(models.AbstractModel):
|
|||||||
# Write under validation
|
# Write under validation
|
||||||
if (
|
if (
|
||||||
rec.review_ids
|
rec.review_ids
|
||||||
and getattr(rec, self._state_field) in self._state_from
|
and rec._check_tier_state_transition(vals)
|
||||||
and vals.get(self._state_field)
|
|
||||||
not in (self._state_to + [self._cancel_state])
|
|
||||||
and not rec._check_allow_write_under_validation(vals)
|
and not rec._check_allow_write_under_validation(vals)
|
||||||
and not rec._context.get("skip_validation_check")
|
and not rec._context.get("skip_validation_check")
|
||||||
):
|
):
|
||||||
|
@ -5,7 +5,7 @@ access_tier_review_group_portal,access_tier_review_group_portal,model_tier_revie
|
|||||||
access_tier_definition_group_portal,access_tier_definition_group_portal,model_tier_definition,base.group_portal,1,0,0,0
|
access_tier_definition_group_portal,access_tier_definition_group_portal,model_tier_definition,base.group_portal,1,0,0,0
|
||||||
access_tier_review,access.tier.review,model_tier_review,base.group_user,1,1,1,1
|
access_tier_review,access.tier.review,model_tier_review,base.group_user,1,1,1,1
|
||||||
access_tier_definition_all,tier.definition.all,model_tier_definition,base.group_user,1,0,0,0
|
access_tier_definition_all,tier.definition.all,model_tier_definition,base.group_user,1,0,0,0
|
||||||
access_tier_definition_settings,tier.definition.settings,model_tier_definition,base.group_system,1,1,1,1
|
access_tier_definition_settings,tier.definition.settings,model_tier_definition,base.group_erp_manager,1,1,1,1
|
||||||
access_comment_wizard,access.comment.wizard,model_comment_wizard,base.group_user,1,1,1,1
|
access_comment_wizard,access.comment.wizard,model_comment_wizard,base.group_user,1,1,1,1
|
||||||
access_tier_validation_exceptions_all,tier.validation.exceptions,model_tier_validation_exception,,1,0,0,0
|
access_tier_validation_exceptions_all,tier.validation.exceptions,model_tier_validation_exception,,1,0,0,0
|
||||||
access_tier_validation_exceptions_settings,tier.validation.exceptions,model_tier_validation_exception,base.group_system,1,1,1,1
|
access_tier_validation_exceptions_settings,tier.validation.exceptions,model_tier_validation_exception,base.group_system,1,1,1,1
|
||||||
|
|
@ -367,7 +367,7 @@ ul.auto-toc {
|
|||||||
!! This file is generated by oca-gen-addon-readme !!
|
!! This file is generated by oca-gen-addon-readme !!
|
||||||
!! changes will be overwritten. !!
|
!! changes will be overwritten. !!
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
!! source digest: sha256:1d286dc389232f0cc60fd6012ae72c5eaf918284c9e7ef73da914cd6691cf822
|
!! source digest: sha256:9d45fb0cb0dd64489508d2963bbd948c59b466f16618469b6e86e3d606511aeb
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||||
<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/17.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-17-0/server-ux-17-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&target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
<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/17.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-17-0/server-ux-17-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&target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
||||||
<p>Validating some operations is a common need across different areas in a
|
<p>Validating some operations is a common need across different areas in a
|
||||||
@ -433,8 +433,8 @@ functionality.</li>
|
|||||||
be notified by email when this definition is triggered.</li>
|
be notified by email when this definition is triggered.</li>
|
||||||
<li>If check <em>Notify reviewers on reaching pending</em> if you want to send a
|
<li>If check <em>Notify reviewers on reaching pending</em> if you want to send a
|
||||||
notification when pending status is reached. This is usefull in a
|
notification when pending status is reached. This is usefull in a
|
||||||
approve by sequence scenario to only notify reviewers when it is
|
approve by sequence scenario to only notify reviewers when it is their
|
||||||
their turn in the sequence.</li>
|
turn in the sequence.</li>
|
||||||
<li>If check <em>Comment</em>, reviewers can comment after click Validate or
|
<li>If check <em>Comment</em>, reviewers can comment after click Validate or
|
||||||
Reject.</li>
|
Reject.</li>
|
||||||
<li>If check <em>Approve by sequence</em>, reviewers is forced to review by
|
<li>If check <em>Approve by sequence</em>, reviewers is forced to review by
|
||||||
@ -455,12 +455,10 @@ both.</li>
|
|||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>If you don’t create any exception, the Validated record will be
|
<li>If you don’t create any exception, the Validated record will be
|
||||||
readonly and cannot be modified.</li>
|
readonly and cannot be modified.</li>
|
||||||
<li>If check <em>Write under Validation</em>, records will be able to be
|
<li>If check <em>Write under Validation</em>, records will be able to be modified
|
||||||
modified only in the defined fields when the Validation process is
|
only in the defined fields when the Validation process is ongoing.</li>
|
||||||
ongoing.</li>
|
<li>If check <em>Write after Validation</em>, records will be able to be modified
|
||||||
<li>If check <em>Write after Validation</em>, records will be able to be
|
only in the defined fields when the Validation process is finished.</li>
|
||||||
modified only in the defined fields when the Validation process is
|
|
||||||
finished.</li>
|
|
||||||
<li>If check <em>Write after Validation</em> and <em>Write under Validation</em>,
|
<li>If check <em>Write after Validation</em> and <em>Write under Validation</em>,
|
||||||
records will be able to be modified defined fields always.</li>
|
records will be able to be modified defined fields always.</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -471,8 +469,8 @@ records will be able to be modified defined fields always.</li>
|
|||||||
improvement will be very valuable.</p>
|
improvement will be very valuable.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p class="first"><strong>Issue:</strong></p>
|
<li><p class="first"><strong>Issue:</strong></p>
|
||||||
<p>When using approve_sequence option in any tier.definition there can
|
<p>When using approve_sequence option in any tier.definition there can be
|
||||||
be inconsistencies in the systray notifications.</p>
|
inconsistencies in the systray notifications.</p>
|
||||||
<p><strong>Description:</strong></p>
|
<p><strong>Description:</strong></p>
|
||||||
<p>Field can_review in tier.review is used to filter out, in the systray
|
<p>Field can_review in tier.review is used to filter out, in the systray
|
||||||
notifications, the reviews a user can approve. This can_review field
|
notifications, the reviews a user can approve. This can_review field
|
||||||
@ -504,8 +502,8 @@ to validate.</p>
|
|||||||
<h2><a class="toc-backref" href="#toc-entry-6">13.0.1.2.2 (2020-08-30)</a></h2>
|
<h2><a class="toc-backref" href="#toc-entry-6">13.0.1.2.2 (2020-08-30)</a></h2>
|
||||||
<p>Fixes:</p>
|
<p>Fixes:</p>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>When using approve_sequence option in any tier.definition there can
|
<li>When using approve_sequence option in any tier.definition there can be
|
||||||
be inconsistencies in the systray notifications</li>
|
inconsistencies in the systray notifications</li>
|
||||||
<li>When using approve_sequence, still not approve only the needed
|
<li>When using approve_sequence, still not approve only the needed
|
||||||
sequence, but also other sequence for the same approver</li>
|
sequence, but also other sequence for the same approver</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -2,3 +2,4 @@
|
|||||||
|
|
||||||
from . import common
|
from . import common
|
||||||
from . import test_tier_validation
|
from . import test_tier_validation
|
||||||
|
from . import test_tier_validation_reminder
|
||||||
|
@ -96,7 +96,7 @@ class CommonTierValidation(common.TransactionCase):
|
|||||||
|
|
||||||
# Create tier definitions:
|
# Create tier definitions:
|
||||||
cls.tier_def_obj = cls.env["tier.definition"]
|
cls.tier_def_obj = cls.env["tier.definition"]
|
||||||
cls.tier_def_obj.create(
|
cls.tier_definition = cls.tier_def_obj.create(
|
||||||
{
|
{
|
||||||
"model_id": cls.tester_model.id,
|
"model_id": cls.tester_model.id,
|
||||||
"review_type": "individual",
|
"review_type": "individual",
|
||||||
|
@ -999,6 +999,17 @@ class TierTierValidation(CommonTierValidation):
|
|||||||
self.assertFalse(self.test_record_computed.review_ids)
|
self.assertFalse(self.test_record_computed.review_ids)
|
||||||
self.test_record_computed.invalidate_recordset()
|
self.test_record_computed.invalidate_recordset()
|
||||||
|
|
||||||
|
def test_27_allow_write_for_reviewers(self):
|
||||||
|
reviews = self.test_record.with_user(self.test_user_2.id).request_validation()
|
||||||
|
record = self.test_record.with_user(self.test_user_1.id)
|
||||||
|
record.invalidate_recordset()
|
||||||
|
with self.assertRaises(ValidationError):
|
||||||
|
record.with_user(self.test_user_1.id).write({"test_field": 0.3})
|
||||||
|
reviews.definition_id.with_user(self.test_user_1.id).write(
|
||||||
|
{"allow_write_for_reviewer": True}
|
||||||
|
)
|
||||||
|
record.with_user(self.test_user_1.id).write({"test_field": 0.3})
|
||||||
|
|
||||||
|
|
||||||
@tagged("at_install")
|
@tagged("at_install")
|
||||||
class TierTierValidationView(CommonTierValidation):
|
class TierTierValidationView(CommonTierValidation):
|
||||||
|
46
base_tier_validation/tests/test_tier_validation_reminder.py
Normal file
46
base_tier_validation/tests/test_tier_validation_reminder.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||||
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
|
||||||
|
|
||||||
|
from freezegun import freeze_time
|
||||||
|
|
||||||
|
from flectra import fields
|
||||||
|
from flectra.tests.common import tagged
|
||||||
|
|
||||||
|
from .common import CommonTierValidation
|
||||||
|
|
||||||
|
|
||||||
|
@tagged("post_install", "-at_install")
|
||||||
|
class TierTierValidation(CommonTierValidation):
|
||||||
|
def test_validation_reminder(self):
|
||||||
|
"""Check the posting of reminder to reviews."""
|
||||||
|
tier_definition = self.tier_definition
|
||||||
|
tier_definition.notify_reminder_delay = 3
|
||||||
|
|
||||||
|
# Request a review today
|
||||||
|
self.test_record.with_user(self.test_user_2.id).request_validation()
|
||||||
|
review = self.env["tier.review"].search(
|
||||||
|
[("definition_id", "=", tier_definition.id)]
|
||||||
|
)
|
||||||
|
self.assertTrue(review)
|
||||||
|
self.assertEqual(review.last_reminder_date, False)
|
||||||
|
|
||||||
|
# 2 days later no reminder should be posted
|
||||||
|
in_2_days = fields.Datetime.add(fields.Datetime.now(), days=2)
|
||||||
|
with freeze_time(in_2_days):
|
||||||
|
tier_definition._cron_send_review_reminder()
|
||||||
|
self.assertEqual(review.last_reminder_date, False)
|
||||||
|
# 4 days later first reminder
|
||||||
|
in_4_days = fields.Datetime.add(fields.Datetime.now(), days=4)
|
||||||
|
with freeze_time(in_4_days):
|
||||||
|
self.tier_definition._cron_send_review_reminder()
|
||||||
|
self.assertEqual(review.last_reminder_date, in_4_days)
|
||||||
|
# 5 days later no new reminder
|
||||||
|
in_6_days = fields.Datetime.add(fields.Datetime.now(), days=6)
|
||||||
|
with freeze_time(in_6_days):
|
||||||
|
self.tier_definition._cron_send_review_reminder()
|
||||||
|
self.assertEqual(review.last_reminder_date, in_4_days)
|
||||||
|
# 9 days later second reminder
|
||||||
|
in_9_days = fields.Datetime.add(fields.Datetime.now(), days=9)
|
||||||
|
with freeze_time(in_9_days):
|
||||||
|
self.tier_definition._cron_send_review_reminder()
|
||||||
|
self.assertEqual(review.last_reminder_date, in_9_days)
|
@ -55,6 +55,7 @@
|
|||||||
<field name="model_id" options="{'no_create': True}" />
|
<field name="model_id" options="{'no_create': True}" />
|
||||||
<field name="model" invisible="1" />
|
<field name="model" invisible="1" />
|
||||||
<field name="review_type" />
|
<field name="review_type" />
|
||||||
|
<field name="allow_write_for_reviewer" />
|
||||||
<field
|
<field
|
||||||
name="reviewer_id"
|
name="reviewer_id"
|
||||||
invisible="review_type != 'individual'"
|
invisible="review_type != 'individual'"
|
||||||
@ -117,6 +118,7 @@
|
|||||||
<field name="notify_on_rejected" />
|
<field name="notify_on_rejected" />
|
||||||
<field name="notify_on_restarted" />
|
<field name="notify_on_restarted" />
|
||||||
<field name="has_comment" />
|
<field name="has_comment" />
|
||||||
|
<field name="notify_reminder_delay" />
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
</page>
|
</page>
|
||||||
|
Loading…
Reference in New Issue
Block a user