Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC

This commit is contained in:
CI Publish Bot
2026-05-31 21:19:21 +00:00
commit aa4214c195
1213 changed files with 183945 additions and 0 deletions

View File

@ -0,0 +1,307 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
====================
Base Tier Validation
====================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:3e44413fd72f8949deba313c3f31047cbf30ba3b17d78342590d2376001d905f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
:target: https://odoo-community.org/page/development-status
:alt: Mature
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github
:target: https://github.com/OCA/server-ux/tree/18.0/base_tier_validation
:alt: OCA/server-ux
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-ux-18-0/server-ux-18-0-base_tier_validation
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-ux&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
Validating some operations is a common need across different areas in a
company and sometimes it also involves several people and stages in the
process. With this module you will be able to define your custom
validation workflows for any Odoo document.
This module does not provide a functionality by itself but an abstract
model to implement a validation process based on tiers on other models
(e.g. purchase orders, sales orders, budgets, expenses...).
**Note:** To be able to use this module in a new model you will need
some development.
See
`purchase_tier_validation <https://github.com/OCA/purchase-workflow>`__
as an example of implementation.
Additionally, if your state field is a (stored) computed field, you need
to set ``_tier_validation_state_field_is_computed`` to ``True`` in your
model Python file, and you will want to add the dependent fields of the
compute method in ``_get_after_validation_exceptions`` and
``_get_under_validation_exceptions``.
**Table of contents**
.. contents::
:local:
Configuration
=============
To configure this module, you need to:
1. Go to *Settings > Technical > Tier Validations > Tier Definition*.
2. Create as many tiers as you want for any model having tier validation
functionality.
**Note:**
- If check *Notify Reviewers on Creation*, all possible reviewers will
be notified by email when this definition is triggered.
- If check *Notify reviewers on reaching pending* if you want to send a
notification when pending status is reached. This is usefull in a
approve by sequence scenario to only notify reviewers when it is their
turn in the sequence.
- If check *Comment*, reviewers can comment after click Validate or
Reject.
- If check *Approve by sequence*, reviewers is forced to review by
specified sequence.
To configure Tier Validation Exceptions, you need to:
1. Go to *Settings > Technical > Tier Validations > Tier Validation
Exceptions*.
2. Create as many tiers validation exceptions as you want for any model
having tier validation functionality.
3. Add desired fields to be checked in *Fields*.
4. Add desired groups that can use this Exception in *Groups*.
5. You must check *Write under Validation*, *Write after Validation* or
both.
**Note:**
- If you don't create any exception, the Validated record will be
readonly and cannot be modified.
- If check *Write under Validation*, records will be able to be modified
only in the defined fields when the Validation process is ongoing.
- If check *Write after Validation*, records will be able to be modified
only in the defined fields when the Validation process is finished.
- If check *Write after Validation* and *Write under Validation*,
records will be able to be modified defined fields always.
Known issues / Roadmap
======================
This is the list of known issues for this module. Any proposal for
improvement will be very valuable.
- **Issue:**
When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications.
**Description:**
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
is updated **in the database** in method review_user_count, this can
make it very inconsistent for databases with a lot of users and
recurring updates that can change the expected behavior.
- **Migration to 15.0:**
The parameter \_tier_validation_manual_config will become False, on
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
value on our expected model.
Changelog
=========
17.0.1.0.0 (2024-01-10)
-----------------------
Migrated to Odoo 17. Merged module with tier_validation_waiting. To
support sending messages in a validation sequence when it is their turn
to validate.
14.0.1.0.0 (2020-11-19)
-----------------------
Migrated to Odoo 14.
13.0.1.2.2 (2020-08-30)
-----------------------
Fixes:
- When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications
- When using approve_sequence, still not approve only the needed
sequence, but also other sequence for the same approver
12.0.3.3.1 (2019-12-02)
-----------------------
Fixes:
- Show comment on Reviews Table.
- Edit notification with approve_sequence.
12.0.3.3.0 (2019-11-27)
-----------------------
New features:
- Add comment on Reviews Table.
- Approve by sequence.
12.0.3.2.1 (2019-11-26)
-----------------------
Fixes:
- Remove message_subscribe_users
12.0.3.2.0 (2019-11-25)
-----------------------
New features:
- Notify reviewers
12.0.3.1.0 (2019-07-08)
-----------------------
Fixes:
- Singleton error
12.0.3.0.0 (2019-12-02)
-----------------------
Fixes:
- Edit Reviews Table
12.0.2.1.0 (2019-05-29)
-----------------------
Fixes:
- Edit drop-down style width and position
12.0.2.0.0 (2019-05-28)
-----------------------
New features:
- Pass parameters as functions.
- Add Systray.
12.0.1.0.0 (2019-02-18)
-----------------------
Migrated to Odoo 12.
11.0.1.0.0 (2018-05-09)
-----------------------
Migrated to Odoo 11.
10.0.1.0.0 (2018-03-26)
-----------------------
Migrated to Odoo 10.
9.0.1.0.0 (2017-12-02)
----------------------
First version.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-ux/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-ux/issues/new?body=module:%20base_tier_validation%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
-------
* ForgeFlow
Contributors
------------
- Lois Rilo <lois.rilo@forgeflow.com>
- Naglis Jonaitis <naglis@versada.eu>
- Adrià Gil Sorribes <adria.gil@forgeflow.com>
- Pimolnat Suntian <pimolnats@ecosoft.co.th>
- Pedro Gonzalez <pedro.gonzalez@pesol.es>
- Kitti U. <kittiu@ecosoft.co.th>
- Saran Lim. <saranl@ecosoft.co.th>
- Carlos Lopez <celm1990@gmail.com>
- Javier Colmeiro <javier.colmeiro@braintec.com>
- bosd
- Evan Soh <evan.soh@omnisoftsolution.com>
- Manuel Regidor <manuel.regidor@sygel.es>
- Eduardo de Miguel <edu@moduon.team>
- `XCG Consulting <https://xcg-consulting.fr>`__:
- Houzéfa Abbasbhay
- Stefan Rijnhart <stefan@opener.amsterdam>
- Kevin Khao <kevinkhao@gmail.com>
- Do Anh Duy <duyda@trobz.com>
Other credits
-------------
The migration of this module from 17.0 to 18.0 was financially supported
by Camptocamp.
Maintainers
-----------
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px
:target: https://github.com/LoisRForgeFlow
:alt: LoisRForgeFlow
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-LoisRForgeFlow|
This module is part of the `OCA/server-ux <https://github.com/OCA/server-ux/tree/18.0/base_tier_validation>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
from . import wizard

View File

@ -0,0 +1,35 @@
# Copyright 2017-24 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Base Tier Validation",
"summary": "Implement a validation process based on tiers.",
"version": "19.0.2025.12.03",
"development_status": "Mature",
"maintainers": ["LoisRForgeFlow"],
"category": "Tools",
"website": "https://github.com/OCA/server-ux",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["mail"],
"data": [
"data/cron_data.xml",
"data/mail_data.xml",
"security/ir.model.access.csv",
"security/tier_validation_security.xml",
"views/res_config_settings_views.xml",
"views/tier_definition_view.xml",
"views/tier_review_view.xml",
"views/tier_validation_exception_view.xml",
"wizard/comment_wizard_view.xml",
"templates/tier_validation_templates.xml",
],
"demo": [],
"assets": {
"web.assets_backend": [
"base_tier_validation/static/src/components/**/*",
"base_tier_validation/static/src/js/**/*",
],
},
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo 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="nextcall"
eval="(datetime.now() + timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="model_id" ref="model_tier_definition" />
<field name="code">model._cron_send_review_reminder()</field>
<field name="state">code</field>
</record>
</odoo>

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record
id="mt_tier_validation_requested"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Requested</field>
<field name="default" eval="False" />
<field name="internal" eval="True" />
<field name="hidden" eval="True" />
</record>
<record
id="mt_tier_validation_accepted"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Accepted Notification</field>
<field name="default" eval="False" />
<field name="internal" eval="True" />
<field name="hidden" eval="True" />
</record>
<record
id="mt_tier_validation_rejected"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Rejected Notification</field>
<field name="default" eval="False" />
<field name="internal" eval="True" />
<field name="hidden" eval="True" />
</record>
<record
id="mt_tier_validation_restarted"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Restarted</field>
<field name="default" eval="False" />
<field name="internal" eval="True" />
<field name="hidden" eval="True" />
</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>
</odoo>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Демо правило валидации для счетов (account.move) -->
<record id="demo_tier_definition_invoice" model="tier.definition">
<field name="name">Согласование счёта руководителем</field>
<field name="model_id" ref="account.model_account_move"/>
<field name="review_type">individual</field>
<field name="reviewer_id" ref="base.user_admin"/>
<field name="definition_type">domain</field>
<field name="definition_domain">[('move_type', '=', 'out_invoice'), ('amount_total', '&gt;', 100000)]</field>
<field name="sequence">10</field>
<field name="company_id" ref="base.main_company"/>
<field name="notify_on_create" eval="True"/>
<field name="notify_on_pending" eval="True"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,878 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is"
" reached.Usefull in an Approve by sequence scenario. An notification request"
" to review is sent out when it's their turn to review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
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
#: 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_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
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
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr ""

View File

@ -0,0 +1,879 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is"
" reached.Usefull in an Approve by sequence scenario. An notification request"
" to review is sent out when it's their turn to review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
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
#: 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_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
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
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr ""

View File

@ -0,0 +1,993 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-04-23 10:39+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" Este registro debe ser\n"
" validado."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" La operación ha sido\n"
" <b>rechazada</b>\n"
" ."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" La operación ha sido\n"
" <b>validada</b>\n"
" !"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">Nombre</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
"<span>Omitir, si el nivel anterior fue validado por el mismo revisor</span>"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %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
msgid "A review has been requested %s days ago."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "Una revisión fue solicitada por %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "Una revisión fue aceptada"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "Una revisión fue aceptada. (%s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr "%(user)s rechazó una reseña. %(comment)s"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "Una revisión fue rechaza por %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr "Un proceso de validación está aún abierto para al menos un registro."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr "Activo"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr "Cualquier usuario de un grupo específico"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr "Aplicar en"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr "Orden de aprobación por el número de secuencia especificado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr "Aprobar Omisión de Secuencia"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr "Aprobar por secuencia"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr "Aprobado"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr "Archivado"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
"Omitido (validado automático), si el mismo revisor validó el nivel anterior"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr "Puede revisar"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
"Puede revisar será establecido si la revisión está pendiente y la\n"
" secuencia de aprobación se ha alcanzado"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Cancelar"
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr "Comentar"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr "Wizard Comentario"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr "Comentarios"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr "Compañía"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr "Configuración de Ajustes"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr "Creado en"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr "Definición"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr "Dominio de definición"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr "Descripción"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr "Mostrar Estado"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr "Dominio"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr "Hecho Por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr "Hecho Por"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr "Campo en el registro relacionado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr "Grupo %s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr "Agrupar por"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr "Ha comentado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr "Ocultar Reseñas"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr "ID"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
"Si se establece, permite al revisor dejar un comentario sobre la reseña."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
"Si se establece, todos los posibles revisores serán notificados por correo "
"electrónico cuando se active esta definición."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
"Si se establece, todos los posibles revisores recibirán una notificación por "
"correo electrónico cuando se alcance este estado. Es útil en un escenario de "
"aprobación por secuencia. Se envía una solicitud de notificación de revisión "
"cuando les toca revisar."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
"Si se establece, los revisores recibirán una notificación por correo "
"electrónico cuando se acepte una revisión relacionada con esta definición."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
"Si se establece, los revisores recibirán una notificación por correo "
"electrónico cuando se rechace una revisión relacionada con esta definición."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
"Si se establece, los revisores recibirán una notificación por correo "
"electrónico cuando se reinicie una revisión relacionada con esta definición."
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
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
#: 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_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr "Última actualización de"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr "Última actualización en"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr "Modelo"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr "Más opciones"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr "Necesita validación"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr "Nueva Validación de Nivel"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr "Siguiente Revisión"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr "Siguiente: %s"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr "No hay revisiones a realizar."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr "Notificar la Aceptación a los Revisores"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr "Notificar a los revisores en la creación"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr "Notificar el Rechazo a los Revisores"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr "Notificar a los Revisores al Reiniciar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
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
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
"Opción de utilizar una fórmula python para obtener revisores y encontrar "
"documentos"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr "Pendiente"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr "Modelo referenciado"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr "Rechazar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr "Rechazado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr "Mensaje rechazado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr "ID del Documento Relacionado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr "Modelo del Documento Relacionado"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr "Solicitar validación"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr "Solicitado Por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr "Solicitado Por"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr "Recurso"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr "Modelo Res"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr "Reiniciar la Validación"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr "Revisor"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr "Revisor"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr "Campo revisor"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr "Grupo revisor"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr "Revisores"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr "Secuencia"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr "Usuario específico"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr "Estado"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr "La revisión ha sido reiniciada por %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr "Nivel"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr "Definición de Nivel"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr "Fórmula de niveles"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr "Revisión de Nivel"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr "Validación por niveles"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr "Validaciones de Nivel (abstracto)"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr "Notificación de Validación de Nivel Aceptada"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr "Validación de nivel solicitada"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr "Validación de nivel reiniciada"
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr "Validaciones de Nivel"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr "Para validar el mensaje"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr "Por hacer por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr "Para hacer por"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr "usuario"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr "Campo Revisor válido"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr "Validar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr "Validar Rechazar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr "Validado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr "Mensaje Validado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr "Validado por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr "Fecha de Validación"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr "Fecha de Validación Formateada"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr "Estado de validación"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr "Validaciones"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr "Esperando"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr "Sin validación"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr "ej. Validación de Nivel por..."
#~ msgid "There are no res.users in the selected field"
#~ msgstr "No hay res.usuarios en el campo seleccionado"
#, python-format
#~ msgid "Activity"
#~ msgstr "Actividades"
#, python-format
#~ msgid "Operation has been <b>rejected</b>."
#~ msgstr "La operación ha sido <b>rechazada</b>."
#, python-format
#~ msgid "Operation has been <b>validated</b>!"
#~ msgstr "¡La operación ha sido <b>validada</b>!"
#, python-format
#~ msgid "This %s needs to be validated"
#~ msgstr "Este %s necesita ser validado"
#, 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
#~ msgid "The operation is under validation."
#~ msgstr "Esta operación está en proceso de validación."
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " This Record needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " Este registro debe ser\n"
#~ " validado."
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " Operation has been\n"
#~ " <b>rejected</b>\n"
#~ " ."
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " La operación ha sido\n"
#~ " <b>rechazada</b>\n"
#~ " ."
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " Operation has been\n"
#~ " <b>validated</b>\n"
#~ " !"
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " La operación ha sido\n"
#~ " <b>validada</b>\n"
#~ " !"
#~ msgid ""
#~ "<span>Bypassed, if previous tier was validated by same reviewer</span>"
#~ msgstr ""
#~ "<span>Omitido, si el nivel anterior fue validado por el mismo revisor</"
#~ "span>"
#, python-format
#~ msgid "0 Pending"
#~ msgstr "0 Pendientes"
#~ msgid "Last Modified on"
#~ msgstr "Última modificación en"
#~ msgid "Option to forward a tier validation to other reviewer, and backward"
#~ msgstr ""
#~ "Opción de reenviar una validación de nivel a otro revisor, y hacia atrás"
#~ msgid "Tier Forward & Backward"
#~ msgstr "Nivel hacia delante y hacia atrás"

View File

@ -0,0 +1,949 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-08-16 22:50+0000\n"
"Last-Translator: Jesús Alan Ramos Rodríguez <alan.ramos@jarsa.com.mx>\n"
"Language-Team: none\n"
"Language: es_MX\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">Nombre</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "%s ha solicitado una revisión."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "Se aceptó una revisión"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "Se aceptó una revisión. (%s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "%s rechazó una revisión."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr ""
"Todavía hay un proceso de validación abierto para al menos un registro."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr "Activo"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr "Cualquier usuario de un grupo específico"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr "Aplicar en"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr "Orden de aprobación por el número de secuencia especificado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr "Aprobar por secuencia"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr "Aprobado"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr "Puede revisar"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
"Puede revisar se marcará si la revisión está pendiente y\n"
" se ha logrado aprobar la secuencia"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Cancelado"
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr "Comentario"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr "Asistente de comentarios"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr "Comentarios"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr "Empresa"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr "Creado en"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr "Definición de Nivel"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr "Dominio de definición"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr "Descripción"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr "Dominio"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr "Realizado por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr "Realizado por"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr "Campo en registro relacionado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr "Grupo %s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr "Agrupar por"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr "Tiene comentario"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr "Identificación"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
"Si se establece, todos los posibles revisores serán notificados por correo "
"electrónico cuando se active esta definición."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
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
#: 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_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr "Última modificación por"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr "Última modificación en"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr "Modelo"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr "Más opciones"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr "Necesita validación"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr "Nueva Definición de Nivel"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr "No hay revisiones que hacer."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr "Notificar a los revisores sobre la creación"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
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
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr "Pendiente"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr "Modelo referenciado"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr "Rechazar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr "Rechazado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr "ID de documento relacionado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr "Modelo de documento relacionado"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr "Solicitar Validación"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr "Solicitado por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr "Solicitado por"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr "Res"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr "Modelo Res"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr "Reiniciar la validación"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr "Revisión"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr "Evaluador"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr "Campo de revisor"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr "Grupo de revisores"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr "Revisores"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr "Secuencia"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr "Usuario específico"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr "Estatus"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr "%s ha restablecido la revisión."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr "Definición de Nivel"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr "Revisión de niveles"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr "Validación de nivel (resumen)"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr "Notificación de validación de nivel aceptada"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr "Validación de nivel solicitada"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr "Se reinició la validación de nivel"
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr "Validaciones de nivel"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr "Por Hacer por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr "Por Hacer por"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr "Campo de revisor válido"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr "Validar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr "Validar Rechazar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr "Validado"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr "Validado por"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr "Fecha de validación"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr "Validaciones"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr "p.ej. Validación de nivel para ..."
#~ msgid "There are no res.users in the selected field"
#~ msgstr "No hay res.users en el campo seleccionado"
#, 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
#~ msgid "The operation is under validation."
#~ msgstr "La operación está en proceso de validación."
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " This Record needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " Este registro necesita ser\n"
#~ " validado."
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " Operation has been\n"
#~ " <b>rejected</b>\n"
#~ " ."
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " La operación ha sido\n"
#~ " <b>rechazada</b>\n"
#~ " ."
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " Operation has been\n"
#~ " <b>validated</b>\n"
#~ " !"
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " ¡La operación ha sido\n"
#~ " <b>validada</b>\n"
#~ " !"
#, python-format
#~ msgid "0 Pending"
#~ msgstr "0 Pendientes"
#~ msgid "Last Modified on"
#~ msgstr "Última modificación el"
#, python-format
#~ msgid "Activities"
#~ msgstr "Actividades"
#~ msgid "Users"
#~ msgstr "Usuarios"
#~ msgid "A review was rejected by {}. ({})"
#~ msgstr "{} rechazó una revisión. ({})"

View File

@ -0,0 +1,980 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-10-19 12:51+0000\n"
"Last-Translator: Houzéfa Abbasbhay <houzefa.abba@xcg-consulting.fr>\n"
"Language-Team: none\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">Nom</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "Une revue a été demandée par %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "Une revue a été acceptée"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "Une revue a été acceptée. (%s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr "Une revue a été refusée par %(user)s. (%(comment)s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "Une revue a été refusée par %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr ""
"Un processus de validation est toujours en cours pour au moins un "
"enregistrement."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr "Actif"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr "Tout utilisateur d'un groupe spécifique"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr "Appliquer sur"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr "Ordre d'approbation suivant le numéro de séquence spécifié"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr "Approuver dans l'ordre"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr "Approuvé"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr "Revue possible"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
"La revue est marquée possible lorsqu'elle est en attente et\n"
" qu'une séquence d'approbation a été effectuée"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Annuler"
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr "Commentaire"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr "Assistant de saisie de commentaire"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr "Commentaires"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr "Société"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr "Paramètres de configuration"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr "Créé par"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr "Créé le"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr "Définition"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr "Domaine de la définition"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr "Description"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr "Nom d'affichage"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr "Domaine"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr "Fait par"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr "Fait par"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr "Champ dans l'enregistrement rattaché"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr "Groupe %s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr "Regrouper par"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr "Avec commentaire"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr "ID"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
"Avec cette option, tous les réviseurs autorisés seront notifiés par email "
"lors du déclenchement de cette définition."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
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
#: 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_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr "Modèle"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr "Plus d'options"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr "Validation requise"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr "Nouveau niveau de validation"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr "Revue suivante"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr "Suivante : %s"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr "Aucune revue n'est nécessaire."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr "Notifier les réviseurs à la création"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
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
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
"Option pour utiliser une formule python pour calculer les réviseurs et "
"déterminer les enregistrements"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr "En attente"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr "Modèle rattaché"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr "Rejeter"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr "Rejeté"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr "Message de rejet"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr "ID de l'enregistrement rattaché"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr "Modèle de l'enregistrement rattaché"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr "Demander validation"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr "Demandé par"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr "Demandé par"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr "Enregistrement"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr "Modèle de l'enregistrement"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr "Recommencer la validation"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr "Revue"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr "Réviseur"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr "Champ du réviseur"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr "Groupe des réviseurs"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr "Réviseurs"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr "Séquence"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr "Utilisateur spécifique"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr "Statut"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr "Cette revue a été réinitialisée par %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr "Définition de niveau"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr "Formules sur les niveaux"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr "Revue d'un niveau"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr "Validation par niveau"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr "Validation d'un niveau (modèle abstrait)"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr "Validation par niveau - Notification - Acceptée"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr "Validation par niveau - Demandée"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr "Validation par niveau - Redémarrée"
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr "Validations par niveau"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr "Message de demande de validation"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr "À faire par"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr "À faire par"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr "Utilisateur"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr "Champs réviseur valides"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr "Valider"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr "Validation / Rejet"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr "Validé"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr "Message de validation"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr "Validé par"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr "Date de validation"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr "Date de validation formatée"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr "Validations"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr "par ex Niveau de validation pour..."
#~ msgid "There are no res.users in the selected field"
#~ msgstr "Le champ sélectionné ne référence pas des res.users"
#, python-format
#~ msgid "Activity"
#~ msgstr "Activité"
#, python-format
#~ msgid "Operation has been <b>rejected</b>."
#~ msgstr "L'opération a été <b>rejetée</b>."
#, python-format
#~ msgid "Operation has been <b>validated</b>!"
#~ msgstr "L'opération a été <b>validée</b> !"
#, python-format
#~ msgid "This %s needs to be validated"
#~ msgstr "%s : Cet enregistrement requiert une validation"
#, 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
#~ msgid "The operation is under validation."
#~ msgstr "Cette opération est en cours de validation."
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " This Record needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " Cet enregistrement.\n"
#~ " requiert une validation"
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " Operation has been\n"
#~ " <b>rejected</b>\n"
#~ " ."
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " L'opération a été\n"
#~ " <b>rejetée</b>\n"
#~ " ."
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " Operation has been\n"
#~ " <b>validated</b>\n"
#~ " !"
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " L'opération a été\n"
#~ " <b>validée</b>\n"
#~ " !"
#, python-format
#~ msgid "0 Pending"
#~ msgstr "0 en attente"
#~ msgid "Last Modified on"
#~ msgstr "Dernière modification le"
#~ msgid "Option to forward a tier validation to other reviewer, and backward"
#~ msgstr ""
#~ "Option pour transmettre le niveau de validation à un autre réviseur, et "
#~ "inversement"
#~ msgid "Tier Forward & Backward"
#~ msgstr "Délégation des niveaux"
#, python-format
#~ msgid "Activities"
#~ msgstr "Activités"
#~ msgid "Users"
#~ msgstr "Utilisateurs"
#~ msgid "A review was rejected by {}. ({})"
#~ msgstr "Une vérification a été refusée par {}. ({})"
#~ msgid "Any user in a specific group."
#~ msgstr "Tout utilisateur d'un groupe spécifique."

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,938 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-06-20 22:25+0000\n"
"Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" Dit Record dient te worden\n"
" beoordeeld."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Aanvraag is \n"
" <b>afgewezen</b>\n"
" ."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Aanvraag is\n"
" <b>Gevalideerd</b>\n"
" !"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">Naam</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
"<span>Overslaan, indien het vorige niveau door dezelfde beoordelaar is "
"gevalideerd</span>"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr "Een record dat beoordeeld moet worden, is aangemaakt door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr "Een beoordeling is %s dagen geleden aangevraagd."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "Een beoordeling is aangevraagd door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "Een beoordeling is geaccepteerd"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "Een beoordeling is geaccepteerd. (%s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr "Een beoordeling is afgewezen door %(user)s. (%(comment)s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "Een beoordeling is afgewezen door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr "Er is nog een validatieproces open voor ten minste één record."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr "Actief"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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 "Schrijven toestaan voor beoordelaars"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr "Toegestane groepen om deze Tier Validatie Uitzondering te gebruiken"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr "Elke gebruiker in een specifieke groep"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr "Toepassen op"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr "Goedkeuringsvolgorde op basis van het opgegeven volgnummer"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr "Goedkeuringsvolgorde Omzeilen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr "Goedkeuren op volgorde"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr "Goedgekeurd"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr "Gearchiveerd"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
"Minstens één van deze velden moet aangevinkt zijn! Schrijven tijdens "
"Validatie, Schrijven na Validatie"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
"Overgeslagen (automatisch gevalideerd), indien het vorige niveau door "
"dezelfde beoordelaar is gevalideerd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr "Kan Beoordelen"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
"Kan beoordelen wordt gemarkeerd als de beoordeling in behandeling is en de\n"
" goedkeuringssequentie is bereikt"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Annuleren"
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr "Opmerking"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr "Opmerking Wizard"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr "Opmerkingen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr "Bedrijf"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr "Configuratie Instellingen"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr "Maak een nieuwe Validatie Uitzondering aan!"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr "Aangemaakt door"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr "Aangemaakt op"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr "Definitie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr "Definitiedomein"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr "Omschrijving"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr "Weergavenaam"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr "Weergavestatus"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr "Domein"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr "Gedaan door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr "Gedaan door"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr "Veld in gerelateerd record"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr "Velden"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr "Groep %s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr "Groeperen op"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr "Groepen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr "Heeft opmerking"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr "Verberg Beoordelingen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr "ID"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
"Indien ingesteld, staat de beoordelaar toe een opmerking achter te laten bij "
"de beoordeling."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
"Indien ingesteld, worden alle mogelijke beoordelaars per e-mail op de hoogte "
"gebracht wanneer deze definitie wordt geactiveerd."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
"Indien ingesteld, worden alle mogelijke beoordelaars per e-mail op de hoogte "
"gebracht wanneer deze status is bereikt. Handig in een 'Goedkeuren op "
"volgorde' scenario. Een verzoek om beoordeling wordt verstuurd wanneer zij "
"aan de beurt zijn om te beoordelen."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
"Indien ingesteld, worden beoordelaars per e-mail op de hoogte gebracht "
"wanneer een beoordeling met betrekking tot deze definitie wordt geaccepteerd."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
"Indien ingesteld, worden beoordelaars per e-mail op de hoogte gebracht "
"wanneer een beoordeling met betrekking tot deze definitie wordt afgewezen."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
"Indien ingesteld, worden beoordelaars per e-mail op de hoogte gebracht "
"wanneer beoordelingen met betrekking tot deze definitie opnieuw worden "
"gestart."
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr "Het is volledig gevalideerd"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
msgstr "Het bevindt zich in het validatieproces"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
msgid "Last Reminder Date"
msgstr "Datum laatste herinnering"
#. 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_tier_definition__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr "Laatst bijgewerkt door"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr "Laatst bijgewerkt op"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr "Model"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr "Model naam"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr "Meer Opties"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr "Naam"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr "Validatie nodig"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr "Nieuwe Tier-validatie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr "Volgende Beoordeling"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr "Volgende: %s"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr "Geen beoordelingen te doen."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr "Breng reviewers op de hoogte indien geaccepteerd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr "Informeer beoordelaar bij het maken"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr "Waarschuw reviewers bij afwijzing"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr "Waarschuw reviewers bij herstart"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
msgstr "Informeer reviewers over het bereiken van de status In behandeling"
#. 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 ""
"Aantal dagen waarna een bericht moet worden geplaatst om te herinneren aan "
"de in behandeling zijnde validatie (0 = geen herinnering)"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
"Nadat u het record hebt aangemaakt, kunt u bepalen welke velden u bewerkbaar "
"wilt maken wanneer het record:"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
"Optie om pythonformule te gebruiken om beoordelaars te krijgen en documenten "
"te vinden"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr "In afwachting"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr "Referentiemodel"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr "Weiger"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr "Afgekeurd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr "Afgewezen bericht"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr "Gerelateerde document-ID"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr "Verwant documentmodel"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr "Verzoek tot validatie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr "Aangevraagd door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr "Aangevraagd door"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr "Res"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr "Res model"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr "Herstart Validatie"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr "Beoordeling"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr "Beoordelaar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr "Beoordelaar veld"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr "Beoordeel groep"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr "Beoordelaars"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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 "Verzend Tier Beoordeling Herinnering"
#. 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 "Stuur herinneringsbericht voor openstaande beoordelingen"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr "Volgorde"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr "Specifieke gebruiker"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr "Status"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr "De beoordeling is opnieuw ingesteld door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
"Deze actie moet worden gevalideerd voor ten minste één record. Beoordelingen "
"in afwachting:\n"
" - %s \n"
"Vraag alstublieft een validatie aan."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr "Niveau"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr "Niveau Definitie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr "Niveau Formule"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr "Niveau Beoordeling"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr "Niveau Validatie"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr "Niveau Validatie (abstract)"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr "Niveau Validatie Geaccepteerd Notificatie"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr "Niveau Validatie Uitzondering"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr "Niveau Validatie Uitzonderingen"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
msgstr "Niveau Validatie Afgewezen Notificatie"
#. 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 "Niveau Validatie Herinnering"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr "Niveau Validatie Aangevraagd"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr "Niveau Validatie Herstart"
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr "Niveau Validaties"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr "Te Valideren Bericht"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr "Te Doen Door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr "Te doen door"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr "Gebruiker"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr "Geldig Modelveld"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr "Geldig Beoordelaarsveld"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr "Valideren"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr "Valideren Weigeren"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr "Gevalideerd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr "Gevalideerd Bericht"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr "Gevalideerd door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr "Validatiedatum"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr "Validatie Datum"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr "Validatiestatus"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr "Validaties"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr "Wachtend"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr "Zonder validatie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr "Schrijven na Validatie"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr "Schrijven na validatie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr "Schrijven tijdens Validatie"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr "Schrijven tijdens validatie"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
"U mag deze velden niet schrijven na validatie.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Alleen deze velden kunnen worden gewijzigd:\n"
"- %(allowed_fields_str)s"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
"U mag deze velden niet schrijven tijdens validatie.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Alleen deze velden kunnen worden gewijzigd:\n"
"- %(allowed_fields_str)s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr "bijv. Niveau Validatie voor..."
#~ msgid "There are no res.users in the selected field"
#~ msgstr "Er zijn geen res.users in het geselecteerde veld"

View File

@ -0,0 +1,992 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-02-04 21:02+0000\n"
"Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n"
"Language-Team: none\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" Dit Record dient te worden\n"
" beoordeeld."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Aanvraag is \n"
" <b>afgewezen</b>\n"
" ."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Aanvraag is\n"
" <b>Gevalideerd</b>\n"
" !"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">Naam</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
"<span>Overslaan, indien het vorige niveau door dezelfde beoordelaar is "
"gevalideerd</span>"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr "Een record dat beoordeeld moet worden, is aangemaakt door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr "Een beoordeling is %s dagen geleden aangevraagd."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "Een beoordeling is aangevraagd door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "Een beoordeling is geaccepteerd"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "Een beoordeling is geaccepteerd. (%s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr "Een beoordeling is afgewezen door %(user)s. (%(comment)s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "Een beoordeling is afgewezen door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr "Er is nog een validatieproces open voor ten minste één record."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr "Actief"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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 "Schrijven toestaan voor beoordelaars"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr "Toegestane groepen om deze Tier Validatie Uitzondering te gebruiken"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr "Elke gebruiker in een specifieke groep"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr "Toepassen op"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr "Goedkeuringsvolgorde op basis van het opgegeven volgnummer"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr "Beoordeel volgorde omzeilen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr "Goedkeuren op volgorde"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr "Goedgekeurd"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr "gearchiveerd"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
"Minstens één van deze velden moet aangevinkt zijn! Schrijven tijdens "
"Validatie, Schrijven na Validatie"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
"Overgeslagen (automatisch gevalideerd), als het vorige niveau door dezelfde "
"beoordelaar is gevalideerd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr "Kan beoordelen"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
"Kan beoordelen wordt gemarkeerd als de beoordeling in behandeling is en de\n"
" goedkeuringssequentie is bereikt"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Annuleer"
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr "Opmerking"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr "Opmerking Wizard"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr "Opmerkingen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr "Bedrijf"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr "Configuratie Instellingen"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr "Maak een nieuwe Validatie Uitzondering aan!"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr "Bedrijf"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr "Aangemaakt door"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr "Definitie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr "Definitiedomein"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr "Omschrijving"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr "Weergavenaam"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr "Weergavestatus"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr "Domein"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr "Gedaan door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr "Gedaan door"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr "Veld in verwante record"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr "Velden"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr "Groep %s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr "Groeperen op"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr "Groepen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr "Heeft commentaar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr "Verberg Beoordelingen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr "ID"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
"Indien ingesteld, staat de beoordelaar toe een opmerking achter te laten bij "
"de beoordeling."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
"Indien ingesteld, worden alle mogelijke reviewers per e-mail op de hoogte "
"gebracht wanneer deze definitie wordt geactiveerd."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
"Indien ingesteld, worden alle mogelijke beoordelaars per e-mail op de hoogte "
"gebracht wanneer deze status is bereikt. Handig in een 'Goedkeuren op "
"volgorde' scenario. Een verzoek om beoordeling wordt verstuurd wanneer zij "
"aan de beurt zijn om te beoordelen."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
"Indien ingesteld, worden beoordelaars per e-mail op de hoogte gebracht "
"wanneer een beoordeling met betrekking tot deze definitie wordt geaccepteerd."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
"Indien ingesteld, worden beoordelaars per e-mail op de hoogte gebracht "
"wanneer een beoordeling met betrekking tot deze definitie wordt afgewezen."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
"Indien ingesteld, worden beoordelaars per e-mail op de hoogte gebracht "
"wanneer beoordelingen met betrekking tot deze definitie opnieuw worden "
"gestart."
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr "Het is volledig gevalideerd"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
msgstr "Het bevindt zich in het validatieproces"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
msgid "Last Reminder Date"
msgstr "Datum laatste herinnering"
#. 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_tier_definition__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr "Laatst bijgewerkt door"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr "Laatst bijgewerkt op"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr "Model"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr "Model naam"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr "Meer Opties"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr "Naam"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr "Validatie nodig"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr "Nieuwe Tier-validatie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr "Volgende Beoordeling"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr "Volgende: %s"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr "Geen beoordelingen te doen."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr "Breng reviewers op de hoogte indien geaccepteerd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr "Informeer beoordelaar bij het maken"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr "Waarschuw reviewers bij afwijzing"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr "Waarschuw reviewers bij herstart"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
msgstr "Informeer reviewers over het bereiken van de status In behandeling"
#. 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 ""
"Aantal dagen waarna een bericht moet worden geplaatst om te herinneren aan "
"de in behandeling zijnde validatie (0 = geen herinnering)"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
"Nadat u het record hebt aangemaakt, kunt u bepalen welke velden u bewerkbaar "
"wilt maken wanneer het record:"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
"Optie om pythonformule te gebruiken om beoordelaars te krijgen en documenten "
"te vinden"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr "In afwachting"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr "Referentiemodel"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr "Weiger"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr "Afgekeurd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr "Afgewezen bericht"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr "Gerelateerde document-ID"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr "Verwant documentmodel"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr "Verzoek valideren"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr "Aangevraagd door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr "Aangevraagd door"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr "Res"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr "Res model"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr "Herstart Beoordeling"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr "Beoordeling"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr "Beoordelaar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr "Beoordelaar veld"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr "Beoordeel groep"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr "Beoordelaars"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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 "Verzend Tier Beoordeling Herinnering"
#. 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 "Stuur herinneringsbericht voor openstaande beoordelingen"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr "Volgorde"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr "Specifieke gebruiker"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr "Status"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr "De beoordeling is opnieuw gestart door %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
"Deze actie moet worden gevalideerd voor ten minste één record. Beoordelingen "
"in afwachting:\n"
" - %s \n"
"Vraag alstublieft een validatie aan."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr "Tier"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr "Tier definitie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr "Niveau Formule"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr "Tier beoordeling"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr "Niveauvalidatie"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr "Tier-validatie (abstract)"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr "Tier-validatie (abstract)"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr "Niveau Validatie Uitzondering"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr "Niveau Validatie Uitzonderingen"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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 "Niveau Validatie Herinnering"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr "Niveau Validatie Aangevraagd"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr "Niveauvalidatie opnieuw gestart"
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr "Tier-validaties"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr "Bericht valideren"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr "Te doen door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr "Te doen door"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr "Gebruiker"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr "Geldig Modelveld"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr "Geldig beoordelaarsveld"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr "Valideer"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr "Valideren weigeren"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr "Gevalideerd"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr "Gevalideerd bericht"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr "Gevalideerd door"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr "Validatie datum"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr "Validatie Datum"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr "Validatie Status"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr "Validaties"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr "Wachtend"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr "Zonder validatie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr "Schrijven na Validatie"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr "Schrijven na validatie"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr "Schrijven tijdens Validatie"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr "Schrijven tijdens validatie"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
"U mag deze velden niet schrijven na validatie.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Alleen deze velden kunnen worden gewijzigd:\n"
"- %(allowed_fields_str)s"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
"U mag deze velden niet schrijven tijdens validatie.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Alleen deze velden kunnen worden gewijzigd:\n"
"- %(allowed_fields_str)s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr "bijv. Tier validatie voor..."
#~ msgid "There are no res.users in the selected field"
#~ msgstr "Er zijn geen res.users in het geselecteerde veld"
#, python-format
#~ msgid "Activity"
#~ msgstr "Activiteit"
#, python-format
#~ msgid "Operation has been <b>rejected</b>."
#~ msgstr "Operatie is <b>afgewezen</b>."
#, python-format
#~ msgid "Operation has been <b>validated</b>!"
#~ msgstr "Operation has been <b>Goedgekeurd</b>!"
#, python-format
#~ msgid "This %s needs to be validated"
#~ msgstr "Dit %s dient te worden beoordeeld"
#, 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
#~ msgid "The operation is under validation."
#~ msgstr "De bewerking is onder validatie."
#, python-format
#~ msgid "0 Pending"
#~ msgstr "0 In afwachting"
#~ msgid "Last Modified on"
#~ msgstr "Laatst gewijzigd op"
#, fuzzy, python-format
#~ msgid "Activities"
#~ msgstr "Actief"
#~ msgid "Users"
#~ msgstr "Gebruikers"
#~ msgid "A review was rejected by {}. ({})"
#~ msgstr "Een beoordeling is afgewezen door {}. ({})"
#~ msgid "Any user in a specific group."
#~ msgstr "Elke gebruiker in een specifieke groep."
#~ msgid "Object"
#~ msgstr "Object"
#~ msgid "Approve Sequence"
#~ msgstr "Volgorde goedkeuren"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,998 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-10-30 17:00+0000\n"
"Last-Translator: Betül Öğmen <betulo@eska.biz>\n"
"Language-Team: none\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" Bu kaydın onaylanması\n"
" gerekmektedir."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" İşlem reddedildi\n"
" <b></b>\n"
" ."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" İşlem Onaylandı\n"
" <b></b>\n"
" !"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">Adı</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
"<span>Önceki aşama aynı inceleyen tarafından doğrulandıysa atlandı</span>"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr "Gözden geçirilmesi gereken bir kayıt %s tarafından oluşturuldu."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr "%s tarafından bir inceleme istendi."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "%s tarafından bir inceleme istendi."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "Bir inceleme kabul edildi"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "Bir inceleme kabul edildi. (%s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr "Bir inceleme %(user)s tarafından reddedildi. (%(comment)s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "Bir inceleme %s tarafından reddedildi."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr "En az bir kayıt için hala bir doğrulama süreci açık."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr "Etkin"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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 "İnceleyenler için yazmaya izin ver"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr "Grupların bu Katman Doğrulama İstisnasını kullanmasına izin verildi"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr "Belirli bir gruptaki herhangi bir kullanıcı"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr "Uygula"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr "Belirtilen sıra numarasına göre onay sırası"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr "Dizi Atlamasını Onayla"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr "Sıraya göre onayla"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr "Onaylı"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr "Arşivlendi"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
"Bu alanlardan en az birinin işaretlenmesi gerekmektedir! Doğrulama Altında "
"Yaz, Doğrulama Sonrası Yaz\""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
"Önceki aşama aynı inceleyici tarafından doğrulandıysa atlandı (otomatik "
"olarak doğrulandı)"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr "Gözden Geçirebilir"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
"İnceleme beklemedeyse ve gözden geçirilebilirse işaretlenebilir.\n"
" onay dizisi elde edildi"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "İptal"
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr "Yorum"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr "Yorum Sihirbazı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr "Yorumlar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr "Şirket"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr "Yapılandırma Ayarları"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr "Yeni bir Doğrulama İstisnası oluştur!"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr "Oluşturan"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr "Oluşturulma"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr "Tanım"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr "Tanım Etki Alanı"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr "Açıklama"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr "Görünüm Adı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr "Durumu Göster"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr "Etki Alanı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr "Tamamlayan"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr "Tamamlayan"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr "İlgili kayıttaki alan"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr "Alanlar"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr "Grup %s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr "Grupla"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr "Gruplar"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr "Yorum Var"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr "İncelemeleri Gizle"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr "ID"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr "Ayarlanırsa, İnceleyenin inceleme üzerinde yorum yapmasına izin ver."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
"Ayarlanırsa, bu tanım tetiklendiğinde tüm olası gözden geçirenler e-posta "
"ile bilgilendirilecektir."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
"Ayarlanırsa, bu duruma ulaşıldığında tüm olası inceleyenler e-posta ile "
"bildirilecektir. Sıraya göre onay senaryosunda kullanışlıdır. İnceleme "
"sırası kendilerine geldiğinde bir inceleme isteği gönderilir."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
"Ayarlanırsa, bu tanımla ilgili bir inceleme kabul edildiğinde inceleyiciler "
"e-postayla bilgilendirilecektir."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
"Ayarlanırsa, bu tanımla ilgili bir inceleme reddedildiğinde inceleyiciler e-"
"postayla bilgilendirilecektir."
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
"Ayarlanırsa, bu tanımla ilgili bir inceleme yeniden başlatıldığında "
"inceleyiciler e-postayla bilgilendirilecektir."
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr "Tamamen Doğrulandı"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
msgstr "Doğrulama Aşamasında"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
msgid "Last Reminder Date"
msgstr "Son Bilgilendirme Tarihi"
#. 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_tier_definition__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr "Son Güncelleyen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr "Son Güncelleme"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr "Modeli"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr "Model İsmi"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr "Daha Fazla Seçenek"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr "İsim"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr "Doğrulama Gerekiyor"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr "Yeni Seviye Doğrulama"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr "Sonraki İnceleme"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr "Sonraki: %s"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr "Yapacak inceleme yok."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr "Kabul Edilenleri İnceleyicilere Bildir"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr "İncelemeleri Oluşturma Hakkında Bilgilendir"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr "Red Edilenleri İnceleyicilere Bildir"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr "Yeniden Başlatmayı İnceleyicilere Bildir"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
msgstr "Bekleme Durumuna ulaştıklarında İnceleyicilere Bildir"
#. 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 ""
"Bekleyen doğrulamayı hatırlatmak için bir mesajın gönderilmesi gereken gün "
"sayısı (0 = hatırlatma yok)"
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
"Oluşturulduktan sonra, kayıt sırasında hangi alanların düzenlenebilir "
"olmasını istediğinize karar verebilirsiniz:"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
"Gözden geçirenleri almak ve belgeleri bulmak için python formülünü kullanma "
"seçeneği"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr "Bekleyen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr "Referans Model"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr "Reddet"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr "Reddedildi"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr "Reddedilen Mesaj"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr "İlgili Belge ID"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr "İlgili Belge Modeli"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr "Doğrulama İste"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr "İsteyen"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr "İsteyen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr "Temsilci"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr "Res Model"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr "Yeniden Doğrulama İste"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr "İncele"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr "İnceleyen"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr "İnceleme alanı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr "İnceleme grubu"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr "İnceleyenler"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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 "Katman İnceleme Hatırlatıcısı Gönder"
#. 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 "Bekleyen incelemelerle ilgili hatırlatma mesajı gönder"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr "Sıra"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr "Belirli kullanıcı"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr "Durumu"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr "İnceleme %s tarafından sıfırlandı."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
"Bu eylemin en az bir kayıt için doğrulanması gerekir. İnceleme bekliyor:\n"
" - %s \n"
"Lütfen doğrulama isteğinde bulunun."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr "Seviye"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr "Seviye Tanımı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr "Seviye Formülü"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr "Seviye İncelemesi"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr "Katman Doğrulama"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr "Seviye Doğrulaması (özet)"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr "Seviye Doğrulama Kabul Bildirimi"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr "Katman Doğrulama İstisnası"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr "Katman Doğrulama İstisnaları"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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 "Katman Doğrulama Hatırlatıcısı"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr "Seviye Doğrulaması İstendi"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr "Seviye Doğrulaması Yeniden Başlatıldı"
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr "Seviye Doğrulamaları"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr "Mesajı Doğrulamak İçin"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr "Yapılacak"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr "Yapılacak"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr "Kullanıcı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr "Geçerli Model Alanı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr "Geçerli İnceleme Alanı"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr "Doğrula"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr "Reddetmeyi Doğrula"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr "Doğrulandı"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr "Doğrulanmış Mesaj"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr "Doğrulayan"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr "Doğrulama Tarihi"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr "Doğrulama Format Tarihi"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr "Doğrulama Durumu"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr "Doğrulama gözden geçiren alanı uygun türde olmalıdır"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr "Doğrulamalar"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr "Bekleyenler"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr "Doğrulama olmadan"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr "Doğrulamadan sonra Yaz"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr "Doğrulamadan sonra yaz"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr "Doğrulama esnasında Yaz"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr "Doğrulama esnasında yaz"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
"Doğrulamadan sonra bu alanları yazmanıza izin verilmez.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Yalnızca bu alanlar değiştirilebilir:\n"
"- %(allowed_fields_str)s"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
"Doğrulamadan sonra bu alanları yazmanıza izin verilmez.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Yalnızca bu alanlar değiştirilebilir:\n"
"- %(allowed_fields_str)s"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr "ör. Şunun için Seviye Doğrulaması..."
#~ msgid "There are no res.users in the selected field"
#~ msgstr "Seçili alanda res.kullanıcı yok"
#, python-format
#~ msgid "Activity"
#~ msgstr "Aktivite"
#, python-format
#~ msgid "Operation has been <b>rejected</b>."
#~ msgstr "İşlem <b>reddedildi</b>."
#, python-format
#~ msgid "Operation has been <b>validated</b>!"
#~ msgstr "İşlem <b>doğrulandı</b>!"
#, python-format
#~ msgid "This %s needs to be validated"
#~ msgstr "Bu %s 'nin doğrulanması gerekiyor"
#, 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
#~ msgid "The operation is under validation."
#~ msgstr "İşlem doğrulama aşamasındadır."
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " This Record needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>\n"
#~ " Bu kaydın olması gerekiyor\n"
#~ " doğrulandı."
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " Operation has been\n"
#~ " <b>rejected</b>\n"
#~ " ."
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
#~ " operasyon yapıldı\n"
#~ " <b>reddedildi</b>\n"
#~ " ."
#~ msgid ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " Operation has been\n"
#~ " <b>validated</b>\n"
#~ " !"
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-up\"/>\n"
#~ " operasyon yapıldı\n"
#~ " <b>doğrulandı</b>\n"
#~ " !"
#, python-format
#~ msgid "0 Pending"
#~ msgstr "0 Bekleyen"
#~ msgid "Last Modified on"
#~ msgstr "Son Düzenleme"

View File

@ -0,0 +1,897 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-04-04 12:06+0000\n"
"Last-Translator: ductdm <duc.tdm@komit-consulting.com>\n"
"Language-Team: none\n"
"Language: vi_VN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.10.2\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" Bản ghi này cần được\n"
" xác thực."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Hoạt động đã bị\n"
" <b>từ chối</b>\n"
" ."
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Hoạt động này đã được\n"
" <b>xác thực</b>\n"
" !"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">Tên</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
"<span>Bỏ qua, nếu cấp độ trước đó đã được xác thực bởi cùng một người xem "
"xét</span>"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr "Một bản ghi cần được xem xét đã được tạo bởi %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr "Một yêu cầu xem xét đã được tạo %s ngày trước."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "Một yêu cầu xem xét đã được tạo bởi %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "Yêu cầu xem xét đã được chấp nhận"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "Yêu cầu xem xét đã được chấp nhận. (%s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr "Yêu cầu xem xét đã bị từ chối bởi %(user)s. (%(comment)s)"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "Yêu cầu xem xét đã bị từ chối bởi %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr "Quá trình xác thực vẫn mở cho ít nhất một bản ghi."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
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
#: 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_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
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
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr "Đánh giá đã được thiết lập lại bởi %s."
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
"Hành động này cần được xác thực cho ít nhất một bản ghi. Đang chờ đánh giá:\n"
" - %s \n"
"Please request a validation."
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr ""
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
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
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr ""

View File

@ -0,0 +1,927 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-09-24 18:00+0000\n"
"Last-Translator: Dong <dong@freshoo.cn>\n"
"Language-Team: none\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.10\n"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-info-circle\"/>\n"
" This Record needs to be\n"
" validated."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-down\"/>\n"
" Operation has been\n"
" <b>rejected</b>\n"
" ."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid ""
"<i class=\"fa fa-lg fa-thumbs-up\"/>\n"
" Operation has been\n"
" <b>validated</b>\n"
" !"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span class=\"oe_edit_only\">Name</span>"
msgstr "<span class=\"oe_edit_only\">名称</span>"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "<span>Bypass, if previous tier was validated by same reviewer</span>"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A record to be reviewed has been created by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "A review has been requested %s days ago."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review has been requested by %s."
msgstr "%s 发起审批请求。"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted"
msgstr "审批已通过"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was accepted. (%s)"
msgstr "审批已通过。 ( %s )"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %(user)s. (%(comment)s)"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A review was rejected by %s."
msgstr "%s 驳回了审批。"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "A validation process is still open for at least one record."
msgstr "当前记录存在待批复的审批流程。"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
msgid "Active"
msgstr "有效"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "All"
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
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Allowed groups to use this Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__group
msgid "Any user in a specific group"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Apply On"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence
msgid "Approval order by the specified sequence number"
msgstr "审批按指定序号排序"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid "Approve Sequence Bypass"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__approve_sequence
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__approve_sequence
msgid "Approve by sequence"
msgstr "按顺序审批"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
msgid "Approved"
msgstr "已批准"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Archived"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
msgid ""
"At least one of these fields must be checked! Write under Validation, Write "
"after Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__approve_sequence_bypass
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__approve_sequence_bypass
msgid ""
"Bypassed (auto validated), if previous tier was validated by same reviewer"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__can_review
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__can_review
msgid "Can Review"
msgstr "可审批"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_review__can_review
msgid ""
"Can review will be marked if the review is pending and the\n"
" approve sequence has been achieved"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "取消"
#. module: base_tier_validation
#. odoo-javascript
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__has_comment
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__has_comment
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Comment"
msgstr "审批意见"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_comment_wizard
msgid "Comment Wizard"
msgstr "审批意见向导"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
msgid "Comments"
msgstr "审批意见"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__company_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__company_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Company"
msgstr "公司"
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "Create a new Validation Exception!"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_uid
msgid "Created by"
msgstr "创建人"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__create_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__create_date
msgid "Created on"
msgstr "创建时间"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__definition_id
msgid "Definition"
msgstr "定义类型"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
msgid "Definition Domain"
msgstr "定义域"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
msgid "Description"
msgstr "说明"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__display_name
msgid "Display Name"
msgstr "显示名称"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
msgid "Display Status"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
msgid "Domain"
msgstr "域"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
msgid "Done By"
msgstr "审批人"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Done by"
msgstr "审批人"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__field
msgid "Field in related record"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
msgid "Fields"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Group %s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
msgid "Group By"
msgstr "分组"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
msgid "Groups"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
msgid "Has Comment"
msgstr "含审批意见"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__hide_reviews
msgid "Hide Reviews"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__id
msgid "ID"
msgstr "ID"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_validation__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_create
msgid ""
"If set, all possible reviewers will be notified by email when this "
"definition is triggered."
msgstr "如果设置,则触发此定义规则时将通过电子邮件通知所有的审批人。"
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_accepted
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is accepted."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_rejected
msgid ""
"If set, reviewers will be notified by email when a review related to this "
"definition is rejected."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_restarted
msgid ""
"If set, reviewers will be notified by email when a reviews related to this "
"definition are restarted."
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's fully validated"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid "It's in the validation process"
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
#: 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_review__write_uid
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_uid
msgid "Last Updated by"
msgstr "最近更新人"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__write_date
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__write_date
msgid "Last Updated on"
msgstr "最近更新时间"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_id
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Model"
msgstr "模型"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__model_name
msgid "Model Name"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "More Options"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
msgid "Name"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
msgid "Need Validation"
msgstr "需要审批"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_definition.py:0
msgid "New Tier Validation"
msgstr "新建多层级审批"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
msgid "Next Review"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "Next: %s"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
msgid "No reviews to do."
msgstr "没有待审批的项目。"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_accepted
msgid "Notify Reviewers on Accepted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_create
msgid "Notify Reviewers on Creation"
msgstr "创建时通知审批人"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_rejected
msgid "Notify Reviewers on Rejected"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_restarted
msgid "Notify Reviewers on Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__notify_on_pending
msgid "Notify Reviewers on reaching Pending"
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
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
msgid ""
"Once created, you can decide which fields you want to be editable when the "
"record:"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Option to use python formula to get reviewers and find documents"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__pending
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__pending
msgid "Pending"
msgstr "待审批"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
msgid "Referenced Model"
msgstr "引用模型"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Reject"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__rejected
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__rejected
msgid "Rejected"
msgstr "已驳回"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
msgid "Related Document ID"
msgstr "关联文档 ID"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
msgid "Related Document Model"
msgstr "关联文档模型"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Request Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
msgid "Requested By"
msgstr "发起人"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Requested by"
msgstr "发起人"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_id
msgid "Res"
msgstr "资源"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__res_model
msgid "Res Model"
msgstr "资源模型"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
msgid "Restart Validation"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
msgid "Review"
msgstr "审批"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_id
msgid "Reviewer"
msgstr "审批人"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_field_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_field_id
msgid "Reviewer field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__reviewer_group_id
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_group_id
msgid "Reviewer group"
msgstr "审批组"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewer_ids
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__reviewer_ids
msgid "Reviewers"
msgstr "审批者"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_menu/tier_review_menu.xml:0
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
msgid "Reviews"
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
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
msgid "Sequence"
msgstr "序号"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
msgid "Specific user"
msgstr "指定用户"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
msgid "Status"
msgstr "状态"
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid "The review has been reset by %s."
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"This action needs to be validated for at least one record. Reviews pending:\n"
" - %s \n"
"Please request a validation."
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
msgid "Tier"
msgstr "层级"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_definition_action
#: model:ir.model,name:base_tier_validation.model_tier_definition
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_definition
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "Tier Definition"
msgstr "层级定义"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_formula
msgid "Tier Formula"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_review
msgid "Tier Review"
msgstr "多层级审批"
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
msgid "Tier Validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation
msgid "Tier Validation (abstract)"
msgstr "多层级审批(抽象)"
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
#, fuzzy
msgid "Tier Validation Accepted Notification"
msgstr "多层级审批(抽象)"
#. module: base_tier_validation
#: model:ir.actions.act_window,name:base_tier_validation.tier_validation_exception_action
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_validation_exception
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_form
msgid "Tier Validation Exception"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
msgid "Tier Validation Exceptions"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
#, fuzzy
msgid "Tier Validation Rejected Notification"
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
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
msgid "Tier Validation Requested"
msgstr ""
#. module: base_tier_validation
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
msgid "Tier Validation Restarted"
msgstr ""
#. module: base_tier_validation
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
msgid "Tier Validations"
msgstr "多层级审批"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
msgid "Todo By"
msgstr ""
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
msgid "Todo by"
msgstr ""
#. module: base_tier_validation
#: model:ir.model,name:base_tier_validation.model_res_users
msgid "User"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__valid_model_field_ids
msgid "Valid Model Field"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__valid_reviewer_field_ids
msgid "Valid Reviewer Field"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
msgid "Validate"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
msgid "Validate Reject"
msgstr "驳回"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__validated
msgid "Validated"
msgstr "已批准"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
msgid "Validated Message"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__review_type
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__review_type
msgid "Validated by"
msgstr "审批人"
#. module: base_tier_validation
#. odoo-javascript
#: code:addons/base_tier_validation/static/src/components/tier_review_widget/tier_review_widget.xml:0
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
msgid "Validation Date"
msgstr "审批日期"
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
msgid "Validation Formated Date"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
msgid "Validation Status"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_review.py:0
msgid "Validation reviewer field should be of the appropriate type"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
msgid "Validations"
msgstr "审批"
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__waiting
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__waiting
msgid "Waiting"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
msgid "Without validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_after_validation
msgid "Write after Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write after validation"
msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__allowed_to_write_under_validation
msgid "Write under Validation"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
msgid "Write under validation"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#. odoo-python
#: code:addons/base_tier_validation/models/tier_validation.py:0
msgid ""
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n"
"\n"
"Only those fields can be modified:\n"
"- %(allowed_fields_str)s"
msgstr ""
#. module: base_tier_validation
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
msgid "e.g. Tier Validation for..."
msgstr "例如:审批层级用于..."
#, python-format
#~ msgid ""
#~ "This action needs to be validated for at least one record. \n"
#~ "Please request a validation."
#~ msgstr ""
#~ "此操作需要至少对一条记录进行审批。\n"
#~ "请发起审批申请。"
#, python-format
#~ msgid "The operation is under validation."
#~ msgstr "该操作正在审批中。"
#, python-format
#~ msgid "0 Pending"
#~ msgstr "0 待审批"
#~ msgid "Last Modified on"
#~ msgstr "最近修改时间"
#, python-format
#~ msgid "Activities"
#~ msgstr "活动项目"
#~ msgid "Users"
#~ msgstr "用户"
#~ msgid "A review was rejected by {}. ({})"
#~ msgstr "{} 驳回了审批。 ( {} )"
#~ msgid "Any user in a specific group."
#~ msgstr "指定权限组"
#~ msgid "Object"
#~ msgstr "对象"
#~ msgid "Approve Sequence"
#~ msgstr "批准顺序"
#~ msgid "Formula"
#~ msgstr "公式"
#~ msgid "Python Expression"
#~ msgstr "Python表达式"

View File

@ -0,0 +1,82 @@
# Copyright 2025 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade
@openupgrade.migrate()
def migrate(cr, version):
# Workaround to execute the migration script without errors
# see https://github.com/odoo/odoo/blob/2a839ef1ed09c36f27ce7536ca3052d9f65ceed9/odoo/modules/migration.py#L252-L256
env = cr
env.cr.execute(
"""
SELECT imf.model
FROM ir_model_fields AS imf
WHERE imf.name = 'review_ids'
AND imf.ttype = 'one2many'
AND imf.model != 'tier.validation'
"""
)
for (model_name,) in env.cr.fetchall():
table_name = model_name.replace(".", "_")
# validation_status column
if not openupgrade.column_exists(env.cr, table_name, "validation_status"):
openupgrade.logged_query(
env.cr,
f"""
ALTER TABLE {table_name}
ADD COLUMN IF NOT EXISTS validation_status VARCHAR
""",
)
openupgrade.logged_query(
env.cr,
f"""
UPDATE {table_name} SET validation_status = 'no'
""",
)
openupgrade.logged_query(
env.cr,
f"""
UPDATE {table_name} SET validation_status = 'rejected'
WHERE validation_status = 'no' AND id IN (
SELECT DISTINCT(tr.res_id)
FROM tier_review AS tr
WHERE tr.model = '{model_name}' AND tr.status = 'rejected'
)
""",
)
openupgrade.logged_query(
env.cr,
f"""
UPDATE {table_name} SET validation_status = 'pending'
WHERE validation_status = 'no' AND id IN (
SELECT DISTINCT(tr.res_id)
FROM tier_review AS tr
WHERE tr.model = '{model_name}' AND tr.status = 'pending'
)
""",
)
openupgrade.logged_query(
env.cr,
f"""
UPDATE {table_name} SET validation_status = 'waiting'
WHERE validation_status = 'no' AND id IN (
SELECT DISTINCT(tr.res_id)
FROM tier_review AS tr
WHERE tr.model = '{model_name}' AND tr.status = 'waiting'
)
""",
)
openupgrade.logged_query(
env.cr,
f"""
UPDATE {table_name} SET validation_status = 'validated'
WHERE validation_status = 'no' AND id IN (
SELECT DISTINCT(tr.res_id)
FROM tier_review AS tr
WHERE tr.model = '{model_name}'
AND tr.status IN ('approved', 'forwarded')
)
""",
)

View File

@ -0,0 +1,8 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import tier_definition
from . import tier_validation_exception
from . import tier_review
from . import tier_validation
from . import res_users
from . import res_config_settings

View File

@ -0,0 +1,14 @@
# Copyright 2021 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
# Activate me back when modules are migrated
module_base_tier_validation_formula = fields.Boolean(string="Tier Formula")
# module_base_tier_validation_forward = fields.Boolean("Tier Forward & Backward")
# module_base_tier_validation_server_action = fields.Boolean("Tier Server Action")
# module_base_tier_validation_report = fields.Boolean("Tier Reports")

View File

@ -0,0 +1,55 @@
# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models, modules
class Users(models.Model):
_inherit = "res.users"
review_ids = fields.Many2many(string="Reviews", comodel_name="tier.review")
@api.model
def review_user_count(self):
user_reviews = {}
user = self.env.user
domain = [
("status", "=", "pending"),
("can_review", "=", True),
("id", "in", user.review_ids.ids),
]
review_groups = self.env["tier.review"]._read_group(
domain=domain,
groupby=["model"],
aggregates=["id:recordset"],
)
for model, tier_review in review_groups:
Model = self.env[model]
# Skip Models not having Tier Validation enabled (example: was unistalled)
if tier_review and hasattr(Model, "can_review"):
records_domain = [
("id", "in", tier_review.mapped("res_id")),
("validation_status", "!=", "rejected"),
("can_review", "=", True),
]
records = (
Model.with_user(user)
.with_context(active_test=False)
.search(records_domain)
)
# Excludes any cancelled records depending on the structure of the model
if Model._state_field in Model._fields:
records = records.filtered(
lambda x: x[x._state_field] != x._cancel_state
)
if records:
user_reviews[model] = {
"id": records[0].id,
"name": Model._description,
"model": model,
"active_field": "active" in Model._fields,
"icon": modules.module.get_module_icon(Model._original_module),
"type": "tier_review",
"pending_count": len(records),
}
return list(user_reviews.values())

View File

@ -0,0 +1,166 @@
# Copyright 2017 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class TierDefinition(models.Model):
_name = "tier.definition"
_description = "Tier Definition"
@api.model
def _get_default_name(self):
return self.env._("New Tier Validation")
@api.model
def _get_tier_validation_model_names(self):
res = []
return res
name = fields.Char(
string="Description",
required=True,
default=lambda self: self._get_default_name(),
translate=True,
)
model_id = fields.Many2one(
comodel_name="ir.model",
string="Referenced Model",
domain=lambda self: [("model", "in", self._get_tier_validation_model_names())],
)
model = fields.Char(related="model_id.model", index=True, store=True)
review_type = fields.Selection(
string="Validated by",
default="individual",
selection=[
("individual", "Specific user"),
("group", "Any user in a specific group"),
("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_group_id = fields.Many2one(
comodel_name="res.groups", string="Reviewer group"
)
reviewer_field_id = fields.Many2one(
comodel_name="ir.model.fields",
string="Reviewer field",
domain="[('id', 'in', valid_reviewer_field_ids)]",
)
valid_reviewer_field_ids = fields.One2many(
comodel_name="ir.model.fields",
compute="_compute_domain_reviewer_field",
)
definition_type = fields.Selection(
string="Definition", selection=[("domain", "Domain")], default="domain"
)
definition_domain = fields.Char()
active = fields.Boolean(default=True)
sequence = fields.Integer(default=30)
company_id = fields.Many2one(
comodel_name="res.company",
string="Company",
default=lambda self: self.env.company,
)
notify_on_create = fields.Boolean(
string="Notify Reviewers on Creation",
help="If set, all possible reviewers will be notified by email when "
"this definition is triggered.",
)
notify_on_pending = fields.Boolean(
string="Notify Reviewers on reaching Pending",
help="If set, all possible reviewers will be notified by email when "
"this status is reached."
"Usefull in an Approve by sequence scenario. "
"An notification request to review is sent out when it's their turn to review.",
)
notify_on_accepted = fields.Boolean(
string="Notify Reviewers on Accepted",
help="If set, reviewers will be notified by email when a review related "
"to this definition is accepted.",
)
notify_on_rejected = fields.Boolean(
string="Notify Reviewers on Rejected",
help="If set, reviewers will be notified by email when a review related "
"to this definition is rejected.",
)
notify_on_restarted = fields.Boolean(
string="Notify Reviewers on Restarted",
help="If set, reviewers will be notified by email when a reviews related "
"to this definition are restarted.",
)
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(
string="Approve by sequence",
default=False,
help="Approval order by the specified sequence number",
)
approve_sequence_bypass = fields.Boolean(
help="Bypassed (auto validated), if previous tier was validated "
"by same reviewer",
)
@api.onchange("review_type")
def onchange_review_type(self):
self.reviewer_id = None
self.reviewer_group_id = None
@api.depends("review_type", "model_id")
def _compute_domain_reviewer_field(self):
models = self.mapped("model")
IrModelFields = self.env["ir.model.fields"].sudo()
valid_reviewer_fields = dict(
IrModelFields._read_group(
domain=[
("model", "in", models),
"|",
("relation", "=", "res.users"),
("relation", "=", "res.groups"),
],
groupby=["model"],
aggregates=["id:array_agg"],
)
)
for rec in self:
rec.valid_reviewer_field_ids = valid_reviewer_fields.get(
rec.model, IrModelFields
)
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()

View File

@ -0,0 +1,208 @@
# Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import logging
import pytz
from odoo import api, fields, models
from odoo.exceptions import ValidationError
_logger = logging.getLogger(__name__)
class TierReview(models.Model):
_name = "tier.review"
_description = "Tier Review"
name = fields.Char(related="definition_id.name")
status = fields.Selection(
[
("waiting", "Waiting"),
("pending", "Pending"),
("rejected", "Rejected"),
("approved", "Approved"),
],
default="waiting",
)
model = fields.Char(string="Related Document Model", index=True)
res_id = fields.Many2oneReference(
string="Related Document ID",
index=True,
model_field="model",
)
definition_id = fields.Many2one(comodel_name="tier.definition")
company_id = fields.Many2one(
related="definition_id.company_id",
store=True,
)
review_type = fields.Selection(related="definition_id.review_type")
reviewer_id = fields.Many2one(related="definition_id.reviewer_id")
reviewer_group_id = fields.Many2one(related="definition_id.reviewer_group_id")
reviewer_field_id = fields.Many2one(related="definition_id.reviewer_field_id")
reviewer_ids = fields.Many2many(
string="Reviewers",
comodel_name="res.users",
compute="_compute_reviewer_ids",
store=True,
)
display_status = fields.Char(compute="_compute_display_status")
sequence = fields.Integer(string="Tier")
todo_by = fields.Char(compute="_compute_todo_by", store=True)
done_by = fields.Many2one(comodel_name="res.users")
requested_by = fields.Many2one(comodel_name="res.users")
reviewed_date = fields.Datetime(string="Validation Date")
reviewed_formated_date = fields.Char(
string="Validation Formated Date", compute="_compute_reviewed_formated_date"
)
has_comment = fields.Boolean(related="definition_id.has_comment")
comment = fields.Char(string="Comments")
can_review = fields.Boolean(
compute="_compute_can_review",
store=True,
help="""Can review will be marked if the review is pending and the
approve sequence has been achieved""",
)
approve_sequence = fields.Boolean(related="definition_id.approve_sequence")
approve_sequence_bypass = fields.Boolean(
related="definition_id.approve_sequence_bypass"
)
last_reminder_date = fields.Datetime(readonly=True)
@api.depends("status")
def _compute_display_status(self):
"""
Compute the display status based on the current status value to get the
translated status value.
"""
selection = self.fields_get(["status"])["status"]["selection"]
selection_dict = dict(selection)
for record in self:
record.display_status = selection_dict[record.status]
@api.depends_context("tz")
def _compute_reviewed_formated_date(self):
timezone = self._context.get("tz") or self.env.user.partner_id.tz or "UTC"
for review in self:
if not review.reviewed_date:
review.reviewed_formated_date = False
continue
reviewed_date_utc = pytz.timezone("UTC").localize(review.reviewed_date)
reviewed_date_tz = reviewed_date_utc.astimezone(pytz.timezone(timezone))
review.reviewed_formated_date = reviewed_date_tz.replace(tzinfo=None)
@api.depends("definition_id.approve_sequence")
def _compute_can_review(self):
reviews = self.filtered(lambda rev: rev.status in ["waiting", "pending"])
if reviews:
# get minimum sequence of all to prevent jumps
next_seq = min(reviews.mapped("sequence"))
for record in reviews:
# if approve by sequence, check sequence has been reached
if record.approve_sequence:
if record.sequence == next_seq:
record.status = "pending"
# if there is no approval sequence go directly to pending state
elif not record.approve_sequence:
record.status = "pending"
if record.status == "pending":
if record.definition_id.notify_on_pending:
record._notify_pending_status(record)
for record in self:
record.can_review = record._can_review_value()
def _can_review_value(self):
if self.status not in ("pending", "waiting"):
return False
if not self.approve_sequence:
return True
resource = self.env[self.model].browse(self.res_id)
reviews = resource.review_ids.filtered(lambda r: r.status == "pending")
if not reviews:
return True
sequence = min(reviews.mapped("sequence"))
return self.sequence == sequence
@api.model
def _get_reviewer_fields(self):
return ["reviewer_id", "reviewer_group_id", "reviewer_group_id.user_ids"]
@api.depends(lambda self: self._get_reviewer_fields())
def _compute_reviewer_ids(self):
for rec in self:
rec.reviewer_ids = rec._get_reviewers()
@api.depends("reviewer_ids")
def _compute_todo_by(self):
"""Show by group or by abbrev list of names"""
num_show = 3 # Max number of users to display
for rec in self:
todo_by = False
if rec.reviewer_group_id:
todo_by = self.env._("Group %s", rec.reviewer_group_id.name)
else:
todo_by = ", ".join(rec.reviewer_ids[:num_show].mapped("display_name"))
num_users = len(rec.reviewer_ids)
if num_users > num_show:
todo_by = f"{todo_by} (and {num_users - num_show} more)"
rec.todo_by = todo_by
def _get_reviewers(self):
if self.reviewer_id or self.reviewer_group_id.user_ids:
return self.reviewer_id + self.reviewer_group_id.user_ids
if self.reviewer_field_id:
resource = self.env[self.model].browse(self.res_id)
reviewer_field = getattr(resource, self.reviewer_field_id.name, False)
if reviewer_field:
if reviewer_field._name == "res.groups":
return reviewer_field.users
elif reviewer_field._name == "res.users":
return reviewer_field
else:
raise ValidationError(
self.env._(
"Validation reviewer field "
"should be of the appropriate type"
)
)
return self.env["res.users"]
def _notify_pending_status(self, review_ids):
"""Method to call and reuse abstract notification method"""
resource = self.env[self.model].browse(self.res_id)
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 self.env._("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 = f"Could not send reminder for record {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,
)

View File

@ -0,0 +1,952 @@
# Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
# Copyright 2024 Moduon Team (https://www.moduon.team)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from ast import literal_eval
from lxml import etree
from psycopg2.extensions import AsIs
from odoo import api, fields, models
from odoo.exceptions import ValidationError
from odoo.tools import SQL
from odoo.tools.misc import frozendict
BASE_EXCEPTION_FIELDS = [
"message_follower_ids",
"access_token",
"message_main_attachment_id",
]
class TierValidation(models.AbstractModel):
_name = "tier.validation"
_description = "Tier Validation (abstract)"
_tier_validation_buttons_xpath = "/form/header/button[last()]"
_tier_validation_manual_config = True
_tier_validation_state_field_is_computed = False
_tier_validation_company_field = "company_id"
_state_field = "state"
_state_from = ["draft"]
_state_to = ["confirmed"]
_cancel_state = "cancel"
review_ids = fields.One2many(
comodel_name="tier.review",
inverse_name="res_id",
string="Validations",
domain=lambda self: [("model", "=", self._name)],
auto_join=True,
)
# TODO: Delete in v19 in favor of validation_status field
validated = fields.Boolean(
compute="_compute_validated_rejected", search="_search_validated"
)
to_validate_message = fields.Html(compute="_compute_to_validate_message")
validated_message = fields.Html(compute="_compute_validated_message")
need_validation = fields.Boolean(compute="_compute_need_validation")
# TODO: Delete in v19 in favor of validation_status field
rejected = fields.Boolean(
compute="_compute_validated_rejected", search="_search_rejected"
)
rejected_message = fields.Html(compute="_compute_rejected_message")
validation_status = fields.Selection(
selection=[
("no", "Without validation"),
("waiting", "Waiting"),
("pending", "Pending"),
("rejected", "Rejected"),
("validated", "Validated"),
],
default="no",
compute="_compute_validation_status",
store=True,
)
reviewer_ids = fields.Many2many(
string="Reviewers",
comodel_name="res.users",
compute="_compute_reviewer_ids",
search="_search_reviewer_ids",
)
can_review = fields.Boolean(
compute="_compute_can_review", search="_search_can_review"
)
has_comment = fields.Boolean(
compute="_compute_has_comment",
help="If set, Allow the reviewer to leave a comment on the review.",
)
next_review = fields.Char(compute="_compute_next_review")
hide_reviews = fields.Boolean(compute="_compute_hide_reviews")
def _compute_has_comment(self):
for rec in self:
has_comment = rec.review_ids.filtered(
lambda r: r.status in ("waiting", "pending")
and self.env.user in r.reviewer_ids
).mapped("has_comment")
rec.has_comment = True in has_comment
def _get_sequences_to_approve(self, user):
all_reviews = self.review_ids.filtered(
lambda r: r.status in ("waiting", "pending")
)
my_reviews = all_reviews.filtered(lambda r: user in r.reviewer_ids)
# Include all my_reviews with approve_sequence = False
sequences = my_reviews.filtered(lambda r: not r.approve_sequence).mapped(
"sequence"
)
# Include only my_reviews with approve_sequence = True
approve_sequences = my_reviews.filtered("approve_sequence").mapped("sequence")
if approve_sequences:
my_sequence = min(approve_sequences)
min_sequence = min(all_reviews.mapped("sequence"))
if my_sequence <= min_sequence:
sequences.append(my_sequence)
return sequences
@api.depends_context("uid")
@api.depends("review_ids.status")
def _compute_can_review(self):
for rec in self:
rec.can_review = rec._get_sequences_to_approve(self.env.user)
@api.model
def _search_can_review(self, operator, value):
domain = [
("review_ids.reviewer_ids", "=", self.env.user.id),
("review_ids.status", "in", ["pending", "waiting"]),
("review_ids.can_review", "=", True),
("validation_status", "!=", "rejected"),
]
if "active" in self._fields:
domain.append(("active", "in", [True, False]))
res_ids = self.search(domain).filtered("can_review").ids
return [("id", "in", res_ids)]
@api.depends("review_ids")
def _compute_reviewer_ids(self):
for rec in self:
rec.reviewer_ids = rec.review_ids.filtered(
lambda r: r.status in ("waiting", "pending")
).mapped("reviewer_ids")
# TODO: delete in 19.0 migration in favor of validation_status field
@api.model
def _search_validated(self, operator, value):
assert operator in ("=", "!="), "Invalid domain operator"
assert value in (True, False), "Invalid domain value"
operator_equal = (operator == "=" and value) or (operator == "!=" and not value)
return [("validation_status", operator_equal and "=" or "!=", "validated")]
# TODO: delete in 19.0 migration in favor of validation_status field
@api.model
def _search_rejected(self, operator, value):
assert operator in ("=", "!="), "Invalid domain operator"
assert value in (True, False), "Invalid domain value"
operator_equal = (operator == "=" and value) or (operator == "!=" and not value)
return [("validation_status", operator_equal and "=" or "!=", "rejected")]
@api.model
def _search_reviewer_ids(self, operator, value):
model_operator = "in"
if operator == "=" and value in ("[]", False):
# Search for records that have not yet been through a validation
# process.
operator = "!="
model_operator = "not in"
reviews = self.env["tier.review"].search(
[
("model", "=", self._name),
("reviewer_ids", operator, value),
("can_review", "=", True),
]
)
return [("id", model_operator, list(set(reviews.mapped("res_id"))))]
def _get_to_validate_message_name(self):
return self._description
def _get_to_validate_message(self):
return f"""<i class="fa fa-info-circle"></i> {self.env._(
"This %s needs to be validated",
self._get_to_validate_message_name()
)}"""
def _get_validated_message(self):
msg = f"""<i class="fa fa-thumbs-up"></i> {self.env._(
"Operation has been <b>validated</b>!"
)}"""
return self.validation_status == "validated" and msg or ""
def _get_rejected_message(self):
msg = f"""<i class="fa fa-thumbs-down"></i> {self.env._(
"Operation has been <b>rejected</b>."
)}"""
return self.validation_status == "rejected" and msg or ""
# TODO: delete in 19.0 migration in favor of validation_status field
@api.depends("validation_status")
def _compute_validated_rejected(self):
for rec in self:
for field in ("validated", "rejected"):
rec[field] = rec.validation_status == field
@api.depends("validation_status")
def _compute_to_validate_message(self):
for rec in self:
rec.to_validate_message = rec._get_to_validate_message()
def _validated_states(self):
"""Override for different validation policy."""
return ["approved"]
@api.depends("validation_status")
def _compute_validated_message(self):
for rec in self:
rec.validated_message = rec._get_validated_message()
def _rejected_states(self):
"""Override for different rejected policy."""
return ["rejected"]
@api.depends("validation_status")
def _compute_rejected_message(self):
for rec in self:
rec.rejected_message = rec._get_rejected_message()
@api.depends("review_ids", "review_ids.status")
def _compute_validation_status(self):
validated_states = self._validated_states()
rejected_states = self._rejected_states()
for item in self:
reviews = item.review_ids
any_rejected = any(reviews.filtered(lambda x: x.status in rejected_states))
any_pending = any(reviews.filtered(lambda x: x.status == "pending"))
any_waiting = any(item.review_ids.filtered(lambda x: x.status == "waiting"))
if reviews and all(x.status in validated_states for x in reviews):
item.validation_status = "validated"
elif any_rejected:
item.validation_status = "rejected"
elif any_pending:
item.validation_status = "pending"
elif any_waiting:
item.validation_status = "waiting"
else:
item.validation_status = "no"
def _compute_next_review(self):
for rec in self:
review = rec.review_ids.sorted("sequence").filtered(
lambda x: x.status == "pending"
)[:1]
rec.next_review = review and self.env._("Next: %s", review.name or "")
def _compute_hide_reviews(self):
for rec in self:
rec.hide_reviews = rec[self._state_field] not in self._state_from
def _compute_need_validation(self):
for rec in self:
if isinstance(rec.id, api.NewId):
rec.need_validation = False
continue
tiers = (
self.env["tier.definition"]
.with_context(active_test=True)
.search(
[
("model", "=", self._name),
("company_id", "in", [False] + rec._get_company().ids),
]
)
)
valid_tiers = any([rec.evaluate_tier(tier) for tier in tiers])
rec.need_validation = (
not rec.review_ids and valid_tiers and rec._check_state_from_condition()
)
def evaluate_tier(self, tier):
if tier.definition_domain:
domain = literal_eval(tier.definition_domain)
return self.filtered_domain(domain)
else:
return self
@api.model
def _get_validation_exceptions(self, extra_domain=None, add_base_exceptions=True):
"""Return Tier Validation Exception field names that matchs custom domain."""
exception_fields = (
self.env["tier.validation.exception"]
.sudo()
.search(
[
("model_name", "=", self._name),
("company_id", "in", [False] + self._get_company().ids),
"|",
("group_ids", "in", self.env.user.group_ids.ids),
("group_ids", "=", False),
*(extra_domain or []),
]
)
.mapped("field_ids.name")
)
if add_base_exceptions:
exception_fields += BASE_EXCEPTION_FIELDS
return list(set(exception_fields))
@api.model
def _get_all_validation_exceptions(self):
"""Extend for more field exceptions to be written when on the entire
validation process."""
return self._get_validation_exceptions()
@api.model
def _get_under_validation_exceptions(self):
"""Extend for more field exceptions to be written under validation."""
return self._get_validation_exceptions(
extra_domain=[("allowed_to_write_under_validation", "=", True)]
)
@api.model
def _get_after_validation_exceptions(self):
"""Extend for more field exceptions to be written after validation."""
return self._get_validation_exceptions(
extra_domain=[("allowed_to_write_after_validation", "=", True)]
)
def _check_allow_write_under_validation(self, vals):
"""Allow to add exceptions for fields that are allowed to be written
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()
for val in vals:
if val not in exceptions:
return False
return True
def _check_allow_write_after_validation(self, vals):
"""Allow to add exceptions for fields that are allowed to be written
even when the record is after validation."""
exceptions = self._get_after_validation_exceptions()
for val in vals:
if val not in exceptions:
return False
return True
def _get_fields_to_write_validation(self, vals, records_exception_function):
"""Not allowed fields to write when validation depending
on the given function."""
exceptions = records_exception_function()
not_allowed_fields = []
for val in vals:
if val not in exceptions:
not_allowed_fields.append(val)
if not not_allowed_fields:
return []
not_allowed_field_names, allowed_field_names = [], []
for fld_name, fld_data in self.fields_get(
not_allowed_fields + exceptions
).items():
if fld_name in not_allowed_fields:
not_allowed_field_names.append(fld_data["string"])
else:
allowed_field_names.append(fld_data["string"])
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):
self._tier_validation_check_state_on_write(vals)
self._tier_validation_check_write_allowed(vals)
self._tier_validation_check_write_remove_reviews(vals)
return super().write(vals)
def _write_multi(self, vals_list):
for rec, vals in zip(self, vals_list, strict=False):
if rec._tier_validation_state_field_is_computed:
rec._tier_validation_check_state_on_write(vals)
rec._tier_validation_check_write_remove_reviews(vals)
return super()._write_multi(vals_list)
def _tier_validation_get_current_state_value(self):
"""Get the current value from the cache or the database.
If the field is set in a computed method, the value in the cache will
already be the updated value, so we need to revert to the raw data.
"""
self.ensure_one()
if self._tier_validation_state_field_is_computed and isinstance(self.id, int):
self.env.cr.execute(
SQL(
"select %(field)s from %(table)s where id = %(res_id)s",
field=AsIs(self._state_field),
table=AsIs(self._table),
res_id=self.id,
)
)
rows = self.env.cr.fetchall()
if rows:
return rows[0][0]
return self[self._state_field]
def _tier_validation_check_state_on_write(self, vals):
for rec in self:
if rec._check_state_conditions(vals):
if rec.need_validation:
# try to validate operation
reviews = rec.request_validation()
rec._validate_tier(reviews)
if rec.validation_status != "validated":
pending_reviews = reviews.filtered(
lambda r: r.status == "pending"
).mapped("name")
raise ValidationError(
self.env._(
"This action needs to be validated for at least "
"one record. Reviews pending:\n - %s "
"\nPlease request a validation.",
"\n - ".join(pending_reviews),
)
)
if rec.review_ids and rec.validation_status != "validated":
raise ValidationError(
self.env._(
"A validation process is still open for at least "
"one record."
)
)
def _tier_validation_check_write_allowed(self, vals):
for rec in self:
# Write under validation
if (
rec.review_ids
and rec._check_tier_state_transition(vals)
and not rec._check_allow_write_under_validation(vals)
and not rec._context.get("skip_validation_check")
):
(
allowed_fields,
not_allowed_fields,
) = rec._get_fields_to_write_validation(
vals, rec._get_under_validation_exceptions
)
not_allowed_fields_str = "\n- ".join(not_allowed_fields)
allowed_fields_str = "\n- ".join(allowed_fields)
raise ValidationError(
self.env._(
"You are not allowed to write those fields under validation.\n"
"- %(not_allowed_fields_str)s\n\n"
"Only those fields can be modified:\n- %(allowed_fields_str)s",
not_allowed_fields_str=not_allowed_fields_str,
allowed_fields_str=allowed_fields_str,
)
)
# Write after validation. Check only if Tier Validation Exception is created
if (
rec._get_validation_exceptions(add_base_exceptions=False)
and rec.validation_status == "validated"
and rec._tier_validation_get_current_state_value()
in (self._state_to + [self._cancel_state])
and not rec._check_allow_write_after_validation(vals)
and not rec._context.get("skip_validation_check")
):
(
allowed_fields,
not_allowed_fields,
) = rec._get_fields_to_write_validation(
vals, rec._get_after_validation_exceptions
)
not_allowed_fields_str = "\n- ".join(not_allowed_fields)
allowed_fields_str = "\n- ".join(allowed_fields)
raise ValidationError(
self.env._(
"You are not allowed to write those fields after validation.\n"
"- %(not_allowed_fields_str)s\n\n"
"Only those fields can be modified:\n- %(allowed_fields_str)s",
not_allowed_fields_str=not_allowed_fields_str,
allowed_fields_str=allowed_fields_str,
)
)
def _tier_validation_check_write_remove_reviews(self, vals):
for rec in self:
if rec._allow_to_remove_reviews(vals):
rec.mapped("review_ids").unlink()
def _allow_to_remove_reviews(self, values):
"""Method for deciding whether the elimination of revisions is necessary."""
self.ensure_one()
state_to = values.get(self._state_field)
if not state_to:
return False
state_from = self._tier_validation_get_current_state_value()
# If you change to _cancel_state
if state_to in (self._cancel_state):
return True
# If it is changed to _state_from and it was not in _state_from
if state_to in self._state_from and state_from not in self._state_from:
return True
return False
def _check_state_from_condition(self):
return self.env.context.get("skip_check_state_condition") or (
self._state_field in self._fields
and self._tier_validation_get_current_state_value() in self._state_from
)
def _check_state_conditions(self, vals):
self.ensure_one()
return (
self._check_state_from_condition()
and vals.get(self._state_field) in self._state_to
)
def _validate_tier(self, tiers=False):
self.ensure_one()
tier_reviews = tiers or self.review_ids
waiting_reviews = tier_reviews.filtered(
lambda r: r.status == "waiting"
or r.approve_sequence_bypass
and self.env.user in r.reviewer_ids
)
if waiting_reviews:
waiting_reviews.write(
{
"status": "pending",
}
)
user_reviews = tier_reviews.filtered(
lambda r: r.status == "pending" and (self.env.user in r.reviewer_ids)
)
user_reviews.write(
{
"status": "approved",
"done_by": self.env.user.id,
"reviewed_date": fields.Datetime.now(),
}
)
reviews_to_notify = user_reviews.filtered(
lambda r: r.definition_id.notify_on_accepted
)
# We need to notify all pending users if there is approve sequence
if tier_reviews and any(review.approve_sequence for review in tier_reviews):
reviews_to_notify = self.review_ids.filtered(
lambda r: r.status in ("waiting", "pending")
and r.definition_id.notify_on_accepted
)
# If there are approve sequence, only the following should be
# considered to notify
if reviews_to_notify and any(
review.approve_sequence for review in reviews_to_notify
):
reviews_to_notify = reviews_to_notify.filtered(
lambda x: x.approve_sequence
)[0]
if reviews_to_notify:
subscribe = "message_subscribe"
if hasattr(self, subscribe):
getattr(self, subscribe)(
partner_ids=reviews_to_notify.mapped("reviewer_ids")
.mapped("partner_id")
.ids,
subtype_ids=self.env.ref(
self._get_accepted_notification_subtype()
).ids,
)
for review in reviews_to_notify:
rec = self.env[review.model].browse(review.res_id)
rec._notify_accepted_reviews()
def _get_requested_notification_subtype(self):
return "base_tier_validation.mt_tier_validation_requested"
def _get_accepted_notification_subtype(self):
return "base_tier_validation.mt_tier_validation_accepted"
def _get_rejected_notification_subtype(self):
return "base_tier_validation.mt_tier_validation_rejected"
def _get_restarted_notification_subtype(self):
return "base_tier_validation.mt_tier_validation_restarted"
def _notify_accepted_reviews(self):
post = "message_post"
if hasattr(self, post):
# Notify state change
getattr(self.sudo(), post)(
subtype_xmlid=self._get_accepted_notification_subtype(),
body=self._notify_accepted_reviews_body(),
)
def _notify_accepted_reviews_body(self):
has_comment = self.review_ids.filtered(
lambda r: (self.env.user in r.reviewer_ids) and r.comment
)
if has_comment:
comment = has_comment.mapped("comment")[0]
return self.env._("A review was accepted. (%s)", comment)
return self.env._("A review was accepted")
def _add_comment(self, validate_reject, reviews):
wizard = self.env.ref("base_tier_validation.view_comment_wizard")
return {
"name": self.env._("Comment"),
"type": "ir.actions.act_window",
"view_mode": "form",
"res_model": "comment.wizard",
"views": [(wizard.id, "form")],
"view_id": wizard.id,
"target": "new",
"context": {
"default_res_id": self.id,
"default_res_model": self._name,
"default_review_ids": reviews.ids,
"default_validate_reject": validate_reject,
},
}
def validate_tier(self):
self.ensure_one()
sequences = self._get_sequences_to_approve(self.env.user)
reviews = self.review_ids.filtered(
lambda x: x.sequence in sequences or x.approve_sequence_bypass
)
if self.has_comment:
user_reviews = reviews.filtered(
lambda r: r.status == "pending" and (self.env.user in r.reviewer_ids)
)
return self._add_comment("validate", user_reviews)
self._validate_tier(reviews)
self._update_counter({"review_deleted": True})
def reject_tier(self):
self.ensure_one()
sequences = self._get_sequences_to_approve(self.env.user)
reviews = self.review_ids.filtered(lambda x: x.sequence in sequences)
if self.has_comment:
return self._add_comment("reject", reviews)
self._rejected_tier(reviews)
self._update_counter({"review_deleted": True})
def _notify_rejected_review_body(self):
has_comment = self.review_ids.filtered(
lambda r: (self.env.user in r.reviewer_ids) and r.comment
)
if has_comment:
comment = has_comment.mapped("comment")[0]
return self.env._(
"A review was rejected by %(user)s. (%(comment)s)",
user=self.env.user.name,
comment=comment,
)
return self.env._("A review was rejected by %s.", self.env.user.name)
def _notify_rejected_review(self):
post = "message_post"
if hasattr(self, post):
# Notify state change
getattr(self.sudo(), post)(
subtype_xmlid=self._get_rejected_notification_subtype(),
body=self._notify_rejected_review_body(),
)
def _rejected_tier(self, tiers=False):
self.ensure_one()
tier_reviews = tiers or self.review_ids
user_reviews = tier_reviews.filtered(
lambda r: r.status in ("waiting", "pending")
and self.env.user in r.reviewer_ids
)
user_reviews.write(
{
"status": "rejected",
"done_by": self.env.user.id,
"reviewed_date": fields.Datetime.now(),
}
)
reviews_to_notify = user_reviews.filtered(
lambda r: r.definition_id.notify_on_rejected
)
# We need to notify all pending users if there is approve sequence
if tier_reviews and any(review.approve_sequence for review in tier_reviews):
reviews_to_notify = self.review_ids.filtered(
lambda r: r.status == "pending" and r.definition_id.notify_on_rejected
)
# If there are approve sequence, only the following should be
# considered to notify
if reviews_to_notify and any(
review.approve_sequence for review in reviews_to_notify
):
reviews_to_notify = reviews_to_notify.filtered(
lambda x: x.approve_sequence
)[0]
if reviews_to_notify:
subscribe = "message_subscribe"
if hasattr(self, subscribe):
getattr(self, subscribe)(
partner_ids=reviews_to_notify.mapped("reviewer_ids")
.mapped("partner_id")
.ids,
subtype_ids=self.env.ref(
self._get_rejected_notification_subtype()
).ids,
)
for review in reviews_to_notify:
rec = self.env[review.model].browse(review.res_id)
rec._notify_rejected_review()
def _notify_created_review_body(self):
return self.env._(
"A record to be reviewed has been created by %s.",
self.env.user.name,
)
def _notify_requested_review_body(self):
return self.env._("A review has been requested by %s.", self.env.user.name)
def _notify_review_requested(self, tier_reviews):
"""method to notify when tier validation is created"""
subscribe = "message_subscribe"
post = "message_post"
if hasattr(self, post) and hasattr(self, subscribe):
for rec in self.sudo():
users_to_notify = tier_reviews.filtered(
lambda r, x=rec: r.definition_id.notify_on_create
and r.res_id == x.id
).mapped("reviewer_ids")
# Subscribe reviewers and notify
if len(users_to_notify) > 0:
getattr(rec, subscribe)(
partner_ids=users_to_notify.mapped("partner_id").ids,
subtype_ids=self.env.ref(
self._get_requested_notification_subtype()
).ids,
)
getattr(rec, post)(
subtype_xmlid=self._get_requested_notification_subtype(),
body=rec._notify_created_review_body(),
)
def _prepare_tier_review_vals(self, definition, sequence):
return {
"model": self._name,
"res_id": self.id,
"definition_id": definition.id,
"requested_by": self.env.uid,
"sequence": sequence,
}
@api.model
def _get_company(self):
company_id = self.env.company
if (
self
and self._tier_validation_company_field in self.env[self._name]
and self[self._tier_validation_company_field]
):
company_id = self[self._tier_validation_company_field]
return company_id
def request_validation(self):
td_obj = self.env["tier.definition"]
tr_obj = self.env["tier.review"]
vals_list = []
for rec in self:
if rec._check_state_from_condition() and rec.need_validation:
tier_definitions = td_obj.search(
[
("model", "=", self._name),
("company_id", "in", [False] + rec._get_company().ids),
],
order="sequence desc",
)
sequence = 0
for td in tier_definitions:
if rec.evaluate_tier(td):
sequence += 1
vals_list.append(rec._prepare_tier_review_vals(td, sequence))
created_trs = tr_obj.create(vals_list)
if any(self.mapped("can_review")):
self._update_counter({"review_created": True})
self._notify_review_requested(created_trs)
return created_trs
def _notify_restarted_review_body(self):
return self.env._("The review has been reset by %s.", self.env.user.name)
def _notify_restarted_review(self):
post = "message_post"
if hasattr(self, post):
getattr(self.sudo(), post)(
subtype_xmlid=self._get_restarted_notification_subtype(),
body=self._notify_restarted_review_body(),
)
def restart_validation(self):
for rec in self:
partners_to_notify_ids = False
if getattr(rec, self._state_field) in self._state_from:
to_update_counter = (
rec.mapped("review_ids").filtered(
lambda a: a.status in ("waiting", "pending")
)
and True
or False
)
reviews_to_notify = rec.review_ids.filtered(
lambda r: r.definition_id.notify_on_restarted
)
if reviews_to_notify:
partners_to_notify_ids = (
reviews_to_notify.mapped("reviewer_ids")
.mapped("partner_id")
.ids
)
can_review = rec.can_review
rec.mapped("review_ids").unlink()
if to_update_counter and can_review:
self._update_counter({"review_deleted": True})
if partners_to_notify_ids:
subscribe = "message_subscribe"
reviews_to_notify = rec.review_ids.filtered(
lambda r: r.definition_id.notify_on_restarted
)
if hasattr(self, subscribe):
getattr(self, subscribe)(
partner_ids=partners_to_notify_ids,
subtype_ids=self.env.ref(
self._get_restarted_notification_subtype()
).ids,
)
rec._notify_restarted_review()
@api.model
def _update_counter(self, review_counter):
self.review_ids._compute_can_review()
channel = "base.tier.validation/updated"
self.env.user.partner_id._bus_send(channel, review_counter)
def unlink(self):
self.mapped("review_ids").unlink()
return super().unlink()
def _add_tier_validation_buttons(self, node, params):
str_element = self.env["ir.qweb"]._render(
"base_tier_validation.tier_validation_buttons", params
)
new_node = etree.fromstring(str_element)
return new_node
def _add_tier_validation_label(self, node, params):
str_element = self.env["ir.qweb"]._render(
"base_tier_validation.tier_validation_label", params
)
new_node = etree.fromstring(str_element)
return new_node
def _add_tier_validation_reviews(self, node, params):
str_element = self.env["ir.qweb"]._render(
"base_tier_validation.tier_validation_reviews", params
)
new_node = etree.fromstring(str_element)
return new_node
def _get_tier_validation_readonly_domain(self):
return "bool(review_ids)"
@api.model
def get_view(self, view_id=None, view_type="form", **options):
res = super().get_view(view_id=view_id, view_type=view_type, **options)
View = self.env["ir.ui.view"]
if view_type == "form" and not self._tier_validation_manual_config:
doc = etree.XML(res["arch"])
params = {}
all_models = res["models"].copy() # {modelname(str) ➔ fields(tuple)}
for node in doc.xpath(self._tier_validation_buttons_xpath):
# By default, after the last button of the header
# _add_tier_validation_buttons process
new_node = self._add_tier_validation_buttons(node, params)
new_arch, new_models = View.postprocess_and_fields(new_node, self._name)
new_node = etree.fromstring(new_arch)
for new_element in new_node:
node.addnext(new_element)
_merge_view_fields(all_models, new_models)
for node in doc.xpath("/form/sheet"):
# _add_tier_validation_label process
new_node = self._add_tier_validation_label(node, params)
new_arch, new_models = View.postprocess_and_fields(new_node, self._name)
new_node = etree.fromstring(new_arch)
for new_element in new_node:
node.addprevious(new_element)
_merge_view_fields(all_models, new_models)
# _add_tier_validation_reviews process
new_node = self._add_tier_validation_reviews(node, params)
new_arch, new_models = View.postprocess_and_fields(new_node, self._name)
new_node = etree.fromstring(new_arch)
node.append(new_node)
_merge_view_fields(all_models, new_models)
excepted_fields = self._get_all_validation_exceptions()
all_fields = self.fields_get(attributes=("readonly",))
for node in doc.xpath("//field[@name][not(ancestor::field)]"):
field_name = node.attrib.get("name")
if field_name in excepted_fields:
continue
new_r_modifier = self._get_tier_validation_readonly_domain()
old_r_modifier = node.attrib.get("readonly")
if old_r_modifier:
new_r_modifier = f"({old_r_modifier}) or ({new_r_modifier})"
elif all_fields.get(field_name, {}).get("readonly"):
# don't set dynamic readonly attribute for fields
# marked readonly in the ORM (ie computed fields)
# if the view doesn't set one
continue
node.attrib["readonly"] = new_r_modifier
res["arch"] = etree.tostring(doc)
res["models"] = frozendict(all_models)
return res
def _notify_review_available(self, tier_reviews):
"""method to notify when reaching pending"""
subscribe = "message_subscribe"
post = "message_post"
if hasattr(self, post) and hasattr(self, subscribe):
for rec in self.sudo():
users_to_notify = tier_reviews.filtered(
lambda r, x=rec: r.definition_id.notify_on_pending
and r.res_id == x.id
).mapped("reviewer_ids")
# Subscribe reviewers and notify
rec.message_subscribe(
partner_ids=users_to_notify.mapped("partner_id").ids
)
rec.message_post(
subtype_xmlid=self._get_requested_notification_subtype(),
body=rec._notify_requested_review_body(),
)
def _merge_view_fields(all_models: dict, new_models: dict):
"""Merge new_models into all_models. Both are {modelname(str) ➔ fields(tuple)}."""
for model, view_fields in new_models.items():
if model in all_models:
all_models[model] = tuple(set(all_models[model]) | set(view_fields))
else:
all_models[model] = tuple(view_fields)

View File

@ -0,0 +1,94 @@
# Copyright 2024 Moduon Team (https://www.moduon.team)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, exceptions, fields, models
from .tier_validation import BASE_EXCEPTION_FIELDS
class TierValidationException(models.Model):
_name = "tier.validation.exception"
_description = "Tier Validation Exceptions"
@api.model
def _get_tier_validation_model_names(self):
return self.env["tier.definition"]._get_tier_validation_model_names()
name = fields.Char(
required=True,
default="New Tier Validation Exception",
)
model_id = fields.Many2one(
comodel_name="ir.model",
string="Model",
required=True,
ondelete="cascade",
domain=lambda self: [("model", "in", self._get_tier_validation_model_names())],
)
model_name = fields.Char(
related="model_id.model",
string="Model Name",
store=True,
index=True,
)
field_ids = fields.Many2many(
comodel_name="ir.model.fields",
string="Fields",
domain="[('id', 'in', valid_model_field_ids)]",
required=True,
)
valid_model_field_ids = fields.One2many(
comodel_name="ir.model.fields",
compute="_compute_valid_model_field_ids",
)
company_id = fields.Many2one(
comodel_name="res.company",
string="Company",
default=lambda self: self.env.company,
)
allowed_to_write_under_validation = fields.Boolean(
string="Write under Validation",
default=True,
)
allowed_to_write_after_validation = fields.Boolean(
string="Write after Validation",
default=True,
)
group_ids = fields.Many2many(
comodel_name="res.groups",
string="Groups",
help="Allowed groups to use this Tier Validation Exception",
)
@api.depends("model_id")
def _compute_valid_model_field_ids(self):
model_names = self.mapped("model_name")
valid_model_fields = dict(
self.env["ir.model.fields"]
.sudo()
._read_group(
domain=[
("model", "in", model_names),
("name", "not in", BASE_EXCEPTION_FIELDS),
],
groupby=["model"],
aggregates=["id:array_agg"],
)
)
for record in self:
record.valid_model_field_ids = valid_model_fields.get(record.model_name, [])
@api.constrains(
"allowed_to_write_under_validation", "allowed_to_write_after_validation"
)
def _check_allowed_to_write(self):
if (
not self.allowed_to_write_under_validation
and not self.allowed_to_write_after_validation
):
raise exceptions.ValidationError(
self.env._(
"At least one of these fields must be checked! "
"Write under Validation, Write after Validation"
)
)

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@ -0,0 +1,33 @@
To configure this module, you need to:
1. Go to *Settings \> Technical \> Tier Validations \> Tier
Definition*.
2. Create as many tiers as you want for any model having tier
validation functionality.
**Note:**
- If check *Notify Reviewers on Creation*, all possible reviewers will
be notified by email when this definition is triggered.
- If check *Notify reviewers on reaching pending* if you want to send a notification when pending status is reached.
This is usefull in a approve by sequence scenario to only notify reviewers when it is their turn in the sequence.
- If check *Comment*, reviewers can comment after click Validate or
Reject.
- If check *Approve by sequence*, reviewers is forced to review by
specified sequence.
To configure Tier Validation Exceptions, you need to:
1. Go to *Settings > Technical > Tier Validations > Tier Validation Exceptions*.
2. Create as many tiers validation exceptions as you want for any model
having tier validation functionality.
3. Add desired fields to be checked in *Fields*.
4. Add desired groups that can use this Exception in *Groups*.
5. You must check *Write under Validation*, *Write after Validation* or both.
**Note:**
* If you don't create any exception, the Validated record will be readonly and cannot be modified.
* If check *Write under Validation*, records will be able to be modified only in the defined fields when the Validation process is ongoing.
* If check *Write after Validation*, records will be able to be modified only in the defined fields when the Validation process is finished.
* If check *Write after Validation* and *Write under Validation*, records will be able to be modified defined fields always.

View File

@ -0,0 +1,18 @@
- Lois Rilo \<<lois.rilo@forgeflow.com>\>
- Naglis Jonaitis \<<naglis@versada.eu>\>
- Adrià Gil Sorribes \<<adria.gil@forgeflow.com>\>
- Pimolnat Suntian \<<pimolnats@ecosoft.co.th>\>
- Pedro Gonzalez \<<pedro.gonzalez@pesol.es>\>
- Kitti U. \<<kittiu@ecosoft.co.th>\>
- Saran Lim. \<<saranl@ecosoft.co.th>\>
- Carlos Lopez \<<celm1990@gmail.com>\>
- Javier Colmeiro \<<javier.colmeiro@braintec.com>\>
- bosd
- Evan Soh \<<evan.soh@omnisoftsolution.com>\>
- Manuel Regidor \<<manuel.regidor@sygel.es>\>
- Eduardo de Miguel \<<edu@moduon.team>\>
- [XCG Consulting](https://xcg-consulting.fr):
- Houzéfa Abbasbhay
- Stefan Rijnhart \<<stefan@opener.amsterdam>\>
- Kevin Khao \<<kevinkhao@gmail.com>\>
- Do Anh Duy \<<duyda@trobz.com>\>

View File

@ -0,0 +1 @@
The migration of this module from 17.0 to 18.0 was financially supported by Camptocamp.

View File

@ -0,0 +1,19 @@
Validating some operations is a common need across different areas in a
company and sometimes it also involves several people and stages in the
process. With this module you will be able to define your custom
validation workflows for any Odoo document.
This module does not provide a functionality by itself but an abstract
model to implement a validation process based on tiers on other models
(e.g. purchase orders, sales orders, budgets, expenses...).
**Note:** To be able to use this module in a new model you will need
some development.
See [purchase_tier_validation](https://github.com/OCA/purchase-workflow)
as an example of implementation.
Additionally, if your state field is a (stored) computed field, you need to
set `_tier_validation_state_field_is_computed` to `True` in your model Python
file, and you will want to add the dependent fields of the compute method
in `_get_after_validation_exceptions` and `_get_under_validation_exceptions`.

View File

@ -0,0 +1,85 @@
## 17.0.1.0.0 (2024-01-10)
Migrated to Odoo 17.
Merged module with tier_validation_waiting.
To support sending messages in a validation sequence when it is their turn to validate.
## 14.0.1.0.0 (2020-11-19)
Migrated to Odoo 14.
## 13.0.1.2.2 (2020-08-30)
Fixes:
- When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications
- When using approve_sequence, still not approve only the needed
sequence, but also other sequence for the same approver
## 12.0.3.3.1 (2019-12-02)
Fixes:
- Show comment on Reviews Table.
- Edit notification with approve_sequence.
## 12.0.3.3.0 (2019-11-27)
New features:
- Add comment on Reviews Table.
- Approve by sequence.
## 12.0.3.2.1 (2019-11-26)
Fixes:
- Remove message_subscribe_users
## 12.0.3.2.0 (2019-11-25)
New features:
- Notify reviewers
## 12.0.3.1.0 (2019-07-08)
Fixes:
- Singleton error
## 12.0.3.0.0 (2019-12-02)
Fixes:
- Edit Reviews Table
## 12.0.2.1.0 (2019-05-29)
Fixes:
- Edit drop-down style width and position
## 12.0.2.0.0 (2019-05-28)
New features:
- Pass parameters as functions.
- Add Systray.
## 12.0.1.0.0 (2019-02-18)
Migrated to Odoo 12.
## 11.0.1.0.0 (2018-05-09)
Migrated to Odoo 11.
## 10.0.1.0.0 (2018-03-26)
Migrated to Odoo 10.
## 9.0.1.0.0 (2017-12-02)
First version.

View File

@ -0,0 +1,22 @@
This is the list of known issues for this module. Any proposal for
improvement will be very valuable.
- **Issue:**
When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications.
**Description:**
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
is updated **in the database** in method review_user_count, this can
make it very inconsistent for databases with a lot of users and
recurring updates that can change the expected behavior.
- **Migration to 15.0:**
The parameter \_tier_validation_manual_config will become False, on
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
value on our expected model.

View File

@ -0,0 +1,11 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_tier_review_group_public,access_tier_review_group_public,model_tier_review,base.group_public,1,0,0,0
access_tier_definition_group_public,access_tier_definition_group_public,model_tier_definition,base.group_public,1,0,0,0
access_tier_review_group_portal,access_tier_review_group_portal,model_tier_review,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_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_erp_manager,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,base.group_user,1,0,0,0
access_tier_validation_exceptions_settings,tier.validation.exceptions,model_tier_validation_exception,base.group_system,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_tier_review_group_public access_tier_review_group_public model_tier_review base.group_public 1 0 0 0
3 access_tier_definition_group_public access_tier_definition_group_public model_tier_definition base.group_public 1 0 0 0
4 access_tier_review_group_portal access_tier_review_group_portal model_tier_review base.group_portal 1 0 0 0
5 access_tier_definition_group_portal access_tier_definition_group_portal model_tier_definition base.group_portal 1 0 0 0
6 access_tier_review access.tier.review model_tier_review base.group_user 1 1 1 1
7 access_tier_definition_all tier.definition.all model_tier_definition base.group_user 1 0 0 0
8 access_tier_definition_settings tier.definition.settings model_tier_definition base.group_erp_manager 1 1 1 1
9 access_comment_wizard access.comment.wizard model_comment_wizard base.group_user 1 1 1 1
10 access_tier_validation_exceptions_all tier.validation.exceptions model_tier_validation_exception base.group_user 1 0 0 0
11 access_tier_validation_exceptions_settings tier.validation.exceptions model_tier_validation_exception base.group_system 1 1 1 1

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="0">
<record id="tier_definition_comp_rule" model="ir.rule">
<field name="name">Tier Definition multi-company</field>
<field name="model_id" ref="model_tier_definition" />
<field name="global" eval="True" />
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
</record>
<record id="tier_review_comp_rule" model="ir.rule">
<field name="name">Tier Review multi-company</field>
<field name="model_id" ref="model_tier_review" />
<field name="global" eval="True" />
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="37.041668mm"
height="37.041668mm"
viewBox="0 0 37.041668 37.041668"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.4 (1:1.4+202410161351+e7c3feb100)"
sodipodi:docname="icon.svg"
inkscape:export-filename="icon.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="3.4193532"
inkscape:cx="39.042472"
inkscape:cy="56.58965"
inkscape:window-width="1850"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs1" /><g
inkscape:label="Capa 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-73.740303,-139.5361)"><rect
style="color:#000000;overflow:visible;fill:#fe5759;fill-opacity:1;stroke:none;stroke-width:1.17122;paint-order:stroke fill markers"
id="rect2"
width="22.839754"
height="4.9514699"
x="41.960548"
y="-173.60312"
transform="rotate(134.32069,-8.9289536e-8,-7.4894587e-7)" /><rect
style="color:#000000;overflow:visible;fill:#81fe4d;fill-opacity:1;stroke:none;stroke-width:1.17122;paint-order:stroke fill markers"
id="rect4"
width="22.839754"
height="4.9514699"
x="31.597769"
y="-184.44992"
transform="rotate(134.32069)" /><rect
style="color:#000000;overflow:visible;fill:#fe161d;fill-opacity:1;stroke:none;stroke-width:1.18055;paint-order:stroke fill markers"
id="rect1"
width="23.017431"
height="4.9918523"
x="159.2585"
y="49.542355"
transform="matrix(0.70991783,0.70428451,-0.69302167,0.72091675,0,0)" /><rect
style="color:#000000;display:inline;overflow:visible;fill:#59d236;fill-opacity:1;stroke:none;stroke-width:0.928049;paint-order:stroke fill markers"
id="rect3"
width="13.668949"
height="5.1946406"
x="170.78375"
y="49.240173"
transform="rotate(44.32069,1.1396491e-6,-1.4481696e-6)" /></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,657 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>README.rst</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document">
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
</a>
<div class="section" id="base-tier-validation">
<h1>Base Tier Validation</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:3e44413fd72f8949deba313c3f31047cbf30ba3b17d78342590d2376001d905f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/server-ux/tree/18.0/base_tier_validation"><img alt="OCA/server-ux" src="https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/server-ux-18-0/server-ux-18-0-base_tier_validation"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/server-ux&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Validating some operations is a common need across different areas in a
company and sometimes it also involves several people and stages in the
process. With this module you will be able to define your custom
validation workflows for any Odoo document.</p>
<p>This module does not provide a functionality by itself but an abstract
model to implement a validation process based on tiers on other models
(e.g. purchase orders, sales orders, budgets, expenses…).</p>
<p><strong>Note:</strong> To be able to use this module in a new model you will need
some development.</p>
<p>See
<a class="reference external" href="https://github.com/OCA/purchase-workflow">purchase_tier_validation</a>
as an example of implementation.</p>
<p>Additionally, if your state field is a (stored) computed field, you need
to set <tt class="docutils literal">_tier_validation_state_field_is_computed</tt> to <tt class="docutils literal">True</tt> in your
model Python file, and you will want to add the dependent fields of the
compute method in <tt class="docutils literal">_get_after_validation_exceptions</tt> and
<tt class="docutils literal">_get_under_validation_exceptions</tt>.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-2">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#changelog" id="toc-entry-3">Changelog</a><ul>
<li><a class="reference internal" href="#section-1" id="toc-entry-4">17.0.1.0.0 (2024-01-10)</a></li>
<li><a class="reference internal" href="#section-2" id="toc-entry-5">14.0.1.0.0 (2020-11-19)</a></li>
<li><a class="reference internal" href="#section-3" id="toc-entry-6">13.0.1.2.2 (2020-08-30)</a></li>
<li><a class="reference internal" href="#section-4" id="toc-entry-7">12.0.3.3.1 (2019-12-02)</a></li>
<li><a class="reference internal" href="#section-5" id="toc-entry-8">12.0.3.3.0 (2019-11-27)</a></li>
<li><a class="reference internal" href="#section-6" id="toc-entry-9">12.0.3.2.1 (2019-11-26)</a></li>
<li><a class="reference internal" href="#section-7" id="toc-entry-10">12.0.3.2.0 (2019-11-25)</a></li>
<li><a class="reference internal" href="#section-8" id="toc-entry-11">12.0.3.1.0 (2019-07-08)</a></li>
<li><a class="reference internal" href="#section-9" id="toc-entry-12">12.0.3.0.0 (2019-12-02)</a></li>
<li><a class="reference internal" href="#section-10" id="toc-entry-13">12.0.2.1.0 (2019-05-29)</a></li>
<li><a class="reference internal" href="#section-11" id="toc-entry-14">12.0.2.0.0 (2019-05-28)</a></li>
<li><a class="reference internal" href="#section-12" id="toc-entry-15">12.0.1.0.0 (2019-02-18)</a></li>
<li><a class="reference internal" href="#section-13" id="toc-entry-16">11.0.1.0.0 (2018-05-09)</a></li>
<li><a class="reference internal" href="#section-14" id="toc-entry-17">10.0.1.0.0 (2018-03-26)</a></li>
<li><a class="reference internal" href="#section-15" id="toc-entry-18">9.0.1.0.0 (2017-12-02)</a></li>
</ul>
</li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-19">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-20">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-21">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-22">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="toc-entry-23">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-24">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h2><a class="toc-backref" href="#toc-entry-1">Configuration</a></h2>
<p>To configure this module, you need to:</p>
<ol class="arabic simple">
<li>Go to <em>Settings &gt; Technical &gt; Tier Validations &gt; Tier Definition</em>.</li>
<li>Create as many tiers as you want for any model having tier validation
functionality.</li>
</ol>
<p><strong>Note:</strong></p>
<ul class="simple">
<li>If check <em>Notify Reviewers on Creation</em>, all possible reviewers will
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
notification when pending status is reached. This is usefull in a
approve by sequence scenario to only notify reviewers when it is their
turn in the sequence.</li>
<li>If check <em>Comment</em>, reviewers can comment after click Validate or
Reject.</li>
<li>If check <em>Approve by sequence</em>, reviewers is forced to review by
specified sequence.</li>
</ul>
<p>To configure Tier Validation Exceptions, you need to:</p>
<ol class="arabic simple">
<li>Go to <em>Settings &gt; Technical &gt; Tier Validations &gt; Tier Validation
Exceptions</em>.</li>
<li>Create as many tiers validation exceptions as you want for any model
having tier validation functionality.</li>
<li>Add desired fields to be checked in <em>Fields</em>.</li>
<li>Add desired groups that can use this Exception in <em>Groups</em>.</li>
<li>You must check <em>Write under Validation</em>, <em>Write after Validation</em> or
both.</li>
</ol>
<p><strong>Note:</strong></p>
<ul class="simple">
<li>If you dont create any exception, the Validated record will be
readonly and cannot be modified.</li>
<li>If check <em>Write under Validation</em>, records will be able to be modified
only in the defined fields when the Validation process is ongoing.</li>
<li>If check <em>Write after Validation</em>, records will be able to be 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>,
records will be able to be modified defined fields always.</li>
</ul>
</div>
<div class="section" id="known-issues-roadmap">
<h2><a class="toc-backref" href="#toc-entry-2">Known issues / Roadmap</a></h2>
<p>This is the list of known issues for this module. Any proposal for
improvement will be very valuable.</p>
<ul>
<li><p class="first"><strong>Issue:</strong></p>
<p>When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications.</p>
<p><strong>Description:</strong></p>
<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
is updated <strong>in the database</strong> in method review_user_count, this can
make it very inconsistent for databases with a lot of users and
recurring updates that can change the expected behavior.</p>
</li>
<li><p class="first"><strong>Migration to 15.0:</strong></p>
<p>The parameter _tier_validation_manual_config will become False, on
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
value on our expected model.</p>
</li>
</ul>
</div>
<div class="section" id="changelog">
<h2><a class="toc-backref" href="#toc-entry-3">Changelog</a></h2>
<div class="section" id="section-1">
<h3><a class="toc-backref" href="#toc-entry-4">17.0.1.0.0 (2024-01-10)</a></h3>
<p>Migrated to Odoo 17. Merged module with tier_validation_waiting. To
support sending messages in a validation sequence when it is their turn
to validate.</p>
</div>
<div class="section" id="section-2">
<h3><a class="toc-backref" href="#toc-entry-5">14.0.1.0.0 (2020-11-19)</a></h3>
<p>Migrated to Odoo 14.</p>
</div>
<div class="section" id="section-3">
<h3><a class="toc-backref" href="#toc-entry-6">13.0.1.2.2 (2020-08-30)</a></h3>
<p>Fixes:</p>
<ul class="simple">
<li>When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications</li>
<li>When using approve_sequence, still not approve only the needed
sequence, but also other sequence for the same approver</li>
</ul>
</div>
<div class="section" id="section-4">
<h3><a class="toc-backref" href="#toc-entry-7">12.0.3.3.1 (2019-12-02)</a></h3>
<p>Fixes:</p>
<ul class="simple">
<li>Show comment on Reviews Table.</li>
<li>Edit notification with approve_sequence.</li>
</ul>
</div>
<div class="section" id="section-5">
<h3><a class="toc-backref" href="#toc-entry-8">12.0.3.3.0 (2019-11-27)</a></h3>
<p>New features:</p>
<ul class="simple">
<li>Add comment on Reviews Table.</li>
<li>Approve by sequence.</li>
</ul>
</div>
<div class="section" id="section-6">
<h3><a class="toc-backref" href="#toc-entry-9">12.0.3.2.1 (2019-11-26)</a></h3>
<p>Fixes:</p>
<ul class="simple">
<li>Remove message_subscribe_users</li>
</ul>
</div>
<div class="section" id="section-7">
<h3><a class="toc-backref" href="#toc-entry-10">12.0.3.2.0 (2019-11-25)</a></h3>
<p>New features:</p>
<ul class="simple">
<li>Notify reviewers</li>
</ul>
</div>
<div class="section" id="section-8">
<h3><a class="toc-backref" href="#toc-entry-11">12.0.3.1.0 (2019-07-08)</a></h3>
<p>Fixes:</p>
<ul class="simple">
<li>Singleton error</li>
</ul>
</div>
<div class="section" id="section-9">
<h3><a class="toc-backref" href="#toc-entry-12">12.0.3.0.0 (2019-12-02)</a></h3>
<p>Fixes:</p>
<ul class="simple">
<li>Edit Reviews Table</li>
</ul>
</div>
<div class="section" id="section-10">
<h3><a class="toc-backref" href="#toc-entry-13">12.0.2.1.0 (2019-05-29)</a></h3>
<p>Fixes:</p>
<ul class="simple">
<li>Edit drop-down style width and position</li>
</ul>
</div>
<div class="section" id="section-11">
<h3><a class="toc-backref" href="#toc-entry-14">12.0.2.0.0 (2019-05-28)</a></h3>
<p>New features:</p>
<ul class="simple">
<li>Pass parameters as functions.</li>
<li>Add Systray.</li>
</ul>
</div>
<div class="section" id="section-12">
<h3><a class="toc-backref" href="#toc-entry-15">12.0.1.0.0 (2019-02-18)</a></h3>
<p>Migrated to Odoo 12.</p>
</div>
<div class="section" id="section-13">
<h3><a class="toc-backref" href="#toc-entry-16">11.0.1.0.0 (2018-05-09)</a></h3>
<p>Migrated to Odoo 11.</p>
</div>
<div class="section" id="section-14">
<h3><a class="toc-backref" href="#toc-entry-17">10.0.1.0.0 (2018-03-26)</a></h3>
<p>Migrated to Odoo 10.</p>
</div>
<div class="section" id="section-15">
<h3><a class="toc-backref" href="#toc-entry-18">9.0.1.0.0 (2017-12-02)</a></h3>
<p>First version.</p>
</div>
</div>
<div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-19">Bug Tracker</a></h2>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/server-ux/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/server-ux/issues/new?body=module:%20base_tier_validation%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h2><a class="toc-backref" href="#toc-entry-20">Credits</a></h2>
<div class="section" id="authors">
<h3><a class="toc-backref" href="#toc-entry-21">Authors</a></h3>
<ul class="simple">
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h3><a class="toc-backref" href="#toc-entry-22">Contributors</a></h3>
<ul class="simple">
<li>Lois Rilo &lt;<a class="reference external" href="mailto:lois.rilo&#64;forgeflow.com">lois.rilo&#64;forgeflow.com</a>&gt;</li>
<li>Naglis Jonaitis &lt;<a class="reference external" href="mailto:naglis&#64;versada.eu">naglis&#64;versada.eu</a>&gt;</li>
<li>Adrià Gil Sorribes &lt;<a class="reference external" href="mailto:adria.gil&#64;forgeflow.com">adria.gil&#64;forgeflow.com</a>&gt;</li>
<li>Pimolnat Suntian &lt;<a class="reference external" href="mailto:pimolnats&#64;ecosoft.co.th">pimolnats&#64;ecosoft.co.th</a>&gt;</li>
<li>Pedro Gonzalez &lt;<a class="reference external" href="mailto:pedro.gonzalez&#64;pesol.es">pedro.gonzalez&#64;pesol.es</a>&gt;</li>
<li>Kitti U. &lt;<a class="reference external" href="mailto:kittiu&#64;ecosoft.co.th">kittiu&#64;ecosoft.co.th</a>&gt;</li>
<li>Saran Lim. &lt;<a class="reference external" href="mailto:saranl&#64;ecosoft.co.th">saranl&#64;ecosoft.co.th</a>&gt;</li>
<li>Carlos Lopez &lt;<a class="reference external" href="mailto:celm1990&#64;gmail.com">celm1990&#64;gmail.com</a>&gt;</li>
<li>Javier Colmeiro &lt;<a class="reference external" href="mailto:javier.colmeiro&#64;braintec.com">javier.colmeiro&#64;braintec.com</a>&gt;</li>
<li>bosd</li>
<li>Evan Soh &lt;<a class="reference external" href="mailto:evan.soh&#64;omnisoftsolution.com">evan.soh&#64;omnisoftsolution.com</a>&gt;</li>
<li>Manuel Regidor &lt;<a class="reference external" href="mailto:manuel.regidor&#64;sygel.es">manuel.regidor&#64;sygel.es</a>&gt;</li>
<li>Eduardo de Miguel &lt;<a class="reference external" href="mailto:edu&#64;moduon.team">edu&#64;moduon.team</a>&gt;</li>
<li><a class="reference external" href="https://xcg-consulting.fr">XCG Consulting</a>:<ul>
<li>Houzéfa Abbasbhay</li>
</ul>
</li>
<li>Stefan Rijnhart &lt;<a class="reference external" href="mailto:stefan&#64;opener.amsterdam">stefan&#64;opener.amsterdam</a>&gt;</li>
<li>Kevin Khao &lt;<a class="reference external" href="mailto:kevinkhao&#64;gmail.com">kevinkhao&#64;gmail.com</a>&gt;</li>
<li>Do Anh Duy &lt;<a class="reference external" href="mailto:duyda&#64;trobz.com">duyda&#64;trobz.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="other-credits">
<h3><a class="toc-backref" href="#toc-entry-23">Other credits</a></h3>
<p>The migration of this module from 17.0 to 18.0 was financially supported
by Camptocamp.</p>
</div>
<div class="section" id="maintainers">
<h3><a class="toc-backref" href="#toc-entry-24">Maintainers</a></h3>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/LoisRForgeFlow"><img alt="LoisRForgeFlow" src="https://github.com/LoisRForgeFlow.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/server-ux/tree/18.0/base_tier_validation">OCA/server-ux</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,74 @@
import {Component, useState} from "@odoo/owl";
import {Dropdown} from "@web/core/dropdown/dropdown";
import {registry} from "@web/core/registry";
import {useDiscussSystray} from "@mail/utils/common/hooks";
import {useDropdownState} from "@web/core/dropdown/dropdown_hooks";
import {useService} from "@web/core/utils/hooks";
export class TierReviewMenu extends Component {
static components = {Dropdown};
static props = [];
static template = "base_tier_validation.TierReviewMenu";
setup() {
super.setup();
this.discussSystray = useDiscussSystray();
this.orm = useService("orm");
this.store = useState(useService("mail.store"));
this.action = useService("action");
this.dropdown = useDropdownState();
this.fetchSystrayReviewer();
}
async fetchSystrayReviewer() {
const groups = await this.orm.call("res.users", "review_user_count");
let total = 0;
for (const group of groups) {
total += group.pending_count || 0;
}
this.store.tierReviewCounter = total;
this.store.tierReviewGroups = groups;
}
availableViews() {
return [
[false, "kanban"],
[false, "list"],
[false, "form"],
[false, "activity"],
];
}
openReviewGroup(group) {
this.dropdown.close();
const context = {};
const domain = [["can_review", "=", true]];
if (group.active_field) {
domain.push(["active", "in", [true, false]]);
}
const views = this.availableViews();
this.action.doAction(
{
context,
domain,
name: group.name,
res_model: group.model,
search_view_id: [false],
type: "ir.actions.act_window",
views,
},
{
clearBreadcrumbs: true,
}
);
}
}
export const systrayItem = {
Component: TierReviewMenu,
};
registry
.category("systray")
.add("base_tier_validation.ReviewerMenu", systrayItem, {sequence: 99});

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates xml:space="preserve">
<t t-name="base_tier_validation.TierReviewMenu">
<Dropdown
position="'bottom-end'"
state="dropdown"
beforeOpen.bind="fetchSystrayReviewer"
menuClass="discussSystray.menuClass"
>
<button>
<i
class="fa fa-lg fa-pencil-square-o"
role="img"
aria-label="Reviews"
/>
<span
t-if="store.tierReviewCounter"
class="o-mail-ActivityMenu-counter badge rounded-pill"
>
<t t-out="store.tierReviewCounter" />
</span>
</button>
<t t-set-slot="content">
<div t-att-class="`${discussSystray.contentClass} o-mail-ActivityMenu`">
<div
t-if="store.tierReviewCounter === 0"
class="o-mail-ActivityMenu-empty align-items-center text-muted p-2 opacity-50 d-flex justify-content-center"
>
<span>No reviews to do.</span>
</div>
<div
class="d-flex flex-column list-group-flush"
name="reviewGroups"
>
<t
t-foreach="store.tierReviewGroups"
t-as="review"
t-key="review_index"
name="reviewGroupLoop"
>
<div
class="o-mail-ActivityGroup list-group-item list-group-item-action d-flex p-2 cursor-pointer"
t-att-data-model_name="review.model"
t-on-click="() => this.openReviewGroup(review)"
>
<img alt="Review" t-att-src="review.icon" />
<div class="flex-grow-1 overflow-hidden">
<div
class="d-flex px-2"
name="reviewTitle"
t-out="review.name"
/>
<div class="d-flex">
<span
t-attf-class="#{review.pending_count ? 'btn btn-link' : 'text-muted'} py-0 px-2 text-truncate"
t-on-click.stop="() => this.openReviewGroup(review)"
>
<t t-out="review.pending_count" /> Pending
</span>
</div>
</div>
</div>
</t>
</div>
</div>
</t>
</Dropdown>
</t>
</templates>

View File

@ -0,0 +1,53 @@
import {Component, useState} from "@odoo/owl";
import {registry} from "@web/core/registry";
import {useService} from "@web/core/utils/hooks";
export class ReviewsTable extends Component {
setup() {
super.setup();
this.orm = useService("orm");
this.state = useState({
collapse: false,
});
}
_getReviewData() {
const records = this.props.record.data.review_ids.records;
return records.map((record) => record.data);
}
onToggleCollapse(ev) {
const panelHeading = ev.currentTarget.closest(".panel-heading");
const collapseDiv = panelHeading.nextElementSibling.matches("div#collapse1")
? panelHeading.nextElementSibling
: null;
if (!collapseDiv) return;
if (this.state.collapse) {
collapseDiv.style.display = "none";
} else {
collapseDiv.style.display = "block";
}
this.state.collapse = !this.state.collapse;
}
}
ReviewsTable.template = "base_tier_validation.Collapse";
export const reviewsTableComponent = {
component: ReviewsTable,
supportedTypes: ["one2many"],
relatedFields: [
{name: "id", type: "integer"},
{name: "sequence", type: "integer"},
{name: "name", type: "char"},
{name: "display_status", type: "char"},
{name: "todo_by", type: "char"},
{name: "status", type: "char"},
{name: "reviewed_formated_date", type: "char"},
{name: "comment", type: "char"},
{name: "requested_by", type: "many2one", relation: "partner"},
{name: "done_by", type: "many2one", relation: "partner"},
],
};
registry.category("fields").add("form.tier_validation", reviewsTableComponent);

View File

@ -0,0 +1,41 @@
ul.o_review {
min-width: 600px;
max-width: 800px;
}
.panel-group {
min-height: auto !important;
margin-top: -6px !important;
padding: 16px 16px 8px 16px !important;
}
.panel-heading {
background-color: initial !important;
}
.panel {
border: 0 !important;
}
.panel-body {
overflow-y: hidden;
overflow-x: auto;
}
.panel-title > a,
.panel-title > a:active {
display: block;
}
.panel-heading a:before {
font-family: FontAwesome;
content: "\f0d7";
float: right;
transition: all 0.5s;
}
.panel-heading.active a:before {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg);
}

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates>
<t t-name="base_tier_validation.Collapse">
<div class="o_form_sheet panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a
class="o_info_btn"
data-toggle="state.collapse"
href="#"
data-target="#collapse1"
t-on-click="onToggleCollapse"
>
Reviews
</a>
</h4>
</div>
<div id="collapse1" class="panel-collapse collapse active">
<div class="panel-body o_review">
<table class="oe_mt32 table table-condensed">
<thead>
<tr>
<th
name="th_sequence"
class="text-center"
>Sequence</th>
<th
name="th_requested_by"
class="text-start"
>Requested by</th>
<th name="th_name" class="text-end">Description</th>
<th
name="th_display_status"
class="text-end"
>Status</th>
<th name="th_todo_by" class="text-end">Todo by</th>
<th name="th_done_by" class="text-end">Done by</th>
<th
name="th_reviewed_date"
class="text-end"
>Validation Date</th>
<th name="th_comment" class="text-end">Comment</th>
</tr>
</thead>
<tbody class="sale_tbody">
<t
t-foreach="_getReviewData()"
t-as="review"
t-key="review.sequence"
>
<t
t-if="review.status == 'waiting'"
t-set="status_class"
t-value="'text-muted'"
/>
<t
t-if="review.status == 'pending'"
t-set="status_class"
t-value=""
/>
<t
t-if="review.status == 'approved'"
t-set="status_class"
t-value="'alert alert-success'"
/>
<t
t-if="review.status == 'rejected'"
t-set="status_class"
t-value="'alert alert-danger'"
/>
<tr t-att-class="status_class">
<td name="td_sequence" class="text-center">
<span t-out="review.sequence" />
</td>
<td name="td_requested_by" class="text-start">
<span t-out="review.requested_by[1]" />
</td>
<td name="td_name" class="text-end">
<span t-out="review.name" />
</td>
<td name="td_display_status" class="text-end">
<span t-out="review.display_status" />
</td>
<td name="td_todo_by" class="text-end">
<span t-out="review.todo_by" />
</td>
<td name="td_done_by" class="text-end">
<span t-out="review.done_by[1]" />
</td>
<td name="td_reviewed_date" class="text-end">
<t t-if="review.reviewed_formated_date">
<span
t-out="review.reviewed_formated_date"
/>
</t>
</td>
<td name="td_comment" class="text-start">
<t t-if="review.comment">
<span t-out="review.comment" />
</t>
</td>
</tr>
</t>
</tbody>
</table>
</div>
</div>
</div>
</div>
</t>
</templates>

View File

@ -0,0 +1,33 @@
import {reactive} from "@odoo/owl";
import {registry} from "@web/core/registry";
export class TierReviewService {
constructor(env, services) {
this.env = env;
this.store = services["mail.store"];
this.busService = services.bus_service;
}
setup() {
this.busService.subscribe("base.tier.validation/updated", (payload) => {
if (payload.review_created) {
this.store.tierReviewCounter++;
}
if (payload.review_deleted) {
this.store.tierReviewCounter--;
}
});
this.busService.start();
}
}
export const tierReviewService = {
dependencies: ["bus_service", "mail.store"],
start(env, services) {
const tier_review_service = reactive(new TierReviewService(env, services));
tier_review_service.setup();
return tier_review_service;
},
};
registry.category("services").add("tierReviewService", tierReviewService);

View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<template id="tier_validation_buttons">
<div>
<field name="validation_status" invisible="1" />
<button
name="request_validation"
string="Request Validation"
t-attf-invisible="not need_validation or validation_status == 'rejected' or hide_reviews"
type="object"
/>
<button
name="restart_validation"
string="Restart Validation"
invisible="not review_ids or hide_reviews"
type="object"
/>
</div>
</template>
<template id="tier_validation_label">
<div>
<div
class="alert alert-warning mb-0"
role="alert"
t-attf-invisible="validation_status == 'validated' or hide_reviews or validation_status == 'rejected' or not review_ids"
>
<p class="mb-1">
<i class="fa fa-lg fa-info-circle" />
This Record needs to be
validated.
<button
name="validate_tier"
string="Validate"
invisible="not can_review"
type="object"
class="btn-icon me-1 btn-success"
icon="fa-thumbs-up"
/>
<button
name="reject_tier"
string="Reject"
invisible="not can_review"
type="object"
class="btn-icon btn-danger"
icon="fa-thumbs-down"
/>
<br /><field name="next_review" readonly="1" />
</p>
</div>
<div
class="alert alert-success mb-0"
role="alert"
t-attf-invisible="validation_status != 'validated' or hide_reviews or not review_ids"
>
<p class="mb-1">
<i class="fa fa-lg fa-thumbs-up" />
Operation has been
<b>validated</b>
!
</p>
</div>
<div
class="alert alert-danger mb-0"
role="alert"
t-attf-invisible="validation_status != 'rejected' or hide_reviews or not review_ids"
>
<p class="mb-1">
<i class="fa fa-lg fa-thumbs-down" />
Operation has been
<b>rejected</b>
.
</p>
</div>
</div>
</template>
<template id="tier_validation_reviews">
<field
name="review_ids"
widget="tier_validation"
invisible="not review_ids"
class="w-100 mt-1"
>
<list>
<field name="name" />
<field name="sequence" />
<field name="requested_by" />
<field name="status" />
<field name="display_status" />
<field name="todo_by" />
<field name="done_by" />
<field name="reviewed_date" />
<field name="reviewed_formated_date" />
<field name="comment" />
</list>
</field>
</template>
</odoo>

View File

@ -0,0 +1,5 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import test_tier_validation
from . import test_tier_validation_reminder
from . import test_tier

View File

@ -0,0 +1,217 @@
# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
from odoo_test_helper import FakeModelLoader
from odoo import Command
from odoo.tests import new_test_user
from odoo.addons.base.tests.common import BaseCommon
class CommonTierValidation(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.loader = FakeModelLoader(cls.env, cls.__module__)
cls.loader.backup_registry()
from .tier_validation_tester import (
TierDefinition,
TierValidationTester,
TierValidationTester2,
TierValidationTesterComputed,
)
cls.loader.update_registry(
(
TierValidationTester,
TierValidationTester2,
TierValidationTesterComputed,
TierDefinition,
)
)
cls.test_model = cls.env[TierValidationTester._name]
cls.test_model_2 = cls.env[TierValidationTester2._name]
cls.test_model_computed = cls.env[TierValidationTesterComputed._name]
cls.tester_model = cls.env["ir.model"].search(
[("model", "=", "tier.validation.tester")]
)
cls.tester_model_2 = cls.env["ir.model"].search(
[("model", "=", "tier.validation.tester2")]
)
cls.tester_model_computed = cls.env["ir.model"].search(
[("model", "=", "tier.validation.tester.computed")]
)
# Create a multi-company
cls.main_company = cls.env.ref("base.main_company")
cls.other_company = cls.env["res.company"].create({"name": "My Company"})
models = (
cls.tester_model,
cls.tester_model_2,
cls.tester_model_computed,
)
for model in models:
# Access record:
cls.env["ir.model.access"].create(
{
"name": f"access {model.name}",
"model_id": model.id,
"perm_read": 1,
"perm_write": 1,
"perm_create": 1,
"perm_unlink": 1,
}
)
# Define views to avoid automatic views with all fields.
cls.env["ir.ui.view"].create(
{
"model": model.model,
"name": f"Demo view for {model}",
"arch": """<form>
<header>
<button name="action_confirm" type="object" string="Confirm" />
<field name="state" widget="statusbar" />
</header>
<sheet>
<field name="test_field" />
</sheet>
</form>""",
}
)
# Create users:
cls.test_user_1 = new_test_user(
cls.env, name="John", login="test1", groups="base.group_system"
)
cls.test_user_2 = new_test_user(cls.env, name="Mike", login="test2")
cls.test_user_3_multi_company = new_test_user(
cls.env,
name="Jane",
login="test3",
company_ids=[Command.set([cls.main_company.id, cls.other_company.id])],
)
# Create groups
cls.test_group = cls.env["res.groups"].create(
{
"name": "TestGroup",
"users": [(4, cls.test_user_1.id), (4, cls.test_user_2.id)],
}
)
# Create tier definitions:
cls.tier_def_obj = cls.env["tier.definition"]
cls.tier_definition = cls.tier_def_obj.create(
{
"model_id": cls.tester_model.id,
"review_type": "individual",
"reviewer_id": cls.test_user_1.id,
"definition_domain": "[('test_field', '=', 1.0)]",
"sequence": 30,
}
)
cls.test_record = cls.test_model.create({"test_field": 1.0})
cls.test_record_2 = cls.test_model_2.create({"test_field": 1.0})
cls.test_record_computed = cls.test_model_computed.create({"test_field": 1.0})
cls.tier_def_obj.create(
{
"model_id": cls.tester_model.id,
"review_type": "individual",
"reviewer_id": cls.test_user_1.id,
"definition_domain": "[('test_field', '>', 3.0)]",
"approve_sequence": True,
"notify_on_pending": False,
"sequence": 20,
"name": "Definition for test 19 - sequence - user 1",
}
)
cls.tier_def_obj.create(
{
"model_id": cls.tester_model.id,
"review_type": "individual",
"reviewer_id": cls.test_user_2.id,
"definition_domain": "[('test_field', '>', 3.0)]",
"approve_sequence": True,
"notify_on_pending": True,
"sequence": 10,
"name": "Definition for test 19 - sequence - user 2",
}
)
# Create definition for test 20
cls.tier_def_obj.create(
{
"model_id": cls.tester_model.id,
"review_type": "individual",
"reviewer_id": cls.test_user_1.id,
"definition_domain": "[('test_field', '=', 0.9)]",
"approve_sequence": False,
"notify_on_pending": True,
"sequence": 10,
"name": "Definition for test 20 - no sequence - user 1 - no sequence",
}
)
cls.tier_def_obj.create(
{
"model_id": cls.tester_model_computed.id,
"review_type": "individual",
"reviewer_id": cls.test_user_1.id,
"definition_domain": "[]",
"approve_sequence": True,
"notify_on_pending": False,
"sequence": 20,
"name": "Definition for computed model",
}
)
# Create definition for test 30, 31
# Main company tier definition
cls.tier_def_obj.create(
{
"model_id": cls.tester_model_2.id,
"review_type": "individual",
"reviewer_id": cls.test_user_1.id,
"definition_domain": "[('test_field', '>=', 1.0)]",
"approve_sequence": True,
"notify_on_pending": False,
"sequence": 30,
"name": "Definition for test 30 - sequence - user 1 - main company",
"company_id": cls.main_company.id,
}
)
cls.tier_def_obj.create(
{
"model_id": cls.tester_model_2.id,
"review_type": "individual",
"reviewer_id": cls.test_user_3_multi_company.id,
"definition_domain": "[('test_field', '>=', 1.0)]",
"approve_sequence": True,
"notify_on_pending": False,
"sequence": 20,
"name": "Definition for test 30 - sequence - user 3 - main company",
"company_id": cls.main_company.id,
}
)
# Other company tier definition
cls.tier_def_obj.create(
{
"model_id": cls.tester_model_2.id,
"review_type": "individual",
"reviewer_id": cls.test_user_3_multi_company.id,
"definition_domain": "[('test_field', '>=', 1.0)]",
"approve_sequence": True,
"notify_on_pending": False,
"sequence": 30,
"name": "Definition for test 30 - sequence - user 3 - other company",
"company_id": cls.other_company.id,
}
)
@classmethod
def tearDownClass(cls):
cls.loader.restore_registry()
super().tearDownClass()

View File

@ -0,0 +1,193 @@
# Copyright 2024 DOB
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
from odoo_test_helper import FakeModelLoader
from odoo.tests import new_test_user
from odoo.tests.common import TransactionCase
from .tier_validation_tester import (
TierDefinition,
TierValidationTester,
)
class TestTierDefinition(TransactionCase):
"""Tests for base_tier_validation: TierDefinition creation and workflow.
Validates: Requirements 8.1, 8.2, 8.3, 8.4
"""
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.loader = FakeModelLoader(cls.env, cls.__module__)
cls.loader.backup_registry()
cls.loader.update_registry((TierValidationTester, TierDefinition))
cls.test_model = cls.env[TierValidationTester._name]
cls.tester_model = cls.env["ir.model"].search(
[("model", "=", TierValidationTester._name)]
)
# Grant access to the fake model
cls.env["ir.model.access"].create(
{
"name": "access tier.validation.tester",
"model_id": cls.tester_model.id,
"perm_read": 1,
"perm_write": 1,
"perm_create": 1,
"perm_unlink": 1,
}
)
# Minimal form view to avoid auto-view issues
cls.env["ir.ui.view"].create(
{
"model": TierValidationTester._name,
"name": "test_tier_tester_form",
"arch": """<form>
<header>
<button name="action_confirm" type="object" string="Confirm" />
<field name="state" widget="statusbar" />
</header>
<sheet>
<field name="test_field" />
</sheet>
</form>""",
}
)
# Users: reviewer (admin) and requester (regular)
cls.reviewer = new_test_user(
cls.env,
name="Reviewer",
login="tier_reviewer",
groups="base.group_system",
)
cls.requester = new_test_user(
cls.env,
name="Requester",
login="tier_requester",
)
cls.tier_def_obj = cls.env["tier.definition"]
@classmethod
def tearDownClass(cls):
cls.loader.restore_registry()
super().tearDownClass()
def test_01_create_tier_definition(self):
"""WHEN a TierDefinition is created for a model with approval levels,
base_tier_validation SHALL create the record without errors.
Validates: Requirement 8.1
"""
tier_def = self.tier_def_obj.create(
{
"model_id": self.tester_model.id,
"review_type": "individual",
"reviewer_id": self.reviewer.id,
"definition_domain": "[]",
"sequence": 10,
}
)
self.assertTrue(tier_def.id, "TierDefinition should be created without errors")
self.assertEqual(tier_def.model_id, self.tester_model)
self.assertEqual(tier_def.reviewer_id, self.reviewer)
def test_02_request_validation_creates_tier_reviews(self):
"""WHEN a document is submitted for approval,
base_tier_validation SHALL create TierReview records for each level.
Validates: Requirement 8.2
"""
# Create two tier definitions (two approval levels)
self.tier_def_obj.create(
{
"model_id": self.tester_model.id,
"review_type": "individual",
"reviewer_id": self.reviewer.id,
"definition_domain": "[('test_field', '>', 0.0)]",
"sequence": 10,
}
)
self.tier_def_obj.create(
{
"model_id": self.tester_model.id,
"review_type": "individual",
"reviewer_id": self.reviewer.id,
"definition_domain": "[('test_field', '>', 0.0)]",
"sequence": 20,
}
)
record = self.test_model.create({"test_field": 1.0})
self.assertFalse(record.review_ids, "No reviews before request")
reviews = record.with_user(self.requester).request_validation()
self.assertTrue(reviews, "Reviews should be created after request_validation")
self.assertEqual(
len(reviews),
2,
"One TierReview should be created per approval level",
)
def test_03_approve_all_tiers_sets_validated_status(self):
"""WHEN all approval levels are approved,
base_tier_validation SHALL set the document validation_status to 'validated'.
Validates: Requirement 8.3
"""
self.tier_def_obj.create(
{
"model_id": self.tester_model.id,
"review_type": "individual",
"reviewer_id": self.reviewer.id,
"definition_domain": "[('test_field', '>', 0.0)]",
"sequence": 10,
}
)
record = self.test_model.create({"test_field": 1.0})
record.with_user(self.requester).request_validation()
record_as_reviewer = record.with_user(self.reviewer)
record_as_reviewer.validate_tier()
self.assertEqual(
record.validation_status,
"validated",
"validation_status should be 'validated' after all tiers approved",
)
def test_04_reject_tier_sets_rejected_status(self):
"""IF one approval level is rejected,
base_tier_validation SHALL set the document validation_status to 'rejected'.
Validates: Requirement 8.4
"""
self.tier_def_obj.create(
{
"model_id": self.tester_model.id,
"review_type": "individual",
"reviewer_id": self.reviewer.id,
"definition_domain": "[('test_field', '>', 0.0)]",
"sequence": 10,
}
)
record = self.test_model.create({"test_field": 1.0})
record.with_user(self.requester).request_validation()
record_as_reviewer = record.with_user(self.reviewer)
record_as_reviewer.reject_tier()
self.assertEqual(
record.validation_status,
"rejected",
"validation_status should be 'rejected' after a tier is rejected",
)

File diff suppressed because it is too large Load Diff

View 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 odoo import fields
from odoo.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)

View File

@ -0,0 +1,118 @@
# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class TierValidationTester(models.Model):
_name = "tier.validation.tester"
_description = "Tier Validation Tester"
_inherit = ["tier.validation", "mail.thread"]
_tier_validation_manual_config = True
state = fields.Selection(
selection=[
("draft", "Draft"),
("confirmed", "Confirmed"),
("cancel", "Cancel"),
],
default="draft",
)
test_validation_field = fields.Integer(default=0)
test_field = fields.Float()
user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
group_id = fields.Many2one("res.groups", string="Assigned to (group)")
menu_id = fields.Many2one(
"ir.ui.menu", help="For testing choosing a wrong field type"
)
def action_confirm(self):
self.write({"state": "confirmed"})
class TierValidationTester2(models.Model):
_name = "tier.validation.tester2"
_description = "Tier Validation Tester 2"
_inherit = ["tier.validation"]
_tier_validation_manual_config = False
state = fields.Selection(
selection=[
("draft", "Draft"),
("confirmed", "Confirmed"),
("cancel", "Cancel"),
],
default="draft",
)
test_field = fields.Float()
test_validation_field = fields.Float()
user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
company_id = fields.Many2one(comodel_name="res.company")
def action_confirm(self):
self.write({"state": "confirmed"})
class TierValidationTesterComputed(models.Model):
_name = "tier.validation.tester.computed"
_description = "Tier Validation Tester Computed"
_inherit = ["tier.validation"]
_tier_validation_manual_config = False
_tier_validation_state_field_is_computed = True
confirmed = fields.Boolean()
cancelled = fields.Boolean()
state = fields.Selection(
selection=[
("draft", "Draft"),
("confirmed", "Confirmed"),
("cancel", "Cancel"),
],
compute="_compute_state",
store=True,
)
test_field = fields.Float()
test_validation_field = fields.Float()
user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users")
@api.model
def _get_after_validation_exceptions(self):
return super()._get_after_validation_exceptions() + [
"confirmed",
"cancelled",
]
@api.model
def _get_under_validation_exceptions(self):
return super()._get_under_validation_exceptions() + [
"confirmed",
"cancelled",
]
@api.depends("confirmed", "cancelled")
def _compute_state(self):
for rec in self:
if rec.cancelled:
rec.state = "cancel"
elif rec.confirmed:
rec.state = "confirmed"
else:
rec.state = "draft"
def action_confirm(self):
self.write({"confirmed": True})
def action_cancel(self):
self.write({"cancelled": True})
class TierDefinition(models.Model):
_inherit = "tier.definition"
@api.model
def _get_tier_validation_model_names(self):
res = super()._get_tier_validation_model_names()
res.append("tier.validation.tester")
res.append("tier.validation.tester2")
res.append("tier.validation.tester.computed")
return res

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Uncomment me when related modules are migrated-->
<record id="res_config_settings_view_form_budget" model="ir.ui.view">
<field name="name">res.config.settings.view.form.budget</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="25" />
<field name="inherit_id" ref="base_setup.res_config_settings_view_form" />
<field name="arch" type="xml">
<xpath expr="//div[@id='companies']" position="after">
<div id="base_tier_validation">
<block
title="Tier Validation"
name="base_tier_validation_option_setting_container"
>
<setting id="module_base_tier_validation_formula">
<field name="module_base_tier_validation_formula" />
<div class="text-muted">
Option to use python formula to get reviewers and find documents
</div>
</setting>
<!-- <setting
id="module_base_tier_validation_server_action"
>
<field
name="module_base_tier_validation_server_action"
/>
<div class="text-muted">
Option to trigger server actions on completion of tier reviews
</div>
</setting> -->
<!-- <setting
id="module_base_tier_validation_forward"
>
<field name="module_base_tier_validation_forward"/>
<div class="text-muted">
Option to forward a tier validation to other reviewer, and backward
</div>
</setting> -->
<!-- <setting
id="module_base_tier_validation_report"
>
<field name="module_base_tier_validation_report" />
<div class="text-muted">
More reports about tier validations, i.e., summary of all my reviews
</div>
</setting> -->
</block>
</div>
</xpath>
</field>
</record>
</odoo>

View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="tier_definition_view_tree" model="ir.ui.view">
<field name="name">tier.definition.list</field>
<field name="model">tier.definition</field>
<field name="arch" type="xml">
<list>
<field name="sequence" widget="handle" />
<field name="model_id" />
<field name="name" />
<field name="review_type" />
<field name="reviewer_id" />
<field name="reviewer_group_id" />
<field name="reviewer_field_id" />
<field name="notify_on_create" optional="show" />
<field name="notify_on_pending" optional="show" />
<field name="has_comment" optional="hide" />
<field
name="company_id"
groups="base.group_multi_company"
optional="hide"
/>
<field name="active" />
</list>
</field>
</record>
<record id="tier_definition_view_form" model="ir.ui.view">
<field name="name">tier.definition.form</field>
<field name="model">tier.definition</field>
<field name="arch" type="xml">
<form string="Tier Definition">
<sheet>
<div class="o_form_label" name="button_box" />
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
invisible="active"
/>
<div class="oe_title">
<span class="oe_edit_only">Name</span>
<h1>
<field
name="name"
required="1"
placeholder="e.g. Tier Validation for..."
/>
</h1>
</div>
<group>
<group name="left">
<field name="model_id" options="{'no_create': True}" />
<field name="model" invisible="1" />
<field name="review_type" />
<field name="allow_write_for_reviewer" />
<field
name="reviewer_id"
invisible="review_type != 'individual'"
/>
<field
name="reviewer_group_id"
invisible="review_type != 'group'"
/>
<field
name="reviewer_field_id"
invisible="review_type != 'field'"
options="{'no_create': True}"
/>
</group>
<group name="right">
<field
name="company_id"
groups="base.group_multi_company"
options="{'no_create': True}"
/>
<field name="sequence" />
<field name="approve_sequence" />
<label
for="approve_sequence_bypass"
class="o_form_label"
invisible="not approve_sequence"
/>
<div
name="approve_sequence_bypass_div"
class="o_wrap_field d-flex d-sm-contents flex-column mb-3 mb-sm-0"
invisible="not approve_sequence"
>
<field name="approve_sequence_bypass" />
<span
>Bypass, if previous tier was validated by same reviewer</span>
</div>
</group>
</group>
<notebook>
<page name="apply" string="Apply On">
<group name="bottom">
<field name="definition_type" />
<field
name="definition_domain"
widget="domain"
options="{'model': 'model'}"
invisible="definition_type != 'domain'"
/>
</group>
</page>
<page name="options" string="More Options">
<group name="more_option">
<group name="notify">
<field name="notify_on_create" />
<field name="notify_on_pending" />
<field name="notify_on_accepted" />
<field name="notify_on_rejected" />
<field name="notify_on_restarted" />
<field name="has_comment" />
<field name="notify_reminder_delay" />
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="tier_definition_view_search" model="ir.ui.view">
<field name="name">tier.definition.search</field>
<field name="model">tier.definition</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="model_id" />
<field name="reviewer_id" />
<field name="reviewer_group_id" />
<field name="active" />
<separator />
<filter string="All" name="all" domain="[('active', 'in', (False, True))]" />
<group>
<filter string="Model" name="model_id" domain="[]" context="{'group_by':'model_id'}"/>
</group>
</search>
</field>
</record>
<record id="tier_definition_action" model="ir.actions.act_window">
<field name="name">Tier Definition</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">tier.definition</field>
<field name="view_mode">list,form</field>
<field name="context">{'search_default_all': 1}</field>
</record>
<menuitem
id="menu_tier_confirmation"
name="Tier Validations"
parent="base.menu_custom"
/>
<menuitem
id="menu_tier_definition"
parent="menu_tier_confirmation"
action="tier_definition_action"
sequence="10"
/>
</odoo>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="tier_review_view_tree" model="ir.ui.view">
<field name="name">tier.review.list</field>
<field name="model">tier.review</field>
<field name="arch" type="xml">
<list
decoration-danger="status=='rejected'"
decoration-success="status=='approved'"
>
<field name="sequence" />
<field name="requested_by" />
<field name="review_type" />
<field name="name" />
<field name="status" />
<field name="todo_by" />
<field name="done_by" />
<field name="reviewed_date" />
<field name="comment" />
</list>
</field>
</record>
</odoo>

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2024 Moduon Team (https://www.moduon.team)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="tier_validation_exception_tree" model="ir.ui.view">
<field name="name">tier.validation.exception.list</field>
<field name="model">tier.validation.exception</field>
<field name="arch" type="xml">
<list>
<field name="name" />
<field name="model_id" />
<field name="field_ids" widget="many2many_tags" optional="show" />
<field name="company_id" groups="base.group_multi_company" />
<field name="allowed_to_write_under_validation" />
<field name="allowed_to_write_after_validation" />
<field name="group_ids" widget="many2many_tags" />
</list>
</field>
</record>
<record id="tier_validation_exception_form" model="ir.ui.view">
<field name="name">tier.validation.exception.form</field>
<field name="model">tier.validation.exception</field>
<field name="arch" type="xml">
<form string="Tier Validation Exception">
<sheet>
<div class="oe_title">
<label for="name" />
<h1>
<field name="name" nolabel="1" />
</h1>
</div>
<group>
<group name="left">
<field
name="model_id"
options="{'no_create': True, 'no_open': True}"
/>
<field
name="field_ids"
widget="many2many_tags"
options="{'no_create': True}"
/>
<field
name="company_id"
groups="base.group_multi_company"
/>
</group>
<group name="right">
<field name="group_ids" widget="many2many_tags" />
<field name="allowed_to_write_under_validation" />
<field name="allowed_to_write_after_validation" />
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="tier_validation_exception_search" model="ir.ui.view">
<field name="name">tier.validation.exception.search</field>
<field name="model">tier.validation.exception</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="model_id" />
<field name="field_ids" />
<field name="company_id" groups="base.group_multi_company" />
<field name="group_ids" />
<separator />
<filter
string="Write under validation"
name="flt_allowed_to_write_under_validation_true"
domain="[('allowed_to_write_under_validation', '=', True)]"
/>
<filter
string="Write after validation"
name="flt_allowed_to_write_after_validation_true"
domain="[('allowed_to_write_after_validation', '=', True)]"
/>
<group>
<filter
string="Model"
name="grp_model"
domain="[]"
context="{'group_by': 'model_id'}"
/>
<filter
string="Company"
name="grp_company"
domain="[]"
context="{'group_by': 'company_id'}"
/>
</group>
</search>
</field>
</record>
<record id="tier_validation_exception_action" model="ir.actions.act_window">
<field name="name">Tier Validation Exception</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">tier.validation.exception</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p
class="o_view_nocontent_smiling_face"
>Create a new Validation Exception!</p>
<p
>Once created, you can decide which fields you want to be editable when the record:</p>
<ul>
<li>It's in the validation process</li>
<li>It's fully validated</li>
</ul>
</field>
</record>
<menuitem
id="menu_tier_validation_exception"
parent="menu_tier_confirmation"
action="tier_validation_exception_action"
sequence="20"
/>
</odoo>

View File

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import comment_wizard

View File

@ -0,0 +1,25 @@
# Copyright 2019 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models
class CommentWizard(models.TransientModel):
_name = "comment.wizard"
_description = "Comment Wizard"
validate_reject = fields.Char()
res_model = fields.Char()
res_id = fields.Integer()
review_ids = fields.Many2many(comodel_name="tier.review")
comment = fields.Char(required=True)
def add_comment(self):
self.ensure_one()
rec = self.env[self.res_model].browse(self.res_id)
self.review_ids.write({"comment": self.comment})
if self.validate_reject == "validate":
rec._validate_tier(self.review_ids)
if self.validate_reject == "reject":
rec._rejected_tier(self.review_ids)
rec._update_counter({"review_deleted": True})

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2019 Ecosoft Co., Ltd. (http://ecosoft.co.th)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_comment_wizard" model="ir.ui.view">
<field name="name">Comment Wizard</field>
<field name="model">comment.wizard</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Comment">
<group>
<field colspan="2" name="comment" nolabel="1" />
</group>
<footer>
<button
name="add_comment"
string="Comment"
type="object"
class="oe_highlight"
/>
<button special="cancel" string="Cancel" class="oe_link" />
</footer>
</form>
</field>
</record>
</odoo>