mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 06:32:00 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
46
odoo-bringout-oca-server-ux-base_tier_validation/README.md
Normal file
46
odoo-bringout-oca-server-ux-base_tier_validation/README.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Base Tier Validation
|
||||
|
||||
Odoo addon: base_tier_validation
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install odoo-bringout-oca-server-ux-base_tier_validation
|
||||
```
|
||||
|
||||
## Dependencies
|
||||
|
||||
This addon depends on:
|
||||
- mail
|
||||
|
||||
## Manifest Information
|
||||
|
||||
- **Name**: Base Tier Validation
|
||||
- **Version**: 16.0.4.0.2
|
||||
- **Category**: Tools
|
||||
- **License**: AGPL-3
|
||||
- **Installable**: True
|
||||
|
||||
## Source
|
||||
|
||||
Based on [OCA/server-ux](https://github.com/OCA/server-ux) branch 16.0, addon `base_tier_validation`.
|
||||
|
||||
## License
|
||||
|
||||
This package maintains the original AGPL-3 license from the upstream Odoo project.
|
||||
|
||||
## Documentation
|
||||
|
||||
- Overview: doc/OVERVIEW.md
|
||||
- Architecture: doc/ARCHITECTURE.md
|
||||
- Models: doc/MODELS.md
|
||||
- Controllers: doc/CONTROLLERS.md
|
||||
- Wizards: doc/WIZARDS.md
|
||||
- Reports: doc/REPORTS.md
|
||||
- Security: doc/SECURITY.md
|
||||
- Install: doc/INSTALL.md
|
||||
- Usage: doc/USAGE.md
|
||||
- Configuration: doc/CONFIGURATION.md
|
||||
- Dependencies: doc/DEPENDENCIES.md
|
||||
- Troubleshooting: doc/TROUBLESHOOTING.md
|
||||
- FAQ: doc/FAQ.md
|
||||
|
|
@ -0,0 +1,263 @@
|
|||
.. 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:3ef2fb9504521a977d133828ec0237701cd3b45b490e193c410a4c6cb4c226c0
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |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/16.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-16-0/server-ux-16-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=16.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.
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To configure Tier Validations, you need to:
|
||||
|
||||
#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
|
||||
#. 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 *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:
|
||||
|
||||
#. Go to *Settings > Technical > Tier Validations > Tier Validation Exceptions*.
|
||||
#. Create as many tiers validation exceptions as you want for any model
|
||||
having tier validation functionality.
|
||||
#. Add desired fields to be checked in *Fields*.
|
||||
#. Add desired groups that can use this Exception in *Groups*.
|
||||
#. 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
|
||||
=========
|
||||
|
||||
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:%2016.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>
|
||||
* 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
|
||||
|
||||
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/16.0/base_tier_validation>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import models
|
||||
from . import wizard
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
# Copyright 2017-19 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": "16.0.4.0.2",
|
||||
"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",
|
||||
],
|
||||
"assets": {
|
||||
"web.assets_backend": [
|
||||
"/base_tier_validation/static/src/scss/systray.scss",
|
||||
"/base_tier_validation/static/src/scss/review.scss",
|
||||
"/base_tier_validation/static/src/js/main.esm.js",
|
||||
"/base_tier_validation/static/src/js/ir_model.esm.js",
|
||||
"/base_tier_validation/static/src/js/systray_service.esm.js",
|
||||
"/base_tier_validation/static/src/js/systray.esm.js",
|
||||
"/base_tier_validation/static/src/js/review_groups.esm.js",
|
||||
"/base_tier_validation/static/src/js/reviewer_menu_view.esm.js",
|
||||
"/base_tier_validation/static/src/js/tier_review_widget.esm.js",
|
||||
"/base_tier_validation/static/src/js/review_group_view.esm.js",
|
||||
"/base_tier_validation/static/src/js/reviewer_menu_container.esm.js",
|
||||
"/base_tier_validation/static/src/js/review_notification_handler.esm.js",
|
||||
"/base_tier_validation/static/src/xml/**/*",
|
||||
],
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?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="numbercall">-1</field>
|
||||
<field
|
||||
name="nextcall"
|
||||
eval="(datetime.now() + timedelta(minutes=5)).strftime('%Y-%m-%d %H:%M:%S')"
|
||||
/>
|
||||
<field name="doall" eval="False" />
|
||||
<field name="model_id" ref="model_tier_definition" />
|
||||
<field name="code">model._cron_send_review_reminder()</field>
|
||||
<field name="state">code</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -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>
|
||||
|
|
@ -0,0 +1,916 @@
|
|||
# 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"
|
||||
"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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
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_review.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "A review was accepted"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was accepted. (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "A review was rejected by %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
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,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
|
||||
#, python-format
|
||||
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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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_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_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_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:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
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_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
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_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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
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,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
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Option to forward a tier validation to other reviewer, and backward"
|
||||
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/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#: 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/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "The review has been reset by %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This action needs to be validated for at least one record. \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.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
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
|
||||
#: 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_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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)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 ""
|
||||
|
|
@ -0,0 +1,916 @@
|
|||
# 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"
|
||||
"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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr "0 na čekanju"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr "<i class=\"fa fa-info-circle\"/> Ovaj zapis treba biti validiran."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr "<i class=\"fa fa-thumbs-down\"/> Operacija je <b>odbijena</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
msgstr "<i class=\"fa fa-thumbs-up\"/> Operacija je <b>validirana</b>!"
|
||||
|
||||
#. 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\">Naziv</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>Preskači, ako je prethodnji nivo validiran od strane istog pregledača</span>"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "A review has been requested %s days ago."
|
||||
msgstr "Pregled je zatražen prije %s dana."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review has been requested by %s."
|
||||
msgstr "Pregled je zatražen od %s."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was accepted"
|
||||
msgstr "Pregled je prihvaćen"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was accepted. (%s)"
|
||||
msgstr "Pregled je prihvaćen. (%s)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was rejected by %(user)s. (%(comment)s)"
|
||||
msgstr "Pregled je odbačen od %(user)s. (%(comment)s)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was rejected by %s."
|
||||
msgstr "Pregled je odbačen od %s."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A validation process is still open for at least one record."
|
||||
msgstr "Proces validacije je još uvijek otvoren za najmanje jedan zapis."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
|
||||
msgid "Active"
|
||||
msgstr "Aktivan"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
msgstr "Aktivnost"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
|
||||
msgid "All"
|
||||
msgstr "Sve"
|
||||
|
||||
#. 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 "Dozvoljene grupe za korišćenje ovog izuzetka validacije nivoa"
|
||||
|
||||
#. 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 "Bilo koji korisnik u specifičnoj grupi"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
||||
msgid "Apply On"
|
||||
msgstr "Primjeni na"
|
||||
|
||||
#. 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 "Redoslijed odobravanje po specificiranom broju sekvence"
|
||||
|
||||
#. 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 "Preskač odobravanje sekvence"
|
||||
|
||||
#. 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 "Odobri po sekvenci"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
|
||||
msgid "Approved"
|
||||
msgstr "Odobren"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
||||
msgid "Archived"
|
||||
msgstr "Arhivirano"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
|
||||
#, python-format
|
||||
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 "Može Ovjeriti"
|
||||
|
||||
#. 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 "Otkaži"
|
||||
|
||||
#. 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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
msgid "Comment"
|
||||
msgstr "Komentar"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_comment_wizard
|
||||
msgid "Comment Wizard"
|
||||
msgstr "Čarobnjak komentara"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
|
||||
msgid "Comments"
|
||||
msgstr "Komentari"
|
||||
|
||||
#. 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 "Preduzeće"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "Postavke"
|
||||
|
||||
#. 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 "Kreiraj novi izuzetak validacije!"
|
||||
|
||||
#. 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 "Kreirao"
|
||||
|
||||
#. 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 "Kreirano"
|
||||
|
||||
#. 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 "Definicija"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
|
||||
msgid "Definition Domain"
|
||||
msgstr "Domen definicije"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
msgid "Description"
|
||||
msgstr "Opis"
|
||||
|
||||
#. 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 "Prikazani naziv"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__display_status
|
||||
msgid "Display Status"
|
||||
msgstr "Prikaži status"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__definition_type__domain
|
||||
msgid "Domain"
|
||||
msgstr "Domena"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
|
||||
msgid "Done By"
|
||||
msgstr "Riješio"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
msgid "Done by"
|
||||
msgstr "Uradio"
|
||||
|
||||
#. 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 "Polje u povezanom zapisu"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__field_ids
|
||||
msgid "Fields"
|
||||
msgstr "Polja"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "Group %s"
|
||||
msgstr "Grupa %s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
|
||||
msgid "Group By"
|
||||
msgstr "Grupiši po"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__group_ids
|
||||
msgid "Groups"
|
||||
msgstr "Grupe"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__has_comment
|
||||
msgid "Has Comment"
|
||||
msgstr "Ima komentar"
|
||||
|
||||
#. 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_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_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:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
msgstr "Je li potrebna ponovna evaluacija"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.actions.act_window,help:base_tier_validation.tier_validation_exception_action
|
||||
msgid "It's fully validated"
|
||||
msgstr "Potpuno je validirano"
|
||||
|
||||
#. 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 "U procesu validacije je"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Zadnje mijenjano"
|
||||
|
||||
#. 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 posljednjeg podsjetnka"
|
||||
|
||||
#. 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 "Zadnji ažurirao"
|
||||
|
||||
#. 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 "Zadnje ažurirano"
|
||||
|
||||
#. 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 "Naziv modela"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
||||
msgid "More Options"
|
||||
msgstr "Više opcija"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception__name
|
||||
msgid "Name"
|
||||
msgstr "Naziv:"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__need_validation
|
||||
msgid "Need Validation"
|
||||
msgstr "Potrebna ovjera"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_definition.py:0
|
||||
#, python-format
|
||||
msgid "New Tier Validation"
|
||||
msgstr "Nova validacija nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
|
||||
msgid "Next Review"
|
||||
msgstr "Sljedeća ovjera"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr "Sljedeće: %s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "No reviews to do."
|
||||
msgstr "Nema pregleda za uraditi."
|
||||
|
||||
#. 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 "Obavijesti pregledače o prihvatanju"
|
||||
|
||||
#. 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 "Obavijesti pregledače o kreiranju"
|
||||
|
||||
#. 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 "Obavijesti pregledače o odbacivanju"
|
||||
|
||||
#. 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 "Obavijesti pregledače o restartovanju"
|
||||
|
||||
#. 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
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr "Operacija je <b>odbijena</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr "Operacija je <b>validirana</b>!"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Option to forward a tier validation to other reviewer, and backward"
|
||||
msgstr "Opcija za preusmjeravanje validacije nivoa drugom pregledaču, i nazad"
|
||||
|
||||
#. 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 "Opcija za korišćenje python formule za dobijanje pregledača i pronalaženje dokumenata"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Na čekanju"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
msgstr "Ponovo ocijeni preglede"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
|
||||
msgid "Referenced Model"
|
||||
msgstr "Referentni model"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "Reject"
|
||||
msgstr "Odbaci"
|
||||
|
||||
#. 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 "Odbijeno"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
|
||||
msgid "Rejected Message"
|
||||
msgstr "Poruka uz odbijanje"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
|
||||
msgid "Related Document ID"
|
||||
msgstr "Povezani ID dokumenta"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
|
||||
msgid "Related Document Model"
|
||||
msgstr "Povezani model dokumenta"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Request Validation"
|
||||
msgstr "Zatražite validaciju"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
|
||||
msgid "Requested By"
|
||||
msgstr "Zahtjevao"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
msgid "Requested by"
|
||||
msgstr "Zatraženo od"
|
||||
|
||||
#. 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 "Restartaj validaciju"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
|
||||
msgid "Review"
|
||||
msgstr "Pregled"
|
||||
|
||||
#. 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 "Pregledač"
|
||||
|
||||
#. 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 "Polje pregledača"
|
||||
|
||||
#. 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 "Grupa pregledača"
|
||||
|
||||
#. 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 "Ovejritelji"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr "Pregledi"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
msgid "Send Tier Review Reminder"
|
||||
msgstr "Pošalji podsjetnike pregleda nivoa"
|
||||
|
||||
#. 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 "Pošalji podsjetničku poruku o pregledima na čekanju"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
msgid "Sequence"
|
||||
msgstr "Sekvenca"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
|
||||
msgid "Specific user"
|
||||
msgstr "Specifičan korisnik"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "The review has been reset by %s."
|
||||
msgstr "Pregled je resetovao %s."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr "Nema res.users u odabranom polju"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr "Ovaj %s treba biti validiran"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This action needs to be validated for at least one record. \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 "Nivo"
|
||||
|
||||
#. 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 "Definicija granice"
|
||||
|
||||
#. 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 "Formula nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
msgstr "Preusmjeravanje nivoa naprijed i nazad"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_tier_review
|
||||
msgid "Tier Review"
|
||||
msgstr "Pregled nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Tier Validation"
|
||||
msgstr "Validacija nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_tier_validation
|
||||
msgid "Tier Validation (abstract)"
|
||||
msgstr "Validacija nivoa (apstraktna)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
|
||||
msgid "Tier Validation Accepted Notification"
|
||||
msgstr "Obavještenje o prihvaćenoj validaciji nivoa"
|
||||
|
||||
#. 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 "Izuzetak validacije nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
|
||||
msgid "Tier Validation Exceptions"
|
||||
msgstr "Izuzeci validacije nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_rejected
|
||||
msgid "Tier Validation Rejected Notification"
|
||||
msgstr "Obavještenje o odbačenoj validaciji nivoa"
|
||||
|
||||
#. 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 "Podsjetnik validacije nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||
msgid "Tier Validation Requested"
|
||||
msgstr "Zatražena validacija nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
|
||||
msgid "Tier Validation Restarted"
|
||||
msgstr "Restartovana validacija nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
|
||||
msgid "Tier Validations"
|
||||
msgstr "Validacije nivoa"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
|
||||
msgid "To Validate Message"
|
||||
msgstr "Poruka za ovjeru"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
|
||||
msgid "Todo By"
|
||||
msgstr "Uradi od"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
msgid "Todo by"
|
||||
msgstr "Uradi od"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_res_users
|
||||
msgid "User"
|
||||
msgstr "Korisnik"
|
||||
|
||||
#. 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 "Važeće polje modela"
|
||||
|
||||
#. 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 "Važeće polje pregledača"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "Validate"
|
||||
msgstr "Ovjeri"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
|
||||
msgid "Validate Reject"
|
||||
msgstr "Validiraj odbacivanje"
|
||||
|
||||
#. 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 "Odobreno"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
|
||||
msgid "Validated Message"
|
||||
msgstr "Poruka za ovjereno"
|
||||
|
||||
#. 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 "Validirao"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
msgid "Validation Date"
|
||||
msgstr "Datum validacije"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
|
||||
msgid "Validation Formated Date"
|
||||
msgstr "Formatiran datum validacije"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
|
||||
msgid "Validation Status"
|
||||
msgstr "Status ovjeravanja"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
|
||||
msgid "Validations"
|
||||
msgstr "Ovjeravanja"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
|
||||
msgid "Without validation"
|
||||
msgstr "Bez validacije"
|
||||
|
||||
#. 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 "Piši nakon validacije"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
|
||||
msgid "Write after validation"
|
||||
msgstr "Piši nakon validacije"
|
||||
|
||||
#. 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 "Piši tijekom validacije"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
|
||||
msgid "Write under validation"
|
||||
msgstr "Piši tijekom validacije"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)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 "npr. Validacija nivoa za..."
|
||||
|
|
@ -0,0 +1,989 @@
|
|||
# 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"
|
||||
"POT-Creation-Date: 2024-07-05 07:53+0000\n"
|
||||
"PO-Revision-Date: 2025-03-10 11:06+0000\n"
|
||||
"Last-Translator: Víctor Martínez <victor.martinez@tecnativa.com>\n"
|
||||
"Language-Team: \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 5.10.2\n"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr "0 Pendientes"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr "<i class=\"fa fa-info-circle\"/> Este registro necesita ser validado."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-thumbs-down\"/> La operación ha sido <b>rechazada</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
msgstr "<i class=\"fa fa-thumbs-up\"/> La operación ha sido <b>validada</b>!"
|
||||
|
||||
#. 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_review.py:0
|
||||
#, python-format
|
||||
msgid "A review has been requested %s days ago."
|
||||
msgstr "Una revisión ha sido solicitado hace %s días."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
msgstr "Actividades"
|
||||
|
||||
#. 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,help:base_tier_validation.field_tier_validation_exception__group_ids
|
||||
msgid "Allowed groups to use this Tier Validation Exception"
|
||||
msgstr "Grupos permitidos para utilizar esta Excepción de Validación de Nivel"
|
||||
|
||||
#. 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"At least one of these fields must be checked! Write under Validation, Write "
|
||||
"after Validation"
|
||||
msgstr ""
|
||||
"¡Al menos uno de estos campos debe estar marcado! Escribir en Validación, "
|
||||
"Escribir después de Validación"
|
||||
|
||||
#. 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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
msgid "Comment"
|
||||
msgstr "Comentario"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_comment_wizard
|
||||
msgid "Comment Wizard"
|
||||
msgstr "Asistente de 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 "Opciones de configuración"
|
||||
|
||||
#. 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 "¡Crea una nueva Excepción de Validación!"
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
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 "Hecho Por"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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 "Campos"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
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 "Grupos"
|
||||
|
||||
#. 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_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_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_accepted
|
||||
msgid ""
|
||||
"If set, reviewers will be notified by email when a review related to this "
|
||||
"definition is accepted."
|
||||
msgstr ""
|
||||
"Si está establecido, los revisores serán notificados por email cuando una "
|
||||
"revisión relativa a ésta definición es aceptada."
|
||||
|
||||
#. 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 está establecido, los revisores serán notificados por email cuando una "
|
||||
"revisión relativa a ésta definición es rechazada."
|
||||
|
||||
#. 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 está establecido, los revisores serán notificados por email cuando una "
|
||||
"revisión relativa a ésta definición se ha reiniciado."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
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 "Completamente Validado"
|
||||
|
||||
#. 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 "Está en proceso de Validación"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Última modificación en"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__last_reminder_date
|
||||
msgid "Last Reminder Date"
|
||||
msgstr "Fecha de último recordatorio"
|
||||
|
||||
#. 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 "Nombre del modelo"
|
||||
|
||||
#. 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_validation_exception__name
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#. 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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr "Siguiente: %s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
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 revisores cuando se Acepta"
|
||||
|
||||
#. 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 revisores cuando se Rechaza"
|
||||
|
||||
#. 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 revisores cuando se Reinicia"
|
||||
|
||||
#. 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 ""
|
||||
"Número de días después de los cuales se debe publicar un mensaje para "
|
||||
"recordar sobre la validación pendiente (0 = sin recordatorio)"
|
||||
|
||||
#. 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 ""
|
||||
"Una vez creada, puedes decidir qué campos quieres que sean editables en el "
|
||||
"registro:"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr "La operación ha sido <b>rechazada</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr "¡La operación ha sido <b>validada</b>!"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
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"
|
||||
|
||||
#. 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/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
msgstr ""
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#: 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/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr "Revisiones"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "Estado"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr "No hay res.usuarios en el campo seleccionado"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr "Este %s necesita ser validado"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, 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."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__sequence
|
||||
msgid "Tier"
|
||||
msgstr "Secuencia"
|
||||
|
||||
#. 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.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
msgstr "Nivel hacia delante y hacia atrás"
|
||||
|
||||
#. 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 "Excepción de Validación del Tier"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_tier_validation_exception
|
||||
msgid "Tier Validation Exceptions"
|
||||
msgstr "Excepciones de Validación del Tier"
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
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
|
||||
#: 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_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 "Escritura tras Validación"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
|
||||
msgid "Write after validation"
|
||||
msgstr "Escritura tras validación"
|
||||
|
||||
#. 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 "Escritura mientras Validación"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_exception_search
|
||||
msgid "Write under validation"
|
||||
msgstr "Escritura mientras validación"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
"No puedes escribir estos campos tras una validación.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Solo estos campos pueden ser modificados:\n"
|
||||
"- %(allowed_fields)s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
"No puedes escribir estos campos mientras está validándose.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Solo estos campos pueden ser modificados:\n"
|
||||
"- %(allowed_fields)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 "ej. Validación de Nivel por..."
|
||||
|
||||
#~ 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>"
|
||||
|
||||
#~ 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"
|
||||
#~ " !"
|
||||
|
|
@ -0,0 +1,970 @@
|
|||
# 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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr "0 Pendientes"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
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_review.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
msgstr ""
|
||||
|
||||
#. 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,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
|
||||
#, python-format
|
||||
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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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_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_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_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:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
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_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Última modificación el"
|
||||
|
||||
#. 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_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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
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,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
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Option to forward a tier validation to other reviewer, and backward"
|
||||
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/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
msgstr ""
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#: 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/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr "Comentarios"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "Estatus"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr "No hay res.users en el campo seleccionado"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, 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."
|
||||
|
||||
#. 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.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
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
|
||||
#: 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_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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)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 ""
|
||||
#~ "<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 "The operation is under validation."
|
||||
#~ msgstr "La operación está en proceso de validación."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Activities"
|
||||
#~ msgstr "Actividades"
|
||||
|
||||
#~ msgid "Users"
|
||||
#~ msgstr "Usuarios"
|
||||
|
||||
#~ msgid "A review was rejected by {}. ({})"
|
||||
#~ msgstr "{} rechazó una revisión. ({})"
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -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: 2024-01-07 01:59+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 4.17\n"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr "0 In afwachting"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
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\">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 ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "A review has been requested %s days ago."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "A review was rejected by %(user)s. (%(comment)s)"
|
||||
msgstr "Een validatie is afgewezen door %(user)s. (%(comment)s)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "A validation process is still open for at least one record."
|
||||
msgstr "Er is nog steeds 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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
msgstr "Activiteit"
|
||||
|
||||
#. 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,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 "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 ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
|
||||
#, python-format
|
||||
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 ""
|
||||
"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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
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
|
||||
#, fuzzy
|
||||
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 ""
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#. 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_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_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_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:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
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_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Laatst gewijzigd op"
|
||||
|
||||
#. 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 "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 ""
|
||||
|
||||
#. 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_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 "Validatie nodig"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_definition.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr "Volgende: %s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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,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
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr "Operatie is <b>afgewezen</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr "Operation has been <b>Goedgekeurd</b>!"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Option to forward a tier validation to other reviewer, and backward"
|
||||
msgstr ""
|
||||
"Optie om een validatie door te sturen naar een andere beoordelaar en terug"
|
||||
|
||||
#. 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/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "In afwachting"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
msgstr ""
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#: 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/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr "Beoordelingen"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr "Er zijn geen res.users in het geselecteerde veld"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr "Dit %s dient te worden beoordeeld"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, 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."
|
||||
|
||||
#. 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.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
msgstr "Niveau Vooruit & Achteruit"
|
||||
|
||||
#. 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
|
||||
#, fuzzy
|
||||
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 ""
|
||||
|
||||
#. 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 "Tier-validatie (abstract)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||
msgid "Tier Validation Reminder"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: 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 "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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
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
|
||||
#: 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_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 ""
|
||||
|
||||
#. 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)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 "bijv. Tier validatie voor..."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<span>Bypassed, if previous tier was validated by same reviewer</span>"
|
||||
#~ msgstr ""
|
||||
#~ "<span>Overslaan, als het vorige niveau door dezelfde beoordelaar is "
|
||||
#~ "gevalideerd</span>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<i class=\"fa fa-info-circle\"/>\n"
|
||||
#~ " This Record needs to be\n"
|
||||
#~ " validated."
|
||||
#~ msgstr ""
|
||||
#~ "<i class=\"fa fa-info-circle\"/>\n"
|
||||
#~ " Dit Record dient te worden\n"
|
||||
#~ " beoordeeld."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
|
||||
#~ " Operation has been\n"
|
||||
#~ " <b>rejected</b>\n"
|
||||
#~ " ."
|
||||
#~ msgstr ""
|
||||
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
|
||||
#~ " Aanvraag is \n"
|
||||
#~ " <b>afgewezen</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"
|
||||
#~ " Aanvraag is\n"
|
||||
#~ " <b>Gevalideerd</b>\n"
|
||||
#~ " !"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "The operation is under validation."
|
||||
#~ msgstr "De bewerking is onder validatie."
|
||||
|
||||
#, 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"
|
||||
|
|
@ -0,0 +1,995 @@
|
|||
# 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: 2024-02-27 11:35+0000\n"
|
||||
"Last-Translator: jakobkrabbe <jakob@syscare.se>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: sv\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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr "0 Väntar"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
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\">Namn</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_review.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "A review has been requested by %s."
|
||||
msgstr "En granskning har begärts av %s."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was accepted"
|
||||
msgstr "En granskning accepterades"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was accepted. (%s)"
|
||||
msgstr "En granskning accepterades. (%s)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was rejected by %(user)s. (%(comment)s)"
|
||||
msgstr "En granskning nekades av %(user)s. (%(comment)s)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was rejected by %s."
|
||||
msgstr "En granskning nekades av %s."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A validation process is still open for at least one record."
|
||||
msgstr "En valideringsprocess är fortfarande öppen för minst en post."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__active
|
||||
msgid "Active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
msgstr "Aktivitet"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
|
||||
msgid "All"
|
||||
msgstr "Alla"
|
||||
|
||||
#. 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 "Alla användare i en specifik grupp"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
||||
msgid "Apply On"
|
||||
msgstr "Applicera på"
|
||||
|
||||
#. 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 "Godkännandeordning enligt angivet sekvensnummer"
|
||||
|
||||
#. 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 "Attest av förbikoppling"
|
||||
|
||||
#. 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 "Attest i viss ordning"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__approved
|
||||
msgid "Approved"
|
||||
msgstr "Attesterad"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_form
|
||||
msgid "Archived"
|
||||
msgstr "Arkiverad"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
|
||||
#, python-format
|
||||
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 ""
|
||||
"Förbikopplad (autovaliderad), om föregående nivå validerades av samma "
|
||||
"granskare"
|
||||
|
||||
#. 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 granska"
|
||||
|
||||
#. 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 attesteras kommer att vara ikryssad om attest är i kö och\n"
|
||||
" attestsekvensen har uppnåtts"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#. 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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_comment_wizard
|
||||
msgid "Comment Wizard"
|
||||
msgstr "Kommentarsguide"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__comment
|
||||
msgid "Comments"
|
||||
msgstr "Kommentarer"
|
||||
|
||||
#. 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 "Bolag"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "Konfigurationsinställningar"
|
||||
|
||||
#. 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 "Skapad av"
|
||||
|
||||
#. 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 "Skapad den"
|
||||
|
||||
#. 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 "Definition"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__definition_domain
|
||||
msgid "Definition Domain"
|
||||
msgstr "Definitionsdomän"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
msgid "Description"
|
||||
msgstr "Beskrivning"
|
||||
|
||||
#. 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 "Visningsnamn"
|
||||
|
||||
#. 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 "Domän"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__done_by
|
||||
msgid "Done By"
|
||||
msgstr "Gjord av"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
msgid "Done by"
|
||||
msgstr "Gjord av"
|
||||
|
||||
#. 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 "Fält i relaterad post"
|
||||
|
||||
#. 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
|
||||
#, python-format
|
||||
msgid "Group %s"
|
||||
msgstr "Grupp %s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_definition_view_search
|
||||
msgid "Group By"
|
||||
msgstr "Gruppera efter"
|
||||
|
||||
#. 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 "Har kommentar"
|
||||
|
||||
#. 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_definition__notify_on_create
|
||||
msgid ""
|
||||
"If set, all possible reviewers will be notified by email when this "
|
||||
"definition is triggered."
|
||||
msgstr ""
|
||||
"Om den är inställd kommer alla möjliga attesterare att meddelas via e-post "
|
||||
"när denna definition aktiveras."
|
||||
|
||||
#. 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:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
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_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Senast ändrad den"
|
||||
|
||||
#. 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 "Senast uppdaterad av"
|
||||
|
||||
#. 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 "Senast uppdaterad den"
|
||||
|
||||
#. 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 "Modell"
|
||||
|
||||
#. 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 "Fler alternativ"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: 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 "Behöver validering"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_definition.py:0
|
||||
#, python-format
|
||||
msgid "New Tier Validation"
|
||||
msgstr "Ny attestering"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__next_review
|
||||
msgid "Next Review"
|
||||
msgstr "Nästa granskning"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr "Nästa: %s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "No reviews to do."
|
||||
msgstr "Inga attester att göra."
|
||||
|
||||
#. 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 "Meddela granskare vid skapande"
|
||||
|
||||
#. 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,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
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr "Åtgärden har blivit <b>avvisats</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr "Åtgärden har <b>validerats</b>!"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Option to forward a tier validation to other reviewer, and backward"
|
||||
msgstr ""
|
||||
"Alternativ för att vidarebefordra en attestering till en annan granskare och "
|
||||
"bakåt"
|
||||
|
||||
#. 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 ""
|
||||
"Alternativ för att använda python-formel för att få fram granskare och hitta "
|
||||
"dokument"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Väntande"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__model_id
|
||||
msgid "Referenced Model"
|
||||
msgstr "Refererad modell"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "Reject"
|
||||
msgstr "Neka"
|
||||
|
||||
#. 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 "Nekad"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__rejected_message
|
||||
msgid "Rejected Message"
|
||||
msgstr "Nekat meddelande"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__res_id
|
||||
msgid "Related Document ID"
|
||||
msgstr "ID för relaterat dokument"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__model
|
||||
msgid "Related Document Model"
|
||||
msgstr "Modell för relaterat dokument"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Request Validation"
|
||||
msgstr "Begär attest"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__requested_by
|
||||
msgid "Requested By"
|
||||
msgstr "Begärd av"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
msgid "Requested by"
|
||||
msgstr "Begärd av"
|
||||
|
||||
#. 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 "Starta om attest"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__review_ids
|
||||
msgid "Review"
|
||||
msgstr "Granska"
|
||||
|
||||
#. 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 "Granskare"
|
||||
|
||||
#. 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 "Granskarfält"
|
||||
|
||||
#. 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 "Granskargrupp"
|
||||
|
||||
#. 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 "Granskare"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr "Granskningar"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
msgid "Sequence"
|
||||
msgstr "Sekvens"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_definition__review_type__individual
|
||||
msgid "Specific user"
|
||||
msgstr "Specifik användare"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "The review has been reset by %s."
|
||||
msgstr "Attesten har återställts av %s."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr "Det finns inga res.users i det valda fältet"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr "Denna %s måste valideras"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This action needs to be validated for at least one record. \n"
|
||||
"Please request a validation."
|
||||
msgstr ""
|
||||
"Denna åtgärd måste valideras för minst en post.\n"
|
||||
"Vänligen begär en validering."
|
||||
|
||||
#. 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 "Attestdefinition"
|
||||
|
||||
#. 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 "Attestformel"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
msgstr "Attest framåt och bakåt"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_tier_review
|
||||
msgid "Tier Review"
|
||||
msgstr "Attestgranskning"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Tier Validation"
|
||||
msgstr "Attestering"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_tier_validation
|
||||
msgid "Tier Validation (abstract)"
|
||||
msgstr "Attestering (sammanfattning)"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_accepted
|
||||
msgid "Tier Validation Accepted Notification"
|
||||
msgstr "Meddelande vid accepterad attestering"
|
||||
|
||||
#. 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 "Meddelande vid nekad attestering"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.activity.type,name:base_tier_validation.mail_act_tier_validation_reminder
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_reminder
|
||||
msgid "Tier Validation Reminder"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_requested
|
||||
msgid "Tier Validation Requested"
|
||||
msgstr "Attestering begärd"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:mail.message.subtype,name:base_tier_validation.mt_tier_validation_restarted
|
||||
msgid "Tier Validation Restarted"
|
||||
msgstr "Attestering omstartad"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.ui.menu,name:base_tier_validation.menu_tier_confirmation
|
||||
msgid "Tier Validations"
|
||||
msgstr "Attesteringar"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__to_validate_message
|
||||
msgid "To Validate Message"
|
||||
msgstr "Att validera meddelande"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__todo_by
|
||||
msgid "Todo By"
|
||||
msgstr "Att göra av"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
msgid "Todo by"
|
||||
msgstr "Att göra av"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model,name:base_tier_validation.model_res_users
|
||||
msgid "User"
|
||||
msgstr "Användare"
|
||||
|
||||
#. 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 "Granskarfält"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "Validate"
|
||||
msgstr "Validera"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_comment_wizard__validate_reject
|
||||
msgid "Validate Reject"
|
||||
msgstr "Validera Neka"
|
||||
|
||||
#. 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 "Validerad"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validated_message
|
||||
msgid "Validated Message"
|
||||
msgstr "Validera meddelande"
|
||||
|
||||
#. 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 "Attesterad av"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
msgid "Validation Date"
|
||||
msgstr "Attestdatum"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_formated_date
|
||||
msgid "Validation Formated Date"
|
||||
msgstr "Attestformaterat datum"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__validation_status
|
||||
msgid "Validation Status"
|
||||
msgstr "Atteststatus"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__review_ids
|
||||
msgid "Validations"
|
||||
msgstr "Attesteringar"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_validation__validation_status__no
|
||||
msgid "Without validation"
|
||||
msgstr "Utan attestering"
|
||||
|
||||
#. 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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)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 "t.ex. attest för..."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<span>Bypassed, if previous tier was validated by same reviewer</span>"
|
||||
#~ msgstr ""
|
||||
#~ "<span>Förbigås om föregående nivå validerades av samma granskare</span>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<i class=\"fa fa-info-circle\"/>\n"
|
||||
#~ " This Record needs to be\n"
|
||||
#~ " validated."
|
||||
#~ msgstr ""
|
||||
#~ "<i class=\"fa fa-info-circle\"/>\n"
|
||||
#~ " Den här posten måste\n"
|
||||
#~ " valideras."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
|
||||
#~ " Operation has been\n"
|
||||
#~ " <b>rejected</b>\n"
|
||||
#~ " ."
|
||||
#~ msgstr ""
|
||||
#~ "<i class=\"fa fa-thumbs-down\"/>\n"
|
||||
#~ " Åtgärden har\n"
|
||||
#~ " <b>nekats</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"
|
||||
#~ " Åtgärden har\n"
|
||||
#~ " <b>validerats</b>\n"
|
||||
#~ " !"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "The operation is under validation."
|
||||
#~ msgstr "Åtgärden håller på att attest."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Activities"
|
||||
#~ msgstr "Aktiviteter"
|
||||
|
||||
#~ msgid "More reports about tier validations, i.e., summary of all my reviews"
|
||||
#~ msgstr ""
|
||||
#~ "Fler rapporter om attesteringar, dvs. en sammanfattning av alla mina "
|
||||
#~ "granskningar"
|
||||
|
||||
#~ msgid "Option to trigger server actions on completion of tier reviews"
|
||||
#~ msgstr ""
|
||||
#~ "Alternativ för att utlösa serveråtgärder när attesteringar har slutförts"
|
||||
|
||||
#~ msgid "Tier Reports"
|
||||
#~ msgstr "Attestrapporter"
|
||||
|
||||
#~ msgid "Tier Server Action"
|
||||
#~ msgstr "Attestserveråtgärd"
|
||||
|
||||
#~ msgid "Users"
|
||||
#~ msgstr "Användare"
|
||||
|
||||
#~ msgid "A review was rejected by {}. ({})"
|
||||
#~ msgstr "En granskning nekades av {}. ({})"
|
||||
|
|
@ -0,0 +1,987 @@
|
|||
# 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-06-21 10:25+0000\n"
|
||||
"Last-Translator: Ahmet Yiğit Budak <yigit@altinkaya.com>\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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr "0 Bekleyen"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr "<i class=\"fa fa-info-circle\"/> Bu Kaydın doğrulanması gerekiyor."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr "<i class=\"fa fa-thumbs-down\"/> İşlem <b>reddedildi</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
msgstr "<i class=\"fa fa-thumbs-up\"/> İşlem <b>doğrulandı</b>!"
|
||||
|
||||
#. 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 katman aynı incelemeci tarafından doğrulandıysa atlayın</span>"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "A review has been requested %s days ago."
|
||||
msgstr "%s gün önce bir inceleme istendi."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
msgstr "Aktivite"
|
||||
|
||||
#. 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,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şivlenmiş"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation_exception.py:0
|
||||
#, python-format
|
||||
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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
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 Domaini"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
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 ""
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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_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_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_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 gözden "
|
||||
"geçirenler 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 inceleyenler 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 "
|
||||
"inceleyenler e-postayla bilgilendirilecektir."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
msgstr "Yeniden Doğrulama Gerekli Mi"
|
||||
|
||||
#. 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_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Son Düzenleme"
|
||||
|
||||
#. 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_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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr "Sonraki: %s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
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 "Onaylandığında İnceleyenlere 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 "Reddedildiğinde İnceleyenlere 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şlatıldığında İnceleyenlere 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
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr "İşlem <b>reddedildi</b>."
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr "İşlem <b>doğrulandı</b>!"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Option to forward a tier validation to other reviewer, and backward"
|
||||
msgstr ""
|
||||
"Bir aşama doğrulamasını diğer incelemeciye ve geriye doğru iletme seçeneği"
|
||||
|
||||
#. 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/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Bekleyen"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
msgstr "İncelemeleri Yeniden Değerlendir"
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#: 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/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr "İncelemeler"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "Durumu"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr "Seçili alanda res.kullanıcı yok"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr "Bu %s 'nin doğrulanması gerekiyor"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, 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."
|
||||
|
||||
#. 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 "Katman Formülü"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
msgstr "Katman İleri & Geri"
|
||||
|
||||
#. 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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
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
|
||||
#: 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_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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
"Doğrulamadan sonra bu alanları yazmanıza izin verilmez.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Yalnızca bu alanlar değiştirilebilir:\n"
|
||||
"- %(allowed_fields)s"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
"Doğrulama esnasındai bu alanları yazmanıza izin verilmiyor.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Yalnızca bu alanlar değiştirilebilir:\n"
|
||||
"- %(allowed_fields)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 ""
|
||||
#~ "<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 "The operation is under validation."
|
||||
#~ msgstr "İşlem doğrulama aşamasındadır."
|
||||
|
|
@ -0,0 +1,951 @@
|
|||
# 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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "0 Pending"
|
||||
msgstr "0 待审批"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-info-circle\"/> This Record needs to be validated."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_label
|
||||
msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
|
||||
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_review.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "A review was accepted"
|
||||
msgstr "审批已通过"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "A review was accepted. (%s)"
|
||||
msgstr "审批已通过。 ( %s )"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
msgid "Activity"
|
||||
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,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
|
||||
#, python-format
|
||||
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/xml/tier_review_template.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
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__name
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__name
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
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_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_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_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:ir.model.fields,field_description:base_tier_validation.field_tier_validation__is_reevaluation_required
|
||||
msgid "Is Reevaluation Required"
|
||||
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_comment_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review____last_update
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_validation_exception____last_update
|
||||
msgid "Last Modified on"
|
||||
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_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
|
||||
#, python-format
|
||||
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
|
||||
#, python-format
|
||||
msgid "Next: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-javascript
|
||||
#: code:addons/base_tier_validation/static/src/xml/systray.xml:0
|
||||
#, python-format
|
||||
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,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
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>rejected</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "Operation has been <b>validated</b>!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.res_config_settings_view_form_budget
|
||||
msgid "Option to forward a tier validation to other reviewer, and backward"
|
||||
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/xml/systray.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
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "待审批"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model_terms:ir.ui.view,arch_db:base_tier_validation.tier_validation_buttons
|
||||
msgid "Reevaluate Reviews"
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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
|
||||
#: 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/xml/systray.xml:0
|
||||
#: code:addons/base_tier_validation/static/src/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_res_users__review_ids
|
||||
#, python-format
|
||||
msgid "Reviews"
|
||||
msgstr "审批"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#: model:ir.actions.server,name:base_tier_validation.ir_cron_auto_tier_validation_ir_actions_server
|
||||
#: model:ir.cron,cron_name:base_tier_validation.ir_cron_auto_tier_validation
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_definition__sequence
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__status
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "状态"
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "The review has been reset by %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_review.py:0
|
||||
#, python-format
|
||||
msgid "There are no res.users in the selected field"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid "This %s needs to be validated"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This action needs to be validated for at least one record. \n"
|
||||
"Please request a validation."
|
||||
msgstr ""
|
||||
"此操作需要至少对一条记录进行审批。\n"
|
||||
"请发起审批申请。"
|
||||
|
||||
#. 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.fields,field_description:base_tier_validation.field_res_config_settings__module_base_tier_validation_forward
|
||||
msgid "Tier Forward & Backward"
|
||||
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/xml/tier_review_template.xml:0
|
||||
#, python-format
|
||||
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/xml/tier_review_template.xml:0
|
||||
#: model:ir.model.fields,field_description:base_tier_validation.field_tier_review__reviewed_date
|
||||
#, python-format
|
||||
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
|
||||
#: 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_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
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_tier_validation
|
||||
#. odoo-python
|
||||
#: code:addons/base_tier_validation/models/tier_validation.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n"
|
||||
"\n"
|
||||
"Only those fields can be modified:\n"
|
||||
"- %(allowed_fields)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 "The operation is under validation."
|
||||
#~ 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表达式"
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
# 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(env, version):
|
||||
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(".", "_")
|
||||
# validated column
|
||||
if not openupgrade.column_exists(env.cr, table_name, "validated"):
|
||||
openupgrade.logged_query(
|
||||
env.cr,
|
||||
f"""
|
||||
ALTER TABLE {table_name}
|
||||
ADD COLUMN IF NOT EXISTS validated BOOLEAN
|
||||
""",
|
||||
)
|
||||
# Define all those with reviews as validated and then define
|
||||
# as not validated those with unapproved reviews.
|
||||
openupgrade.logged_query(
|
||||
env.cr,
|
||||
f"""
|
||||
UPDATE {table_name} SET validated = true WHERE id IN (
|
||||
SELECT DISTINCT(tr.res_id)
|
||||
FROM tier_review AS tr
|
||||
WHERE tr.model = '{model_name}'
|
||||
)
|
||||
""",
|
||||
)
|
||||
openupgrade.logged_query(
|
||||
env.cr,
|
||||
f"""
|
||||
UPDATE {table_name} SET validated = false WHERE id IN (
|
||||
SELECT DISTINCT(tr.res_id)
|
||||
FROM tier_review AS tr
|
||||
WHERE tr.model = '{model_name}'
|
||||
AND tr.status not in ('approved', 'forwarded')
|
||||
)
|
||||
""",
|
||||
)
|
||||
# rejected column
|
||||
if not openupgrade.column_exists(env.cr, table_name, "rejected"):
|
||||
openupgrade.logged_query(
|
||||
env.cr,
|
||||
f"""
|
||||
ALTER TABLE {table_name}
|
||||
ADD COLUMN IF NOT EXISTS rejected BOOLEAN
|
||||
""",
|
||||
)
|
||||
# Define rejected if any review is rejected
|
||||
openupgrade.logged_query(
|
||||
env.cr,
|
||||
f"""
|
||||
UPDATE {table_name} SET rejected = true WHERE id IN (
|
||||
SELECT DISTINCT(tr.res_id)
|
||||
FROM tier_review AS tr
|
||||
WHERE tr.model = '{model_name}' AND tr.status = 'rejected'
|
||||
)
|
||||
""",
|
||||
)
|
||||
# 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 = 'validated'
|
||||
WHERE validated = true AND coalesce(rejected, false) = false
|
||||
""",
|
||||
)
|
||||
openupgrade.logged_query(
|
||||
env.cr,
|
||||
f"""
|
||||
UPDATE {table_name} SET validation_status = 'rejected'
|
||||
WHERE validated = false AND rejected = true;
|
||||
""",
|
||||
)
|
||||
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'
|
||||
)
|
||||
""",
|
||||
)
|
||||
|
|
@ -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
|
||||
|
|
@ -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")
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
# 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 = {}
|
||||
domain = [
|
||||
("status", "=", "pending"),
|
||||
("can_review", "=", True),
|
||||
("id", "in", self.env.user.review_ids.ids),
|
||||
]
|
||||
review_groups = self.env["tier.review"].read_group(domain, ["model"], ["model"])
|
||||
for review_group in review_groups:
|
||||
model = review_group["model"]
|
||||
reviews = self.env["tier.review"].search(review_group.get("__domain"))
|
||||
if reviews:
|
||||
records = (
|
||||
self.env[model]
|
||||
.with_user(self.env.user)
|
||||
.search([("id", "in", reviews.mapped("res_id"))])
|
||||
.filtered(
|
||||
lambda x: x.validation_status != "rejected" and x.can_review
|
||||
)
|
||||
)
|
||||
# Excludes any cancelled records depending on the structure of the model
|
||||
if self.env[model]._state_field in self.env[model]._fields:
|
||||
records = records.filtered(
|
||||
lambda x: x[x._state_field] != x._cancel_state
|
||||
)
|
||||
if records:
|
||||
record = self.env[model]
|
||||
user_reviews[model] = {
|
||||
"id": records[0].id,
|
||||
"name": record._description,
|
||||
"model": model,
|
||||
"active_field": "active" in record._fields,
|
||||
"icon": modules.module.get_module_icon(record._original_module),
|
||||
"type": "tier_review",
|
||||
"pending_count": len(records),
|
||||
}
|
||||
return list(user_reviews.values())
|
||||
|
||||
@api.model
|
||||
def get_reviews(self, data):
|
||||
review_obj = self.env["tier.review"].with_context(lang=self.env.user.lang)
|
||||
res = review_obj.search_read([("id", "in", data.get("res_ids"))])
|
||||
for r in res:
|
||||
# Get the translated status value.
|
||||
r["display_status"] = dict(
|
||||
review_obj.fields_get("status")["status"]["selection"]
|
||||
).get(r.get("status"))
|
||||
# Convert to datetime timezone
|
||||
if r["reviewed_date"]:
|
||||
r["reviewed_date"] = fields.Datetime.context_timestamp(
|
||||
self, r["reviewed_date"]
|
||||
)
|
||||
return res
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
# 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 _("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"),
|
||||
],
|
||||
)
|
||||
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_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):
|
||||
for rec in self:
|
||||
rec.valid_reviewer_field_ids = (
|
||||
self.env["ir.model.fields"]
|
||||
.sudo()
|
||||
.search([("model", "=", rec.model), ("relation", "=", "res.users")])
|
||||
)
|
||||
|
||||
def _get_review_needing_reminder(self):
|
||||
"""Return all the reviews that have the reminder setup."""
|
||||
self.ensure_one()
|
||||
if not self.notify_reminder_delay:
|
||||
return self.env["tier.review"]
|
||||
review_date = fields.Datetime.subtract(
|
||||
fields.Datetime.now(), days=self.notify_reminder_delay
|
||||
)
|
||||
return self.env["tier.review"].search(
|
||||
[
|
||||
("definition_id", "=", self.id),
|
||||
("status", "=", "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()
|
||||
|
|
@ -0,0 +1,184 @@
|
|||
# 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", readonly=True)
|
||||
status = fields.Selection(
|
||||
selection=[
|
||||
("pending", "Pending"),
|
||||
("rejected", "Rejected"),
|
||||
("approved", "Approved"),
|
||||
],
|
||||
default="pending",
|
||||
)
|
||||
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", readonly=True)
|
||||
reviewer_id = fields.Many2one(related="definition_id.reviewer_id", readonly=True)
|
||||
reviewer_group_id = fields.Many2one(
|
||||
related="definition_id.reviewer_group_id", readonly=True
|
||||
)
|
||||
reviewer_field_id = fields.Many2one(
|
||||
related="definition_id.reviewer_field_id", readonly=True
|
||||
)
|
||||
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", readonly=True)
|
||||
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", readonly=True
|
||||
)
|
||||
approve_sequence_bypass = fields.Boolean(
|
||||
related="definition_id.approve_sequence_bypass", readonly=True
|
||||
)
|
||||
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):
|
||||
for record in self:
|
||||
record.can_review = record._can_review_value()
|
||||
|
||||
def _can_review_value(self):
|
||||
if self.status != "pending":
|
||||
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.users"]
|
||||
|
||||
@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 = _("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 = "{} (and {} more)".format(todo_by, num_users - num_show)
|
||||
rec.todo_by = todo_by
|
||||
|
||||
def _get_reviewers(self):
|
||||
if self.reviewer_id or self.reviewer_group_id.users:
|
||||
return self.reviewer_id + self.reviewer_group_id.users
|
||||
reviewer_field = self.env["res.users"]
|
||||
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 not reviewer_field or not reviewer_field._name == "res.users":
|
||||
raise ValidationError(_("There are no res.users in the selected field"))
|
||||
return reviewer_field
|
||||
|
||||
def _get_reminder_notification_subtype(self):
|
||||
return "base_tier_validation.mt_tier_validation_reminder"
|
||||
|
||||
def _get_reminder_activity_type(self):
|
||||
return "base_tier_validation.mail_act_tier_validation_reminder"
|
||||
|
||||
def _notify_review_reminder_body(self):
|
||||
delay = (fields.Datetime.now() - self.create_date).days
|
||||
return _("A review has been requested %s days ago.") % (delay)
|
||||
|
||||
def _send_review_reminder(self):
|
||||
record = self.env[self.model].browse(self.res_id)
|
||||
# Only schedule activity if reviewer is a single user and model has activities
|
||||
if len(self.reviewer_ids) == 1 and hasattr(record, "activity_ids"):
|
||||
self._schedule_review_reminder_activity(record)
|
||||
elif hasattr(record, "message_post"):
|
||||
self._notify_review_reminder(record)
|
||||
else:
|
||||
msg = "Could not send reminder for record %s" % record
|
||||
_logger.exception(msg)
|
||||
self.last_reminder_date = fields.Datetime.now()
|
||||
|
||||
def _notify_review_reminder(self, record):
|
||||
record.message_post(
|
||||
subtype_xmlid=self._get_reminder_notification_subtype(),
|
||||
body=self._notify_review_reminder_body(),
|
||||
)
|
||||
|
||||
def _schedule_review_reminder_activity(self, record):
|
||||
record.activity_schedule(
|
||||
act_type_xmlid=self._get_reminder_activity_type(),
|
||||
note=self._notify_review_reminder_body(),
|
||||
act_values={"user_id": self.reviewer_ids.id},
|
||||
)
|
||||
|
|
@ -0,0 +1,878 @@
|
|||
# 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).
|
||||
|
||||
import json
|
||||
from ast import literal_eval
|
||||
|
||||
from lxml import etree
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.osv.expression import OR
|
||||
from odoo.tools.misc import frozendict
|
||||
|
||||
BASE_EXCEPTION_FIELDS = [
|
||||
"message_main_attachment_id",
|
||||
"message_follower_ids",
|
||||
"access_token",
|
||||
"need_validation",
|
||||
]
|
||||
|
||||
|
||||
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_company_field = "company_id"
|
||||
|
||||
_state_field = "state"
|
||||
_state_from = ["draft"]
|
||||
_state_to = ["confirmed"]
|
||||
_cancel_state = "cancel"
|
||||
|
||||
# TODO: step by step validation?
|
||||
|
||||
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"),
|
||||
("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")
|
||||
next_review = fields.Char(compute="_compute_next_review")
|
||||
is_reevaluation_required = fields.Boolean(
|
||||
compute="_compute_is_reevaluation_required"
|
||||
)
|
||||
|
||||
def _compute_has_comment(self):
|
||||
for rec in self:
|
||||
has_comment = rec.review_ids.filtered(
|
||||
lambda r: r.status == "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 == "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", "=", "pending"),
|
||||
("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 == "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),
|
||||
("status", "=", "pending"),
|
||||
]
|
||||
)
|
||||
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 (
|
||||
"""<i class="fa fa-info-circle" /> %s"""
|
||||
% _("This %s needs to be validated")
|
||||
% self._get_to_validate_message_name()
|
||||
)
|
||||
|
||||
def _get_validated_message(self):
|
||||
msg = """<i class="fa fa-thumbs-up" /> %s""" % _(
|
||||
"""Operation has been <b>validated</b>!"""
|
||||
)
|
||||
return self.validation_status == "validated" and msg or ""
|
||||
|
||||
def _get_rejected_message(self):
|
||||
msg = """<i class="fa fa-thumbs-down" /> %s""" % _(
|
||||
"""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"))
|
||||
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"
|
||||
else:
|
||||
item.validation_status = "no"
|
||||
|
||||
def _compute_next_review(self):
|
||||
for rec in self:
|
||||
review = rec.review_ids.sorted("sequence").filtered(
|
||||
lambda l: l.status == "pending"
|
||||
)[:1]
|
||||
rec.next_review = review and _("Next: %s") % review.name or ""
|
||||
|
||||
def _compute_is_reevaluation_required(self):
|
||||
for rec in self:
|
||||
if isinstance(rec.id, models.NewId):
|
||||
rec.is_reevaluation_required = False
|
||||
continue
|
||||
tiers = (
|
||||
self.env["tier.definition"]
|
||||
.with_context(active_test=True)
|
||||
.search(
|
||||
[
|
||||
("model", "=", self._name),
|
||||
("company_id", "in", [False] + rec._get_company().ids),
|
||||
]
|
||||
)
|
||||
)
|
||||
rec.is_reevaluation_required = False
|
||||
valid_tiers = tiers.filtered(lambda x: rec.evaluate_tier(x))
|
||||
if valid_tiers and rec.review_ids.definition_id:
|
||||
if len(valid_tiers) != len(rec.review_ids.definition_id):
|
||||
rec.is_reevaluation_required = True
|
||||
|
||||
def _compute_need_validation(self):
|
||||
for rec in self:
|
||||
if isinstance(rec.id, models.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 = tiers.filtered(lambda x: rec.evaluate_tier(x))
|
||||
requested_tiers = rec.review_ids.filtered(
|
||||
lambda x: x.status != "pending"
|
||||
).mapped("definition_id")
|
||||
new_tiers = valid_tiers - requested_tiers
|
||||
rec.need_validation = new_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.groups_id.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
|
||||
even when the record is under validation."""
|
||||
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 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":
|
||||
raise ValidationError(
|
||||
_(
|
||||
"This action needs to be validated for at least "
|
||||
"one record. \nPlease request a validation."
|
||||
)
|
||||
)
|
||||
if rec.review_ids and rec.validation_status != "validated":
|
||||
raise ValidationError(
|
||||
_(
|
||||
"A validation process is still open for at least "
|
||||
"one record."
|
||||
)
|
||||
)
|
||||
# Write under validation
|
||||
if (
|
||||
rec.review_ids
|
||||
and getattr(rec, self._state_field) in self._state_from
|
||||
and not vals.get(self._state_field)
|
||||
in (self._state_to + [self._cancel_state])
|
||||
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
|
||||
)
|
||||
raise ValidationError(
|
||||
_(
|
||||
"You are not allowed to write those fields under validation.\n"
|
||||
"- %(not_allowed_fields)s\n\n"
|
||||
"Only those fields can be modified:\n- %(allowed_fields)s"
|
||||
)
|
||||
% {
|
||||
"not_allowed_fields": "\n- ".join(not_allowed_fields),
|
||||
"allowed_fields": "\n- ".join(allowed_fields),
|
||||
}
|
||||
)
|
||||
|
||||
# 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 getattr(rec, self._state_field)
|
||||
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
|
||||
)
|
||||
raise ValidationError(
|
||||
_(
|
||||
"You are not allowed to write those fields after validation.\n"
|
||||
"- %(not_allowed_fields)s\n\n"
|
||||
"Only those fields can be modified:\n- %(allowed_fields)s"
|
||||
)
|
||||
% {
|
||||
"not_allowed_fields": "\n- ".join(not_allowed_fields),
|
||||
"allowed_fields": "\n- ".join(allowed_fields),
|
||||
}
|
||||
)
|
||||
if rec._allow_to_remove_reviews(vals):
|
||||
rec.mapped("review_ids").unlink()
|
||||
return super(TierValidation, self).write(vals)
|
||||
|
||||
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[self._state_field]
|
||||
# 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 getattr(self, self._state_field) 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
|
||||
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 == "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 _("A review was accepted. (%s)") % comment
|
||||
return _("A review was accepted")
|
||||
|
||||
def _add_comment(self, validate_reject, reviews):
|
||||
wizard = self.env.ref("base_tier_validation.view_comment_wizard")
|
||||
return {
|
||||
"name": _("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 l: l.sequence in sequences or l.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 l: l.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 _("A review was rejected by %(user)s. (%(comment)s)") % {
|
||||
"user": self.env.user.name,
|
||||
"comment": comment,
|
||||
}
|
||||
return _("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 == "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_requested_review_body(self):
|
||||
return _("A review has been requested by %s.") % (self.env.user.name)
|
||||
|
||||
def _notify_review_requested(self, tier_reviews):
|
||||
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: r.definition_id.notify_on_create and r.res_id == rec.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_requested_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),
|
||||
("id", "not in", rec.review_ids.mapped("definition_id").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 _("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 == "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
|
||||
)
|
||||
rec.mapped("review_ids").unlink()
|
||||
if to_update_counter:
|
||||
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()
|
||||
|
||||
def reevaluate_reviews(self):
|
||||
reviews = self.env["tier.review"]
|
||||
for rec in self:
|
||||
rec._compute_need_validation()
|
||||
reviews += rec.request_validation()
|
||||
return reviews
|
||||
|
||||
@api.model
|
||||
def _update_counter(self, review_counter):
|
||||
self.review_ids._compute_can_review()
|
||||
notifications = []
|
||||
channel = "base.tier.validation/updated"
|
||||
notifications.append([self.env.user.partner_id, channel, review_counter])
|
||||
self.env["bus.bus"]._sendmany(notifications)
|
||||
|
||||
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 [("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 = {
|
||||
"state_field": self._state_field,
|
||||
"state_operator": "not in",
|
||||
"state_value": self._state_from,
|
||||
}
|
||||
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()
|
||||
for node in doc.xpath("//field[@name][not(ancestor::field)]"):
|
||||
if node.attrib.get("name") in excepted_fields:
|
||||
continue
|
||||
modifiers = json.loads(
|
||||
node.attrib.get("modifiers", '{"readonly": false}')
|
||||
)
|
||||
if modifiers.get("readonly") is not True:
|
||||
modifiers["readonly"] = OR(
|
||||
[
|
||||
modifiers.get("readonly", []) or [],
|
||||
self._get_tier_validation_readonly_domain(),
|
||||
]
|
||||
)
|
||||
node.attrib["modifiers"] = json.dumps(modifiers)
|
||||
res["arch"] = etree.tostring(doc)
|
||||
res["models"] = frozendict(all_models)
|
||||
return res
|
||||
|
||||
|
||||
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)
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
# 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"
|
||||
_rec_name = "name"
|
||||
|
||||
@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,
|
||||
readonly=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):
|
||||
for record in self:
|
||||
record.valid_model_field_ids = (
|
||||
self.env["ir.model.fields"]
|
||||
.sudo()
|
||||
.search(
|
||||
[
|
||||
("model", "=", record.model_name),
|
||||
("name", "not in", BASE_EXCEPTION_FIELDS),
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
@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(
|
||||
_(
|
||||
"At least one of these fields must be checked! "
|
||||
"Write under Validation, Write after Validation"
|
||||
)
|
||||
)
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
To configure Tier Validations, you need to:
|
||||
|
||||
#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
|
||||
#. 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 *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:
|
||||
|
||||
#. Go to *Settings > Technical > Tier Validations > Tier Validation Exceptions*.
|
||||
#. Create as many tiers validation exceptions as you want for any model
|
||||
having tier validation functionality.
|
||||
#. Add desired fields to be checked in *Fields*.
|
||||
#. Add desired groups that can use this Exception in *Groups*.
|
||||
#. 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.
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
* 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>
|
||||
* 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
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
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.
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
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.
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
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.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_tier_review,access.tier.review,model_tier_review,,1,1,1,1
|
||||
access_tier_definition_all,tier.definition.all,model_tier_definition,,1,0,0,0
|
||||
access_tier_definition_settings,tier.definition.settings,model_tier_definition,base.group_system,1,1,1,1
|
||||
access_comment_wizard,access.comment.wizard,model_comment_wizard,,1,1,1,1
|
||||
access_tier_validation_exceptions_all,tier.validation.exceptions,model_tier_validation_exception,,1,0,0,0
|
||||
access_tier_validation_exceptions_settings,tier.validation.exceptions,model_tier_validation_exception,base.group_system,1,1,1,1
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?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','=',False),('company_id', 'in', company_ids)]
|
||||
</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','=',False),('company_id', 'in', company_ids)]
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
|
|
@ -0,0 +1,614 @@
|
|||
<!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:3ef2fb9504521a977d133828ec0237701cd3b45b490e193c410a4c6cb4c226c0
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<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/16.0/base_tier_validation"><img alt="OCA/server-ux" src="https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/server-ux-16-0/server-ux-16-0-base_tier_validation"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/server-ux&target_branch=16.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><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">14.0.1.0.0 (2020-11-19)</a></li>
|
||||
<li><a class="reference internal" href="#section-2" id="toc-entry-5">13.0.1.2.2 (2020-08-30)</a></li>
|
||||
<li><a class="reference internal" href="#section-3" id="toc-entry-6">12.0.3.3.1 (2019-12-02)</a></li>
|
||||
<li><a class="reference internal" href="#section-4" id="toc-entry-7">12.0.3.3.0 (2019-11-27)</a></li>
|
||||
<li><a class="reference internal" href="#section-5" id="toc-entry-8">12.0.3.2.1 (2019-11-26)</a></li>
|
||||
<li><a class="reference internal" href="#section-6" id="toc-entry-9">12.0.3.2.0 (2019-11-25)</a></li>
|
||||
<li><a class="reference internal" href="#section-7" id="toc-entry-10">12.0.3.1.0 (2019-07-08)</a></li>
|
||||
<li><a class="reference internal" href="#section-8" id="toc-entry-11">12.0.3.0.0 (2019-12-02)</a></li>
|
||||
<li><a class="reference internal" href="#section-9" id="toc-entry-12">12.0.2.1.0 (2019-05-29)</a></li>
|
||||
<li><a class="reference internal" href="#section-10" id="toc-entry-13">12.0.2.0.0 (2019-05-28)</a></li>
|
||||
<li><a class="reference internal" href="#section-11" id="toc-entry-14">12.0.1.0.0 (2019-02-18)</a></li>
|
||||
<li><a class="reference internal" href="#section-12" id="toc-entry-15">11.0.1.0.0 (2018-05-09)</a></li>
|
||||
<li><a class="reference internal" href="#section-13" id="toc-entry-16">10.0.1.0.0 (2018-03-26)</a></li>
|
||||
<li><a class="reference internal" href="#section-14" id="toc-entry-17">9.0.1.0.0 (2017-12-02)</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-18">Bug Tracker</a></li>
|
||||
<li><a class="reference internal" href="#credits" id="toc-entry-19">Credits</a><ul>
|
||||
<li><a class="reference internal" href="#authors" id="toc-entry-20">Authors</a></li>
|
||||
<li><a class="reference internal" href="#contributors" id="toc-entry-21">Contributors</a></li>
|
||||
<li><a class="reference internal" href="#maintainers" id="toc-entry-22">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 Tier Validations, you need to:</p>
|
||||
<ol class="arabic simple">
|
||||
<li>Go to <em>Settings > Technical > Tier Validations > 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>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 > Technical > Tier Validations > 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 don’t 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 <cite>approve_sequence</cite> option in any tier.definition there can be inconsistencies
|
||||
in the systray notifications.</p>
|
||||
<p><strong>Description:</strong></p>
|
||||
<p>Field <cite>can_review</cite> in tier.review is used to filter out, in the systray notifications,
|
||||
the reviews a user can approve. This <cite>can_review</cite> field is updated <strong>in the database</strong>
|
||||
in method <cite>review_user_count</cite>, 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">14.0.1.0.0 (2020-11-19)</a></h3>
|
||||
<p>Migrated to Odoo 14.</p>
|
||||
</div>
|
||||
<div class="section" id="section-2">
|
||||
<h3><a class="toc-backref" href="#toc-entry-5">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-3">
|
||||
<h3><a class="toc-backref" href="#toc-entry-6">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-4">
|
||||
<h3><a class="toc-backref" href="#toc-entry-7">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-5">
|
||||
<h3><a class="toc-backref" href="#toc-entry-8">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-6">
|
||||
<h3><a class="toc-backref" href="#toc-entry-9">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-7">
|
||||
<h3><a class="toc-backref" href="#toc-entry-10">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-8">
|
||||
<h3><a class="toc-backref" href="#toc-entry-11">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-9">
|
||||
<h3><a class="toc-backref" href="#toc-entry-12">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-10">
|
||||
<h3><a class="toc-backref" href="#toc-entry-13">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-11">
|
||||
<h3><a class="toc-backref" href="#toc-entry-14">12.0.1.0.0 (2019-02-18)</a></h3>
|
||||
<p>Migrated to Odoo 12.</p>
|
||||
</div>
|
||||
<div class="section" id="section-12">
|
||||
<h3><a class="toc-backref" href="#toc-entry-15">11.0.1.0.0 (2018-05-09)</a></h3>
|
||||
<p>Migrated to Odoo 11.</p>
|
||||
</div>
|
||||
<div class="section" id="section-13">
|
||||
<h3><a class="toc-backref" href="#toc-entry-16">10.0.1.0.0 (2018-03-26)</a></h3>
|
||||
<p>Migrated to Odoo 10.</p>
|
||||
</div>
|
||||
<div class="section" id="section-14">
|
||||
<h3><a class="toc-backref" href="#toc-entry-17">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-18">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:%2016.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-19">Credits</a></h2>
|
||||
<div class="section" id="authors">
|
||||
<h3><a class="toc-backref" href="#toc-entry-20">Authors</a></h3>
|
||||
<ul class="simple">
|
||||
<li>ForgeFlow</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="contributors">
|
||||
<h3><a class="toc-backref" href="#toc-entry-21">Contributors</a></h3>
|
||||
<ul class="simple">
|
||||
<li>Lois Rilo <<a class="reference external" href="mailto:lois.rilo@forgeflow.com">lois.rilo@forgeflow.com</a>></li>
|
||||
<li>Naglis Jonaitis <<a class="reference external" href="mailto:naglis@versada.eu">naglis@versada.eu</a>></li>
|
||||
<li>Adrià Gil Sorribes <<a class="reference external" href="mailto:adria.gil@forgeflow.com">adria.gil@forgeflow.com</a>></li>
|
||||
<li>Pimolnat Suntian <<a class="reference external" href="mailto:pimolnats@ecosoft.co.th">pimolnats@ecosoft.co.th</a>></li>
|
||||
<li>Pedro Gonzalez <<a class="reference external" href="mailto:pedro.gonzalez@pesol.es">pedro.gonzalez@pesol.es</a>></li>
|
||||
<li>Kitti U. <<a class="reference external" href="mailto:kittiu@ecosoft.co.th">kittiu@ecosoft.co.th</a>></li>
|
||||
<li>Saran Lim. <<a class="reference external" href="mailto:saranl@ecosoft.co.th">saranl@ecosoft.co.th</a>></li>
|
||||
<li>Evan Soh <<a class="reference external" href="mailto:evan.soh@omnisoftsolution.com">evan.soh@omnisoftsolution.com</a>></li>
|
||||
<li>Manuel Regidor <<a class="reference external" href="mailto:manuel.regidor@sygel.es">manuel.regidor@sygel.es</a>></li>
|
||||
<li>Eduardo de Miguel <<a class="reference external" href="mailto:edu@moduon.team">edu@moduon.team</a>></li>
|
||||
<li><a class="reference external" href="https://xcg-consulting.fr">XCG Consulting</a>:<ul>
|
||||
<li>Houzéfa Abbasbhay</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="maintainers">
|
||||
<h3><a class="toc-backref" href="#toc-entry-22">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/16.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>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {attr, one} from "@mail/model/model_field";
|
||||
import {registerModel} from "@mail/model/model_core";
|
||||
|
||||
registerModel({
|
||||
name: "ir.model.review",
|
||||
fields: {
|
||||
/**
|
||||
* Determines the name of the views that are available for this model.
|
||||
*/
|
||||
availableWebViews: attr({
|
||||
compute() {
|
||||
return ["kanban", "list", "form", "activity"];
|
||||
},
|
||||
}),
|
||||
reviewGroup: one("ReviewGroup", {
|
||||
inverse: "irModel",
|
||||
}),
|
||||
iconUrl: attr(),
|
||||
id: attr({
|
||||
identifying: true,
|
||||
}),
|
||||
model: attr({
|
||||
required: true,
|
||||
}),
|
||||
name: attr(),
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {registry} from "@web/core/registry";
|
||||
import {systrayService} from "@base_tier_validation/js/systray_service.esm";
|
||||
|
||||
const serviceRegistry = registry.category("services");
|
||||
serviceRegistry.add("review_systray_service", systrayService);
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {one} from "@mail/model/model_field";
|
||||
import {registerModel} from "@mail/model/model_core";
|
||||
|
||||
registerModel({
|
||||
name: "ReviewGroupView",
|
||||
recordMethods: {
|
||||
/**
|
||||
* @param {MouseEvent} ev
|
||||
*/
|
||||
onClickFilterButton(ev) {
|
||||
this.reviewMenuViewOwner.update({isOpen: false});
|
||||
// Fetch the data from the button otherwise fetch the ones from the parent (.o_ActivityMenuView_activityGroup).
|
||||
const data = _.extend({}, $(ev.currentTarget).data(), $(ev.target).data());
|
||||
const context = {};
|
||||
var domain = [["can_review", "=", true]];
|
||||
console.log(data);
|
||||
if (data.active_field) {
|
||||
domain.push(["active", "in", [true, false]]);
|
||||
}
|
||||
|
||||
this.env.services.action.doAction(
|
||||
{
|
||||
context,
|
||||
name: data.model_name,
|
||||
res_model: data.res_model,
|
||||
search_view_id: [false],
|
||||
type: "ir.actions.act_window",
|
||||
domain: domain,
|
||||
views: this.reviewGroup.irModel.availableWebViews.map(
|
||||
(viewName) => [false, viewName]
|
||||
),
|
||||
},
|
||||
{
|
||||
clearBreadcrumbs: true,
|
||||
}
|
||||
);
|
||||
},
|
||||
},
|
||||
fields: {
|
||||
reviewGroup: one("ReviewGroup", {
|
||||
identifying: true,
|
||||
inverse: "reviewGroupViews",
|
||||
}),
|
||||
reviewMenuViewOwner: one("ReviewerMenuView", {
|
||||
identifying: true,
|
||||
inverse: "reviewGroupViews",
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {attr, many, one} from "@mail/model/model_field";
|
||||
import {registerModel} from "@mail/model/model_core";
|
||||
|
||||
registerModel({
|
||||
name: "ReviewGroup",
|
||||
modelMethods: {
|
||||
convertData(data) {
|
||||
return {
|
||||
domain: data.domain,
|
||||
irModel: {
|
||||
iconUrl: data.icon,
|
||||
id: data.id,
|
||||
model: data.model,
|
||||
name: data.name,
|
||||
},
|
||||
pending_count: data.pending_count,
|
||||
};
|
||||
},
|
||||
},
|
||||
recordMethods: {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_onChangePendingCount() {
|
||||
if (this.type === "tier_review" && this.pending_count === 0) {
|
||||
this.delete();
|
||||
}
|
||||
},
|
||||
},
|
||||
fields: {
|
||||
reviewGroupViews: many("ReviewGroupView", {
|
||||
inverse: "reviewGroup",
|
||||
}),
|
||||
domain: attr(),
|
||||
irModel: one("ir.model.review", {
|
||||
identifying: true,
|
||||
inverse: "reviewGroup",
|
||||
}),
|
||||
pending_count: attr({
|
||||
default: 0,
|
||||
}),
|
||||
type: attr(),
|
||||
},
|
||||
onChanges: [
|
||||
{
|
||||
dependencies: ["pending_count", "type"],
|
||||
methodName: "_onChangePendingCount",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {decrement, increment} from "@mail/model/model_field_command";
|
||||
import {registerPatch} from "@mail/model/model_core";
|
||||
|
||||
registerPatch({
|
||||
name: "MessagingNotificationHandler",
|
||||
recordMethods: {
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
async _handleNotification(message) {
|
||||
if (message.type === "base.tier.validation/updated") {
|
||||
for (const reviewMenuView of this.messaging.models.ReviewerMenuView.all()) {
|
||||
if (message.payload.review_created) {
|
||||
reviewMenuView.update({extraCount: increment()});
|
||||
}
|
||||
if (message.payload.review_deleted) {
|
||||
reviewMenuView.update({extraCount: decrement()});
|
||||
}
|
||||
}
|
||||
}
|
||||
return this._super(message);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
// ensure components are registered beforehand.
|
||||
import {getMessagingComponent} from "@mail/utils/messaging_component";
|
||||
|
||||
const {Component} = owl;
|
||||
|
||||
export class ReviewerMenuContainer extends Component {
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
setup() {
|
||||
super.setup();
|
||||
this.env.services.messaging.modelManager.messagingCreatedPromise.then(() => {
|
||||
this.reviewerMenuView =
|
||||
this.env.services.messaging.modelManager.messaging.models.ReviewerMenuView.insert();
|
||||
this.render();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Object.assign(ReviewerMenuContainer, {
|
||||
components: {ReviewerMenuView: getMessagingComponent("ReviewerMenuView")},
|
||||
template: "base_tier_validation.ReviewerMenuContainer",
|
||||
});
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {registerMessagingComponent} from "@mail/utils/messaging_component";
|
||||
import {useComponentToModel} from "@mail/component_hooks/use_component_to_model";
|
||||
|
||||
const {Component} = owl;
|
||||
|
||||
export class ReviewerMenuView extends Component {
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
setup() {
|
||||
super.setup();
|
||||
useComponentToModel({fieldName: "component"});
|
||||
}
|
||||
/**
|
||||
* @returns {ReviewerMenuView}
|
||||
*/
|
||||
get reviewerMenuView() {
|
||||
return this.props.record;
|
||||
}
|
||||
}
|
||||
|
||||
Object.assign(ReviewerMenuView, {
|
||||
props: {record: Object},
|
||||
template: "base_tier_validation.ReviewerMenuView",
|
||||
});
|
||||
|
||||
registerMessagingComponent(ReviewerMenuView);
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {attr, many} from "@mail/model/model_field";
|
||||
import {registerModel} from "@mail/model/model_core";
|
||||
|
||||
import session from "web.session";
|
||||
|
||||
registerModel({
|
||||
name: "ReviewerMenuView",
|
||||
lifecycleHooks: {
|
||||
_created() {
|
||||
this.fetchData();
|
||||
document.addEventListener("click", this._onClickCaptureGlobal, true);
|
||||
},
|
||||
_willDelete() {
|
||||
document.removeEventListener("click", this._onClickCaptureGlobal, true);
|
||||
},
|
||||
},
|
||||
recordMethods: {
|
||||
close() {
|
||||
this.update({isOpen: false});
|
||||
},
|
||||
async fetchData() {
|
||||
const data = await this.messaging.rpc({
|
||||
model: "res.users",
|
||||
method: "review_user_count",
|
||||
args: [],
|
||||
kwargs: {context: session.user_context},
|
||||
});
|
||||
|
||||
this.update({
|
||||
reviewGroups: data.map((vals) =>
|
||||
this.messaging.models.ReviewGroup.convertData(vals)
|
||||
),
|
||||
extraCount: 0,
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @param {MouseEvent} ev
|
||||
*/
|
||||
onClickDropdownToggle(ev) {
|
||||
ev.preventDefault();
|
||||
if (this.isOpen) {
|
||||
this.update({isOpen: false});
|
||||
} else {
|
||||
this.update({isOpen: true});
|
||||
this.fetchData();
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Closes the menu when clicking outside, if appropriate.
|
||||
*
|
||||
* @private
|
||||
* @param {MouseEvent} ev
|
||||
*/
|
||||
_onClickCaptureGlobal(ev) {
|
||||
if (!this.exists()) {
|
||||
return;
|
||||
}
|
||||
if (!this.component || !this.component.root.el) {
|
||||
return;
|
||||
}
|
||||
if (this.component.root.el.contains(ev.target)) {
|
||||
return;
|
||||
}
|
||||
this.close();
|
||||
},
|
||||
},
|
||||
fields: {
|
||||
reviewGroups: many("ReviewGroup", {
|
||||
sort: [["smaller-first", "irModel.id"]],
|
||||
}),
|
||||
reviewGroupViews: many("ReviewGroupView", {
|
||||
compute() {
|
||||
return this.reviewGroups.map((reviewGroup) => {
|
||||
return {
|
||||
reviewGroup,
|
||||
};
|
||||
});
|
||||
},
|
||||
inverse: "reviewMenuViewOwner",
|
||||
}),
|
||||
component: attr(),
|
||||
counter: attr({
|
||||
compute() {
|
||||
return this.reviewGroups.reduce(
|
||||
(total, group) => total + group.pending_count,
|
||||
this.extraCount
|
||||
);
|
||||
},
|
||||
}),
|
||||
/**
|
||||
* Determines the number of activities that have been added in the
|
||||
* system but not yet taken into account in each activity group counter.
|
||||
*
|
||||
* @deprecated this field should be replaced by directly updating the
|
||||
* counter of each group.
|
||||
*/
|
||||
extraCount: attr(),
|
||||
isOpen: attr({
|
||||
default: false,
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {ReviewerMenuContainer} from "./reviewer_menu_container.esm";
|
||||
|
||||
import {registry} from "@web/core/registry";
|
||||
|
||||
const systrayRegistry = registry.category("systray");
|
||||
|
||||
export const systrayService = {
|
||||
start() {
|
||||
systrayRegistry.add(
|
||||
"base_tier_validation.ReviewerMenu",
|
||||
{Component: ReviewerMenuContainer},
|
||||
{sequence: 99}
|
||||
);
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {registry} from "@web/core/registry";
|
||||
|
||||
import {useService} from "@web/core/utils/hooks";
|
||||
|
||||
const {Component, useState} = owl;
|
||||
|
||||
export class ReviewsTable extends Component {
|
||||
setup() {
|
||||
this.docs = useState({});
|
||||
this.collapse = false;
|
||||
this.orm = useService("orm");
|
||||
this.reviews = [];
|
||||
}
|
||||
_getReviewData() {
|
||||
const records = this.env.model.root.data.review_ids.records;
|
||||
const reviews = [];
|
||||
for (var i = 0; i < records.length; i++) {
|
||||
reviews.push(records[i].data);
|
||||
}
|
||||
return reviews;
|
||||
}
|
||||
onToggleCollapse(ev) {
|
||||
var $panelHeading = $(ev.currentTarget).closest(".panel-heading");
|
||||
if (this.collapse) {
|
||||
$panelHeading.next("div#collapse1").hide();
|
||||
} else {
|
||||
$panelHeading.next("div#collapse1").show();
|
||||
}
|
||||
this.collapse = !this.collapse;
|
||||
}
|
||||
}
|
||||
|
||||
ReviewsTable.template = "base_tier_validation.Collapse";
|
||||
registry.category("fields").add("form.tier_validation", ReviewsTable);
|
||||
|
|
@ -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: 0px !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);
|
||||
}
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
// Navbar icon and dropdown
|
||||
.o_tier_navbar_item {
|
||||
> a {
|
||||
opacity: 1;
|
||||
> i {
|
||||
font-size: larger;
|
||||
}
|
||||
}
|
||||
&.o_no_notification > a {
|
||||
opacity: 0.5;
|
||||
> i {
|
||||
transform: translateY(0px);
|
||||
}
|
||||
.o_notification_counter {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
&.show .o_tier_systray_dropdown {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
}
|
||||
.o_notification_counter {
|
||||
margin-top: -0.8rem;
|
||||
margin-right: 0;
|
||||
margin-left: -0.6rem;
|
||||
background: #00a09d;
|
||||
color: white;
|
||||
vertical-align: super;
|
||||
font-size: 0.7em;
|
||||
}
|
||||
.o_tier_systray_dropdown {
|
||||
direction: ltr;
|
||||
width: 350px;
|
||||
padding: 0;
|
||||
|
||||
.o_spinner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: $o-main-text-color;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.o_tier_systray_dropdown_top {
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid gray("400");
|
||||
box-shadow: 0 0 2px gray("400");
|
||||
.o_filter_button,
|
||||
.o_new_message {
|
||||
padding: 5px;
|
||||
}
|
||||
.o_filter_button {
|
||||
color: $o-main-color-muted;
|
||||
&:hover,
|
||||
&.active {
|
||||
color: $o-brand-primary;
|
||||
}
|
||||
&.active {
|
||||
cursor: default;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.o_tier_systray_dropdown_items {
|
||||
flex: 0 1 auto;
|
||||
max-height: 400px;
|
||||
min-height: 50px;
|
||||
overflow-y: auto;
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
.o_tier_preview {
|
||||
min-height: 50px;
|
||||
padding: 5px;
|
||||
.o_tier_preview_image {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
.o_preview_info {
|
||||
margin-left: 10px;
|
||||
.o_preview_title {
|
||||
.o_last_message_date {
|
||||
padding-top: 2px;
|
||||
font-size: x-small;
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.o_activity_filter_button {
|
||||
padding: 2px;
|
||||
}
|
||||
.o_no_activity {
|
||||
cursor: initial;
|
||||
align-items: center;
|
||||
color: grey;
|
||||
opacity: 0.5;
|
||||
padding: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.o_no_thread_window .o_tier_systray_dropdown .o_new_message {
|
||||
display: none; // hide 'new message' button if chat windows are disabled
|
||||
}
|
||||
|
||||
// Mobile rules
|
||||
// Goal: mock the design of Discuss in mobile
|
||||
@include media-breakpoint-down(sm) {
|
||||
.o_tier_systray_item {
|
||||
.o_notification_counter {
|
||||
top: 10%;
|
||||
}
|
||||
.o_tier_systray_dropdown {
|
||||
position: relative;
|
||||
.o_tier_systray_dropdown_top {
|
||||
padding: 5px;
|
||||
}
|
||||
.o_tier_systray_mobile_header {
|
||||
padding: 5px;
|
||||
height: 44px;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
box-shadow: 0 0 2px gray("400");
|
||||
}
|
||||
.o_tier_systray_dropdown_items {
|
||||
max-height: none;
|
||||
padding-bottom: 52px; // leave space for tabs
|
||||
}
|
||||
.o_tier_mobile_tabs {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
background-color: white;
|
||||
color: $o-main-text-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<templates xml:space="preserve">
|
||||
<t t-name="base_tier_validation.ReviewerMenuContainer" owl="1">
|
||||
<t t-if="reviewerMenuView">
|
||||
<ReviewerMenuView record="reviewerMenuView" />
|
||||
</t>
|
||||
</t>
|
||||
</templates>
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<templates>
|
||||
<t t-name="base_tier_validation.ReviewerMenuView" owl="1">
|
||||
<div class="o_ActivityMenuView dropdown" t-ref="root">
|
||||
<a
|
||||
class="o_ActivityMenuView_dropdownToggle dropdown-toggle o-no-caret o-dropdown--narrow"
|
||||
t-att-aria-expanded="reviewerMenuView.isOpen ? 'true' : 'false'"
|
||||
title="Reviews"
|
||||
href="#"
|
||||
role="button"
|
||||
t-on-click="reviewerMenuView.onClickDropdownToggle"
|
||||
>
|
||||
<i
|
||||
class="fa fa-pencil-square-o"
|
||||
role="img"
|
||||
aria-label="Reviews"
|
||||
/> <span
|
||||
t-if="reviewerMenuView.counter > 0"
|
||||
class="o_ActivityMenuView_counter badge"
|
||||
t-esc="reviewerMenuView.counter"
|
||||
/>
|
||||
</a>
|
||||
<div
|
||||
t-if="reviewerMenuView.isOpen"
|
||||
class="o_ActivityMenuView_dropdownMenu o-dropdown-menu dropdown-menu-end show bg-view"
|
||||
role="menu"
|
||||
>
|
||||
<div class="o_ActivityMenuView_activityGroups">
|
||||
<t t-if="reviewerMenuView.reviewGroupViews.length === 0">
|
||||
<div
|
||||
class="o_ActivityMenuView_noActivity dropdown-item-text text-center d-flex justify-content-center"
|
||||
>
|
||||
<span>No reviews to do.</span>
|
||||
</div>
|
||||
</t>
|
||||
<t
|
||||
t-foreach="reviewerMenuView.reviewGroupViews"
|
||||
t-as="reviewGroupView"
|
||||
t-key="reviewGroupView.localId"
|
||||
name="activityGroupLoop"
|
||||
>
|
||||
<div
|
||||
class="o_ActivityMenuView_activityGroup"
|
||||
t-att-data-res_model="reviewGroupView.reviewGroup.irModel.model"
|
||||
t-att-data-model_name="reviewGroupView.reviewGroup.irModel.name"
|
||||
t-att-data-active_field="reviewGroupView.reviewGroup.irModel.active_field"
|
||||
t-att-data-domain="reviewGroupView.reviewGroup.domain"
|
||||
data-filter='my'
|
||||
t-att-data-activity-group-view-local-id="reviewGroupView.localId"
|
||||
t-on-click="reviewGroupView.onClickFilterButton"
|
||||
>
|
||||
<div
|
||||
t-if="reviewGroupView.reviewGroup.irModel.iconUrl"
|
||||
class="o_ActivityMenuView_activityGroupIconContainer"
|
||||
>
|
||||
<img
|
||||
t-att-src="reviewGroupView.reviewGroup.irModel.iconUrl"
|
||||
alt="Activity"
|
||||
/>
|
||||
</div>
|
||||
<div class="o_ActivityMenuView_activityGroupInfo">
|
||||
<div class="o_ActivityMenuView_activityGroupTitle">
|
||||
<span class="o_ActivityMenuView_activityGroupName">
|
||||
<t
|
||||
t-esc="reviewGroupView.reviewGroup.irModel.name"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
t-if="reviewGroupView.reviewGroup.pending_count"
|
||||
type="button"
|
||||
class="btn btn-link o_activity_filter_button mr16"
|
||||
t-att-data-res_model="reviewGroupView.reviewGroup.irModel.model"
|
||||
t-att-data-model_name="reviewGroupView.reviewGroup.irModel.name"
|
||||
data-filter="pending_count"
|
||||
>
|
||||
<t
|
||||
t-esc="reviewGroupView.reviewGroup.pending_count"
|
||||
/>
|
||||
Pending
|
||||
</button>
|
||||
<span
|
||||
t-if="!reviewGroupView.reviewGroup.pending_count"
|
||||
class="o_no_activity mr16"
|
||||
>
|
||||
0 Pending
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<templates>
|
||||
<t t-name="base_tier_validation.Collapse" owl="1">
|
||||
<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="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-left"
|
||||
>Requested by</th>
|
||||
<th
|
||||
name="th_name"
|
||||
class="text-right"
|
||||
>Description</th>
|
||||
<th
|
||||
name="th_display_status"
|
||||
class="text-right"
|
||||
>Status</th>
|
||||
<th
|
||||
name="th_todo_by"
|
||||
class="text-right"
|
||||
>Todo by</th>
|
||||
<th
|
||||
name="th_done_by"
|
||||
class="text-right"
|
||||
>Done by</th>
|
||||
<th
|
||||
name="th_reviewed_date"
|
||||
class="text-right"
|
||||
>Validation Date</th>
|
||||
<th
|
||||
name="th_comment"
|
||||
class="text-right"
|
||||
>Comment</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="sale_tbody">
|
||||
<t
|
||||
t-foreach="_getReviewData()"
|
||||
t-as="review"
|
||||
t-key="review.id"
|
||||
>
|
||||
<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-success'"
|
||||
/>
|
||||
<t
|
||||
t-if="review.status == 'rejected'"
|
||||
t-set="status_class"
|
||||
t-value="'alert-danger'"
|
||||
/>
|
||||
<tr t-att-class="status_class">
|
||||
<td name="td_sequence" class="text-center">
|
||||
<span t-esc="review.sequence" />
|
||||
</td>
|
||||
<td name="td_requested_by" class="text-left">
|
||||
<span t-esc="review.requested_by[1]" />
|
||||
</td>
|
||||
<td name="td_name" class="text-right">
|
||||
<span t-esc="review.name" />
|
||||
</td>
|
||||
<td name="td_display_status" class="text-right">
|
||||
<span t-esc="review.display_status" />
|
||||
</td>
|
||||
<td name="td_todo_by" class="text-right">
|
||||
<span t-esc="review.todo_by" />
|
||||
</td>
|
||||
<td name="td_done_by" class="text-right">
|
||||
<span t-esc="review.done_by[1]" />
|
||||
</td>
|
||||
<td name="td_reviewed_date" class="text-right">
|
||||
<t t-if="review.reviewed_formated_date">
|
||||
<span
|
||||
t-esc="review.reviewed_formated_date"
|
||||
/>
|
||||
</t>
|
||||
</td>
|
||||
<td name="td_comment" class="text-left">
|
||||
<t t-if="review.comment">
|
||||
<span t-esc="review.comment" />
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
<?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-attrs="{'invisible': ['|', '|', '|',
|
||||
('need_validation', '!=', True),
|
||||
('validation_status', '=', 'pending'),
|
||||
('validation_status','=','rejected'),('#{state_field}', '#{state_operator}', #{state_value})]}"
|
||||
type="object"
|
||||
/>
|
||||
<button
|
||||
name="restart_validation"
|
||||
string="Restart Validation"
|
||||
t-attf-attrs="{'invisible': ['|',
|
||||
('review_ids', '=', []),
|
||||
('#{state_field}', '#{state_operator}', #{state_value})]}"
|
||||
type="object"
|
||||
/>
|
||||
<button
|
||||
name="reevaluate_reviews"
|
||||
string="Reevaluate Reviews"
|
||||
t-attf-attrs="{'invisible': ['|',('is_reevaluation_required', '!=', True),('#{state_field}', '#{state_operator}', #{state_value})]}"
|
||||
type="object"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<template id="tier_validation_label">
|
||||
<div>
|
||||
<field name="need_validation" invisible="1" />
|
||||
<field name="is_reevaluation_required" invisible="1" />
|
||||
<field name="validation_status" invisible="1" />
|
||||
<div
|
||||
class="alert alert-warning mb-0 pb-1 px-4"
|
||||
role="alert"
|
||||
t-attf-attrs="{'invisible': ['|', '|', '|',
|
||||
('validation_status', '=', 'validated'),
|
||||
('#{state_field}', '#{state_operator}', #{state_value}),
|
||||
('validation_status', '=', 'rejected'),
|
||||
('review_ids', '=', [])]}"
|
||||
>
|
||||
<p>
|
||||
<i class="fa fa-info-circle" /> This Record needs to be validated.
|
||||
<field name="can_review" invisible="1" />
|
||||
<button
|
||||
name="validate_tier"
|
||||
string="Validate"
|
||||
attrs="{'invisible': [('can_review', '=', False)]}"
|
||||
type="object"
|
||||
class="btn-sm btn-success mx-1"
|
||||
icon="fa-thumbs-up"
|
||||
/>
|
||||
<button
|
||||
name="reject_tier"
|
||||
string="Reject"
|
||||
attrs="{'invisible': [('can_review', '=', False)]}"
|
||||
type="object"
|
||||
class="btn-sm btn-danger mx-1"
|
||||
icon="fa-thumbs-down"
|
||||
/>
|
||||
<field name="next_review" readonly="1" class="float-end pt-1" />
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
class="alert alert-success mb-0 pb-1 px-4"
|
||||
role="alert"
|
||||
t-attf-attrs="{'invisible': ['|', '|',
|
||||
('validation_status', '!=', 'validated'),
|
||||
('#{state_field}', '#{state_operator}', #{state_value}),
|
||||
('review_ids', '=', [])]}"
|
||||
>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-up" /> Operation has been <b>validated</b>!
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
class="alert alert-danger mb-0 pb-1 px-4"
|
||||
role="alert"
|
||||
t-attf-attrs="{'invisible': ['|', '|',
|
||||
('validation_status', '!=', 'rejected'),
|
||||
('#{state_field}', '#{state_operator}', #{state_value}),
|
||||
('review_ids', '=', [])]}"
|
||||
>
|
||||
<p>
|
||||
<i class="fa 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"
|
||||
attrs="{'invisible':[('review_ids', '=', [])]}"
|
||||
style="width:100%%; margin-top: 10px;"
|
||||
>
|
||||
<tree>
|
||||
<field name="id" />
|
||||
<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" />
|
||||
</tree>
|
||||
</field>
|
||||
</template>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import test_tier_validation
|
||||
from . import test_tier_validation_reminder
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
# 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.tests import common
|
||||
|
||||
from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT
|
||||
|
||||
|
||||
class CommonTierValidation(common.TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT))
|
||||
cls.loader = FakeModelLoader(cls.env, cls.__module__)
|
||||
cls.loader.backup_registry()
|
||||
from .tier_validation_tester import (
|
||||
TierDefinition,
|
||||
TierValidationTester,
|
||||
TierValidationTester2,
|
||||
)
|
||||
|
||||
cls.loader.update_registry(
|
||||
(TierValidationTester, TierValidationTester2, TierDefinition)
|
||||
)
|
||||
|
||||
cls.test_model = cls.env[TierValidationTester._name]
|
||||
cls.test_model_2 = cls.env[TierValidationTester2._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")]
|
||||
)
|
||||
|
||||
# Access record:
|
||||
cls.env["ir.model.access"].create(
|
||||
{
|
||||
"name": "access.tester",
|
||||
"model_id": cls.tester_model.id,
|
||||
"perm_read": 1,
|
||||
"perm_write": 1,
|
||||
"perm_create": 1,
|
||||
"perm_unlink": 1,
|
||||
}
|
||||
)
|
||||
cls.env["ir.model.access"].create(
|
||||
{
|
||||
"name": "access.tester2",
|
||||
"model_id": cls.tester_model_2.id,
|
||||
"perm_read": 1,
|
||||
"perm_write": 1,
|
||||
"perm_create": 1,
|
||||
"perm_unlink": 1,
|
||||
}
|
||||
)
|
||||
# Create a multi-company
|
||||
cls.main_company = cls.env.ref("base.main_company")
|
||||
cls.other_company = cls.env["res.company"].create({"name": "My Company"})
|
||||
|
||||
# Define views to avoid automatic views with all fields.
|
||||
for model in cls.test_model._name, cls.test_model_2._name:
|
||||
cls.env["ir.ui.view"].create(
|
||||
{
|
||||
"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:
|
||||
group_ids = cls.env.ref("base.group_system").ids
|
||||
cls.test_user_1 = cls.env["res.users"].create(
|
||||
{
|
||||
"name": "John",
|
||||
"login": "test1",
|
||||
"email": "john@yourcompany.example.com",
|
||||
"groups_id": [(6, 0, group_ids)],
|
||||
}
|
||||
)
|
||||
cls.test_user_2 = cls.env["res.users"].create(
|
||||
{"name": "Mike", "login": "test2", "email": "mike@yourcompany.example.com"}
|
||||
)
|
||||
cls.test_user_3_multi_company = cls.env["res.users"].create(
|
||||
{
|
||||
"name": "Jane",
|
||||
"login": "test3",
|
||||
"email": "jane@mycompany.example.com",
|
||||
"company_ids": [(6, 0, [cls.main_company.id, cls.other_company.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": 2.5})
|
||||
cls.test_record_2 = cls.test_model_2.create({"test_field": 2.5})
|
||||
|
||||
# Create definition for test 28, 29
|
||||
# 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,
|
||||
"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,
|
||||
"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,
|
||||
"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()
|
||||
return super(CommonTierValidation, cls).tearDownClass()
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -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)
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
# 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")
|
||||
|
||||
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 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")
|
||||
return res
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
<?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="inside">
|
||||
<div id="base_tier_validation">
|
||||
<h2>Tier Validation</h2>
|
||||
<div
|
||||
class="row mt16 o_settings_container"
|
||||
name="base_tier_validation_option_setting_container"
|
||||
>
|
||||
<div
|
||||
class="col-12 col-lg-6 o_setting_box"
|
||||
id="module_base_tier_validation_formula"
|
||||
>
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="module_base_tier_validation_formula" />
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="module_base_tier_validation_formula" />
|
||||
<div class="text-muted">
|
||||
Option to use python formula to get reviewers and find documents
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div
|
||||
class="col-12 col-lg-6 o_setting_box"
|
||||
id="module_base_tier_validation_server_action"
|
||||
>
|
||||
<div class="o_setting_left_pane">
|
||||
<field
|
||||
name="module_base_tier_validation_server_action"
|
||||
/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label
|
||||
for="module_base_tier_validation_server_action"
|
||||
/>
|
||||
<div class="text-muted">
|
||||
Option to trigger server actions on completion of tier reviews
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div
|
||||
class="col-12 col-lg-6 o_setting_box"
|
||||
id="module_base_tier_validation_forward"
|
||||
>
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="module_base_tier_validation_forward" />
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="module_base_tier_validation_forward" />
|
||||
<div class="text-muted">
|
||||
Option to forward a tier validation to other reviewer, and backward
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div
|
||||
class="col-12 col-lg-6 o_setting_box"
|
||||
id="module_base_tier_validation_report"
|
||||
>
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="module_base_tier_validation_report" />
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="module_base_tier_validation_report" />
|
||||
<div class="text-muted">
|
||||
More reports about tier validations, i.e., summary of all my reviews
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
<?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.tree</field>
|
||||
<field name="model">tier.definition</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<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="sequence" />
|
||||
<field name="company_id" groups="base.group_multi_company" />
|
||||
<field name="active" />
|
||||
</tree>
|
||||
</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="oe_button_box" name="button_box" />
|
||||
<widget
|
||||
name="web_ribbon"
|
||||
title="Archived"
|
||||
bg_color="bg-danger"
|
||||
attrs="{'invisible': [('active', '=', True)]}"
|
||||
/>
|
||||
<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>
|
||||
<field name="active" invisible="1" />
|
||||
<group name="left">
|
||||
<field name="model_id" options="{'no_create': True}" />
|
||||
<field name="model" invisible="1" />
|
||||
<field name="review_type" />
|
||||
<field
|
||||
name="reviewer_id"
|
||||
attrs="{'invisible': [('review_type', '!=', 'individual')]}"
|
||||
/>
|
||||
<field
|
||||
name="reviewer_group_id"
|
||||
attrs="{'invisible': [('review_type', '!=', 'group')]}"
|
||||
/>
|
||||
<field
|
||||
name="reviewer_field_id"
|
||||
attrs="{'invisible': [('review_type', '!=', 'field')]}"
|
||||
options="{'no_create': True}"
|
||||
/>
|
||||
<field name="valid_reviewer_field_ids" invisible="1" />
|
||||
</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"
|
||||
attrs="{'invisible': [('approve_sequence', '=', False)]}"
|
||||
/>
|
||||
<div
|
||||
name="approve_sequence_bypass_div"
|
||||
class="o_wrap_field d-flex d-sm-contents flex-column mb-3 mb-sm-0"
|
||||
attrs="{'invisible': [('approve_sequence', '=', False)]}"
|
||||
>
|
||||
<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'}"
|
||||
attrs="{'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_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="model_id" />
|
||||
<field name="reviewer_id" />
|
||||
<field name="reviewer_group_id" />
|
||||
<field name="active" />
|
||||
<separator />
|
||||
<filter
|
||||
string="All"
|
||||
name="all"
|
||||
domain="['|', ('active', '=', False), ('active', '=', True)]"
|
||||
/>
|
||||
<group expand="0" string="Group By">
|
||||
<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">tree,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>
|
||||
|
|
@ -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.tree</field>
|
||||
<field name="model">tier.review</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree
|
||||
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" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
<?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.tree</field>
|
||||
<field name="model">tier.validation.exception</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<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" />
|
||||
</tree>
|
||||
</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="valid_model_field_ids" invisible="1" />
|
||||
<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">tree,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>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import comment_wizard
|
||||
|
|
@ -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})
|
||||
|
|
@ -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>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# Architecture
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
U[Users] -->|HTTP| V[Views and QWeb Templates]
|
||||
V --> C[Controllers]
|
||||
V --> W[Wizards – Transient Models]
|
||||
C --> M[Models and ORM]
|
||||
W --> M
|
||||
M --> R[Reports]
|
||||
DX[Data XML] --> M
|
||||
S[Security – ACLs and Groups] -. enforces .-> M
|
||||
|
||||
subgraph Base_tier_validation Module - base_tier_validation
|
||||
direction LR
|
||||
M:::layer
|
||||
W:::layer
|
||||
C:::layer
|
||||
V:::layer
|
||||
R:::layer
|
||||
S:::layer
|
||||
DX:::layer
|
||||
end
|
||||
|
||||
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
|
||||
```
|
||||
|
||||
Notes
|
||||
- Views include tree/form/kanban templates and report templates.
|
||||
- Controllers provide website/portal routes when present.
|
||||
- Wizards are UI flows implemented with `models.TransientModel`.
|
||||
- Data XML loads data/demo records; Security defines groups and access.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Configuration
|
||||
|
||||
Refer to Odoo settings for base_tier_validation. Configure related models, access rights, and options as needed.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Controllers
|
||||
|
||||
This module does not define custom HTTP controllers.
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
# Dependencies
|
||||
|
||||
This addon depends on:
|
||||
|
||||
- [mail](../../odoo-bringout-oca-ocb-mail)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# FAQ
|
||||
|
||||
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
|
||||
- Q: How to enable? A: Start server with --addon base_tier_validation or install in UI.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# Install
|
||||
|
||||
```bash
|
||||
pip install odoo-bringout-oca-server-ux-base_tier_validation"
|
||||
# or
|
||||
uv pip install odoo-bringout-oca-server-ux-base_tier_validation"
|
||||
```
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# Models
|
||||
|
||||
Detected core models and extensions in base_tier_validation.
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class tier_definition
|
||||
class tier_review
|
||||
class tier_validation
|
||||
class tier_validation_exception
|
||||
class res_config_settings
|
||||
class res_users
|
||||
```
|
||||
|
||||
Notes
|
||||
- Classes show model technical names; fields omitted for brevity.
|
||||
- Items listed under _inherit are extensions of existing models.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
# Overview
|
||||
|
||||
Packaged Odoo addon: base_tier_validation. Provides features documented in upstream Odoo 16 under this addon.
|
||||
|
||||
- Source: OCA/OCB 16.0, addon base_tier_validation
|
||||
- License: LGPL-3
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# Reports
|
||||
|
||||
This module does not define custom reports.
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# Security
|
||||
|
||||
Access control and security definitions in base_tier_validation.
|
||||
|
||||
## Access Control Lists (ACLs)
|
||||
|
||||
Model access permissions defined in:
|
||||
- **[ir.model.access.csv](../base_tier_validation/security/ir.model.access.csv)**
|
||||
- 6 model access rules
|
||||
|
||||
## Record Rules
|
||||
|
||||
Row-level security rules defined in:
|
||||
|
||||
## Security Groups & Configuration
|
||||
|
||||
Security groups and permissions defined in:
|
||||
- **[tier_validation_security.xml](../base_tier_validation/security/tier_validation_security.xml)**
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "Security Layers"
|
||||
A[Users] --> B[Groups]
|
||||
B --> C[Access Control Lists]
|
||||
C --> D[Models]
|
||||
B --> E[Record Rules]
|
||||
E --> F[Individual Records]
|
||||
end
|
||||
```
|
||||
|
||||
Security files overview:
|
||||
- **[ir.model.access.csv](../base_tier_validation/security/ir.model.access.csv)**
|
||||
- Model access permissions (CRUD rights)
|
||||
- **[tier_validation_security.xml](../base_tier_validation/security/tier_validation_security.xml)**
|
||||
- Security groups, categories, and XML-based rules
|
||||
|
||||
Notes
|
||||
- Access Control Lists define which groups can access which models
|
||||
- Record Rules provide row-level security (filter records by user/group)
|
||||
- Security groups organize users and define permission sets
|
||||
- All security is enforced at the ORM level by Odoo
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
# Troubleshooting
|
||||
|
||||
- Ensure Python and Odoo environment matches repo guidance.
|
||||
- Check database connectivity and logs if startup fails.
|
||||
- Validate that dependent addons listed in DEPENDENCIES.md are installed.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# Usage
|
||||
|
||||
Start Odoo including this addon (from repo root):
|
||||
|
||||
```bash
|
||||
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon base_tier_validation
|
||||
```
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
# Wizards
|
||||
|
||||
Transient models exposed as UI wizards in base_tier_validation.
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class CommentWizard
|
||||
```
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
[project]
|
||||
name = "odoo-bringout-oca-server-ux-base_tier_validation"
|
||||
version = "16.0.0"
|
||||
description = "Base Tier Validation - Implement a validation process based on tiers."
|
||||
authors = [
|
||||
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
|
||||
]
|
||||
dependencies = [
|
||||
"odoo-bringout-oca-ocb-mail>=16.0.0",
|
||||
"requests>=2.25.1"
|
||||
]
|
||||
readme = "README.md"
|
||||
requires-python = ">= 3.11"
|
||||
classifiers = [
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: Office/Business",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
homepage = "https://github.com/bringout/0"
|
||||
repository = "https://github.com/bringout/0"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.metadata]
|
||||
allow-direct-references = true
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["base_tier_validation"]
|
||||
|
||||
[tool.rye]
|
||||
managed = true
|
||||
dev-dependencies = [
|
||||
"pytest>=8.4.1",
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue