Add oca-purchase submodule with 96 purchase modules moved from oca-workflow-process

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ernad Husremovic 2025-08-30 18:00:40 +02:00
parent b0628ee8ea
commit 7378b233e9
3994 changed files with 334316 additions and 0 deletions

View file

@ -0,0 +1,47 @@
# Purchase Request Tier Validation
Odoo addon: purchase_request_tier_validation
## Installation
```bash
pip install odoo-bringout-oca-purchase-workflow-purchase_request_tier_validation
```
## Dependencies
This addon depends on:
- purchase_request
- base_tier_validation
## Manifest Information
- **Name**: Purchase Request Tier Validation
- **Version**: 16.0.1.1.1
- **Category**: Purchase Management
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/purchase-workflow](https://github.com/OCA/purchase-workflow) branch 16.0, addon `purchase_request_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

View file

@ -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 Purchase_request_tier_validation Module - purchase_request_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.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for purchase_request_tier_validation. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,6 @@
# Dependencies
This addon depends on:
- [purchase_request](https://github.com/bringout/oca-workflow-process)
- [base_tier_validation](https://github.com/bringout/oca-technical)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon purchase_request_tier_validation or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-purchase-workflow-purchase_request_tier_validation"
# or
uv pip install odoo-bringout-oca-purchase-workflow-purchase_request_tier_validation"
```

View file

@ -0,0 +1,13 @@
# Models
Detected core models and extensions in purchase_request_tier_validation.
```mermaid
classDiagram
class purchase_request
class tier_definition
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: purchase_request_tier_validation. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon purchase_request_tier_validation
- License: LGPL-3

View file

@ -0,0 +1,3 @@
# Reports
This module does not define custom reports.

View file

@ -0,0 +1,8 @@
# Security
This module does not define custom security rules or access controls beyond Odoo defaults.
Default Odoo security applies:
- Base user access through standard groups
- Model access inherited from dependencies
- No custom row-level security rules

View file

@ -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.

View file

@ -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 purchase_request_tier_validation
```

View file

@ -0,0 +1,3 @@
# Wizards
This module does not include UI wizards.

View file

@ -0,0 +1,123 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
================================
Purchase Request Tier Validation
================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f295df353e929c5b3a2fdcc88b663a0d23f01481efcd03187f875ab3601a7328
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |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%2Fpurchase--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_request_tier_validation
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_request_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/purchase-workflow&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module extends the functionality of Purchase Requests to support a tier validation process.
**Table of contents**
.. contents::
:local:
Installation
============
This module depends on ``base_tier_validation``. You can find it at
`OCA/server-ux <https://github.com/OCA/server-ux>`_
Configuration
=============
A default tier is created allowing Purchase Request Manager to approve Purchase
Requests.
In addition, you may want to add more tiers, so:
#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
#. Create as many tiers as you want for Purchase Order model.
Usage
=====
To use this module, you need to:
#. Create a Purchase Request triggering at least one "Tier Definition".
#. Click on *Request Validation* button.
#. Under the tab *Reviews* have a look to pending reviews and their statuses.
#. Once all reviews are validated button to *Confirm* will be shown.
Additional features:
* You can filter the Purchase Request requesting your review through the filter *Needs my
Review*.
* User with rights to confirm the Purchase Request (validate all tiers that would
be generated) can directly do the operation, this is, there is no need for
her/him to request a validation.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/purchase-workflow/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/purchase-workflow/issues/new?body=module:%20purchase_request_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
~~~~~~~~~~~~
* Adria Gil <adria.gil@forgeflow.com>
Other credits
~~~~~~~~~~~~~
Images
------
* Enric Tobella (logo)
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.
This module is part of the `OCA/purchase-workflow <https://github.com/OCA/purchase-workflow/tree/16.0/purchase_request_tier_validation>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

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

View file

@ -0,0 +1,21 @@
# Copyright 2019-2020 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Purchase Request Tier Validation",
"summary": "Extends the functionality of Purchase Requests to "
"support a tier validation process.",
"version": "16.0.1.1.1",
"category": "Purchase Management",
"website": "https://github.com/OCA/purchase-workflow",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["purchase_request", "base_tier_validation"],
"data": [
"views/purchase_request_view.xml",
],
"demo": [
"demo/tier_definition.xml",
],
}

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2019-2020 ForgeFlow S.L.
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo noupdate="1">
<record id="purchase_request_default_tier_definition" model="tier.definition">
<field name="model_id" ref="model_purchase_request" />
<field name="definition_type">domain</field>
<field name="definition_domain" />
<field name="review_type">group</field>
<field
name="reviewer_group_id"
ref='purchase_request.group_purchase_request_manager'
/>
<field name="company_id" /> <!-- no company set by default -->
</record>
</odoo>

View file

@ -0,0 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_request_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: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review
msgid "Can Review"
msgstr "Može Ovjeriti"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier
msgid "Confirm"
msgstr "Potvrdi"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment
msgid "Has Comment"
msgstr "Ima komentar"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__is_reevaluation_required
msgid "Is Reevaluation Required"
msgstr "Potrebna ponovna evaluacija"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "My Purchases to review"
msgstr "Moje nabavke za pregled"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation
msgid "Need Validation"
msgstr "Potrebna ovjera"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Need actions"
msgstr "Potrebne radnje"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Needs my Review"
msgstr "Potrebna moja ovjera"
#. module: purchase_request_tier_validation
#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition
msgid "New Tier Validation"
msgstr "Nova validacija nivoa"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review
msgid "Next Review"
msgstr "Sljedeća ovjera"
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request
msgid "Purchase Request"
msgstr "Zahtjev za nabavu"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Purchase Requests validated and ready to be confirmed"
msgstr "Zahtjevi za nabavku validirani i spremni za potvrdu"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected
msgid "Rejected"
msgstr "Odbijeno"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message
msgid "Rejected Message"
msgstr "Poruka uz odbijanje"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids
msgid "Reviewers"
msgstr "Ovejritelji"
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definicija granice"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message
msgid "To Validate Message"
msgstr "Poruka za ovjeru"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Validated"
msgstr "Odobreno"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message
msgid "Validated Message"
msgstr "Poruka za ovjereno"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status
msgid "Validation Status"
msgstr "Status ovjeravanja"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids
msgid "Validations"
msgstr "Ovjeravanja"

View file

@ -0,0 +1,165 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_request_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-11-06 21:37+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review
msgid "Can Review"
msgstr "Puede Revisar"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier
msgid "Confirm"
msgstr "Confirmar"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment
msgid "Has Comment"
msgstr "Tiene Comentario"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__is_reevaluation_required
msgid "Is Reevaluation Required"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "My Purchases to review"
msgstr "Mis Compras a revisar"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation
msgid "Need Validation"
msgstr "Necesita validación"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Need actions"
msgstr "Acción necesaria"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Needs my Review"
msgstr "Necesita mi revisión"
#. module: purchase_request_tier_validation
#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition
msgid "New Tier Validation"
msgstr "Nueva Validación de Nivel"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review
msgid "Next Review"
msgstr "Siguiente revisión"
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request
msgid "Purchase Request"
msgstr "Solicitud de Compra"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Purchase Requests validated and ready to be confirmed"
msgstr "Solicitudes de compra validadas y preparadas para ser confirmadas"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected
msgid "Rejected"
msgstr "Rechazado/a"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message
msgid "Rejected Message"
msgstr "Mensaje Rechazado"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids
msgid "Reviewers"
msgstr "Revisores"
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definición del nivel"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message
msgid "To Validate Message"
msgstr "Para validar el mensaje"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Validated"
msgstr "Validada"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message
msgid "Validated Message"
msgstr "Mensaje Validado"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status
msgid "Validation Status"
msgstr "Estado de la Validación"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids
msgid "Validations"
msgstr "Validaciones"
#~ msgid "Display Name"
#~ msgstr "Mostrar Nombre"
#~ msgid "ID"
#~ msgstr "ID (identificación)"
#~ msgid "Last Modified on"
#~ msgstr "Última Modificación el"
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>This Purchase Request needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>Esta Solicitud de compra debe ser\n"
#~ " validada."
#~ 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>."
#~ 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>!"
#~ msgid "Dismiss"
#~ msgstr "Descartar"
#~ msgid "Reject"
#~ msgstr "Rechazar"
#~ msgid "Request Validation"
#~ msgstr "Solicitar Validación"
#~ msgid "Restart Validation"
#~ msgstr "Reiniciar Validación"
#~ msgid "Tier Review"
#~ msgstr "Revisión de nivel"
#~ msgid "Validate"
#~ msgstr "Validar"

View file

@ -0,0 +1,155 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_request_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-11-16 23:36+0000\n"
"Last-Translator: Cristian Salamea <ovnicraft@gmail.com>\n"
"Language-Team: none\n"
"Language: es_EC\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 3.8\n"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review
msgid "Can Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier
msgid "Confirm"
msgstr "Confirmar"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment
msgid "Has Comment"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__is_reevaluation_required
msgid "Is Reevaluation Required"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "My Purchases to review"
msgstr "Mis compras a revisar"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation
msgid "Need Validation"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Need actions"
msgstr "Necesita acciones"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Needs my Review"
msgstr "Necesita mi revisión"
#. module: purchase_request_tier_validation
#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition
msgid "New Tier Validation"
msgstr "Nueva capa de validación"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review
msgid "Next Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request
msgid "Purchase Request"
msgstr "Requisición de Compra"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Purchase Requests validated and ready to be confirmed"
msgstr "Requisición de compra validada y ya confirmada"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected
msgid "Rejected"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids
msgid "Reviewers"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definición"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Validated"
msgstr "Validado"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message
msgid "Validated Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status
msgid "Validation Status"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids
msgid "Validations"
msgstr ""
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>This Purchase Request needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>Esa requisición de compra necesita ser\n"
#~ " validada."
#~ msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-down\"/> Operación ha sido <b>rechazada</b>."
#~ msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
#~ msgstr "<i class=\"fa fa-thumbs-up\"/> Operación ha sido <b>validada</b>!"
#~ msgid "Dismiss"
#~ msgstr "Descartar"
#~ msgid "Reject"
#~ msgstr "Rechazar"
#~ msgid "Request Validation"
#~ msgstr "Solicitar Validación"
#~ msgid "Restart Validation"
#~ msgstr "Reinicia validación"
#~ msgid "Tier Review"
#~ msgstr "Revisar"
#~ msgid "Validate"
#~ msgstr "Validar"

View file

@ -0,0 +1,157 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_request_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-01-11 13:06+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review
msgid "Can Review"
msgstr "Può revisionare"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier
msgid "Confirm"
msgstr "Conferma"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment
msgid "Has Comment"
msgstr "Ha commenti"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__is_reevaluation_required
msgid "Is Reevaluation Required"
msgstr "È richiesta la rivalutazione"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "My Purchases to review"
msgstr "I miei acquisti da revisionare"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation
msgid "Need Validation"
msgstr "Richiede conferma"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Need actions"
msgstr "Richiedono attività"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Needs my Review"
msgstr "Richiede la mia revisione"
#. module: purchase_request_tier_validation
#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition
msgid "New Tier Validation"
msgstr "Nuovo Tier di Validazione"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review
msgid "Next Review"
msgstr "Prossima revisione"
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request
msgid "Purchase Request"
msgstr "Richiesta di acquisto"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Purchase Requests validated and ready to be confirmed"
msgstr "Richiesta di acquisto validata e pronta per essere confermata"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected
msgid "Rejected"
msgstr "Rifiutata"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message
msgid "Rejected Message"
msgstr "Messaggio di rifiuto"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids
msgid "Reviewers"
msgstr "Revisori"
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definizione livello"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message
msgid "To Validate Message"
msgstr "Messaggio per 'Da validare'"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Validated"
msgstr "Approvata"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message
msgid "Validated Message"
msgstr "Messaggio per 'Validata'"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status
msgid "Validation Status"
msgstr "Stato validazione"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids
msgid "Validations"
msgstr "Validazioni"
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>This Purchase Request needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>Questa Richiesta d'Acquisto deve essere "
#~ "approvata."
#~ msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-down\"/> L'operazione è stata <b>rifiutata</b>."
#~ msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-up\"/> L'operazione è stata <b>approvata</b>!"
#, fuzzy
#~ msgid "Dismiss"
#~ msgstr "Annulla"
#~ msgid "Reject"
#~ msgstr "Rifiuta"
#~ msgid "Request Validation"
#~ msgstr "Richiedi Approvazione"
#~ msgid "Restart Validation"
#~ msgstr "Reinizia Approvazione"
#~ msgid "Tier Review"
#~ msgstr "Verifica Tier"
#~ msgid "Validate"
#~ msgstr "Approva"

View file

@ -0,0 +1,155 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_request_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-05-29 15:20+0000\n"
"Last-Translator: Cas Vissers <c.vissers@brahoo.nl>\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 3.6.1\n"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review
msgid "Can Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier
msgid "Confirm"
msgstr "Bevestig"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment
msgid "Has Comment"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__is_reevaluation_required
msgid "Is Reevaluation Required"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "My Purchases to review"
msgstr "Mijn te controleren inkopen"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation
msgid "Need Validation"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Need actions"
msgstr "Actie nodig"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Needs my Review"
msgstr "Review nodig"
#. module: purchase_request_tier_validation
#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition
msgid "New Tier Validation"
msgstr "Nieuwe tier validering"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review
msgid "Next Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request
msgid "Purchase Request"
msgstr "Inkoopaanvraag"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Purchase Requests validated and ready to be confirmed"
msgstr "Inkoopaanvragen gevalideerd en klaar om te bevestigen"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected
msgid "Rejected"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids
msgid "Reviewers"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition
#, fuzzy
msgid "Tier Definition"
msgstr "tier.definition"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Validated"
msgstr "Gevalideerd"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message
msgid "Validated Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status
msgid "Validation Status"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids
msgid "Validations"
msgstr ""
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>This Purchase Request needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>Deze inkoopaanvraag moet\n"
#~ " gevalideerd worden."
#~ msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
#~ msgstr "<i class=\"fa fa-thumbs-down\"/> Bewerking is <b>geweigerd</b>."
#~ msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
#~ msgstr "<i class=\"fa fa-thumbs-up\"/> Bewerking is <b>gevalideerd</b>!"
#~ msgid "Dismiss"
#~ msgstr "Weiger"
#~ msgid "Reject"
#~ msgstr "Weiger"
#~ msgid "Request Validation"
#~ msgstr "Vraag validatie aan"
#~ msgid "Restart Validation"
#~ msgstr "Herstart validatie"
#~ msgid "Tier Review"
#~ msgstr "Tier review"
#~ msgid "Validate"
#~ msgstr "Valideer"

View file

@ -0,0 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_request_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: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review
msgid "Can Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier
msgid "Confirm"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment
msgid "Has Comment"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__is_reevaluation_required
msgid "Is Reevaluation Required"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "My Purchases to review"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation
msgid "Need Validation"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Need actions"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Needs my Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition
msgid "New Tier Validation"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review
msgid "Next Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request
msgid "Purchase Request"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Purchase Requests validated and ready to be confirmed"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected
msgid "Rejected"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids
msgid "Reviewers"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Validated"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message
msgid "Validated Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status
msgid "Validation Status"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids
msgid "Validations"
msgstr ""

View file

@ -0,0 +1,152 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_request_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-03-28 16:13+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: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review
msgid "Can Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier
msgid "Confirm"
msgstr "确认"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment
msgid "Has Comment"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__is_reevaluation_required
msgid "Is Reevaluation Required"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "My Purchases to review"
msgstr "等待我审核的采购"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation
msgid "Need Validation"
msgstr ""
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Need actions"
msgstr "需要操作"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Needs my Review"
msgstr "需要我审核"
#. module: purchase_request_tier_validation
#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition
msgid "New Tier Validation"
msgstr "请购单多层级审批"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review
msgid "Next Review"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request
msgid "Purchase Request"
msgstr "请购"
#. module: purchase_request_tier_validation
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Purchase Requests validated and ready to be confirmed"
msgstr "请购单已验证并等待确认"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected
msgid "Rejected"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message
msgid "Rejected Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids
msgid "Reviewers"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "层级定义"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message
msgid "To Validate Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated
#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter
msgid "Validated"
msgstr "已批准"
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message
msgid "Validated Message"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status
msgid "Validation Status"
msgstr ""
#. module: purchase_request_tier_validation
#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids
msgid "Validations"
msgstr ""
#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>This Purchase Request needs to be\n"
#~ " validated."
#~ msgstr "<i class=\"fa fa-info-circle\"/>这个请购单需要审批。"
#~ msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
#~ msgstr "<i class=\"fa fa-thumbs-down\"/> 操作已被<b>驳回</b>。"
#~ msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
#~ msgstr "<i class=\"fa fa-thumbs-up\"/> 操作已被 <b>验证</b>"
#~ msgid "Dismiss"
#~ msgstr "作废"
#~ msgid "Reject"
#~ msgstr "驳回"
#~ msgid "Request Validation"
#~ msgstr "请求审批"
#~ msgid "Restart Validation"
#~ msgstr "撤回审批"
#~ msgid "Tier Review"
#~ msgstr "多层级审批"
#~ msgid "Validate"
#~ msgstr "批准"

View file

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

View file

@ -0,0 +1,18 @@
# Copyright 2019-2020 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, models
class PurchaseRequest(models.Model):
_name = "purchase.request"
_inherit = ["purchase.request", "tier.validation"]
_state_from = ["draft"]
_state_to = ["approved"]
_tier_validation_manual_config = False
@api.model
def _get_under_validation_exceptions(self):
res = super(PurchaseRequest, self)._get_under_validation_exceptions()
res.append("route_id")
return res

View file

@ -0,0 +1,13 @@
# Copyright 2019-2020 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, models
class TierDefinition(models.Model):
_inherit = "tier.definition"
@api.model
def _get_tier_validation_model_names(self):
res = super(TierDefinition, self)._get_tier_validation_model_names()
res.append("purchase.request")
return res

View file

@ -0,0 +1,7 @@
A default tier is created allowing Purchase Request Manager to approve Purchase
Requests.
In addition, you may want to add more tiers, so:
#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
#. Create as many tiers as you want for Purchase Order model.

View file

@ -0,0 +1 @@
This module extends the functionality of Purchase Requests to support a tier validation process.

View file

@ -0,0 +1,2 @@
This module depends on ``base_tier_validation``. You can find it at
`OCA/server-ux <https://github.com/OCA/server-ux>`_

View file

@ -0,0 +1,14 @@
To use this module, you need to:
#. Create a Purchase Request triggering at least one "Tier Definition".
#. Click on *Request Validation* button.
#. Under the tab *Reviews* have a look to pending reviews and their statuses.
#. Once all reviews are validated button to *Confirm* will be shown.
Additional features:
* You can filter the Purchase Request requesting your review through the filter *Needs my
Review*.
* User with rights to confirm the Purchase Request (validate all tiers that would
be generated) can directly do the operation, this is, there is no need for
her/him to request a validation.

View file

@ -0,0 +1,478 @@
<!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="purchase-request-tier-validation">
<h1>Purchase Request Tier Validation</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f295df353e929c5b3a2fdcc88b663a0d23f01481efcd03187f875ab3601a7328
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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/purchase-workflow/tree/16.0/purchase_request_tier_validation"><img alt="OCA/purchase-workflow" src="https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_request_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/purchase-workflow&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module extends the functionality of Purchase Requests to support a tier validation process.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#installation" id="toc-entry-1">Installation</a></li>
<li><a class="reference internal" href="#configuration" id="toc-entry-2">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="toc-entry-3">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-7">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="toc-entry-8">Other credits</a><ul>
<li><a class="reference internal" href="#images" id="toc-entry-9">Images</a></li>
</ul>
</li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-10">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="installation">
<h2><a class="toc-backref" href="#toc-entry-1">Installation</a></h2>
<p>This module depends on <tt class="docutils literal">base_tier_validation</tt>. You can find it at
<a class="reference external" href="https://github.com/OCA/server-ux">OCA/server-ux</a></p>
</div>
<div class="section" id="configuration">
<h2><a class="toc-backref" href="#toc-entry-2">Configuration</a></h2>
<p>A default tier is created allowing Purchase Request Manager to approve Purchase
Requests.</p>
<p>In addition, you may want to add more tiers, so:</p>
<ol class="arabic simple">
<li>Go to <em>Settings &gt; Technical &gt; Tier Validations &gt; Tier Definition</em>.</li>
<li>Create as many tiers as you want for Purchase Order model.</li>
</ol>
</div>
<div class="section" id="usage">
<h2><a class="toc-backref" href="#toc-entry-3">Usage</a></h2>
<p>To use this module, you need to:</p>
<ol class="arabic simple">
<li>Create a Purchase Request triggering at least one “Tier Definition”.</li>
<li>Click on <em>Request Validation</em> button.</li>
<li>Under the tab <em>Reviews</em> have a look to pending reviews and their statuses.</li>
<li>Once all reviews are validated button to <em>Confirm</em> will be shown.</li>
</ol>
<p>Additional features:</p>
<ul class="simple">
<li>You can filter the Purchase Request requesting your review through the filter <em>Needs my
Review</em>.</li>
<li>User with rights to confirm the Purchase Request (validate all tiers that would
be generated) can directly do the operation, this is, there is no need for
her/him to request a validation.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h2>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/purchase-workflow/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/purchase-workflow/issues/new?body=module:%20purchase_request_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-5">Credits</a></h2>
<div class="section" id="authors">
<h3><a class="toc-backref" href="#toc-entry-6">Authors</a></h3>
<ul class="simple">
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h3><a class="toc-backref" href="#toc-entry-7">Contributors</a></h3>
<ul class="simple">
<li>Adria Gil &lt;<a class="reference external" href="mailto:adria.gil&#64;forgeflow.com">adria.gil&#64;forgeflow.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="other-credits">
<h3><a class="toc-backref" href="#toc-entry-8">Other credits</a></h3>
<div class="section" id="images">
<h4><a class="toc-backref" href="#toc-entry-9">Images</a></h4>
<ul class="simple">
<li>Enric Tobella (logo)</li>
</ul>
</div>
</div>
<div class="section" id="maintainers">
<h3><a class="toc-backref" href="#toc-entry-10">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>This module is part of the <a class="reference external" href="https://github.com/OCA/purchase-workflow/tree/16.0/purchase_request_tier_validation">OCA/purchase-workflow</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1 @@
from . import test_purchase_request_tier_validation

View file

@ -0,0 +1,23 @@
# Copyright 2017-2020 ForgeFlow S.L.
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl-3.0).
from odoo.tests import common
class TestPurchaseRequest(common.TransactionCase):
def setUp(self):
super(TestPurchaseRequest, self).setUp()
# common models
self.purchase_request = self.env["purchase.request"]
self.tier_definition = self.env["tier.definition"]
def test_get_under_validation_exceptions(self):
self.assertIn(
"route_id", self.purchase_request._get_under_validation_exceptions()
)
def test_get_tier_validation_model_names(self):
self.assertIn(
"purchase.request", self.tier_definition._get_tier_validation_model_names()
)

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2019-2020 ForgeFlow S.L.
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_purchase_request_form_inherit_tier" model="ir.ui.view">
<field name="name">purchase.request.tier.validation.form</field>
<field name="model">purchase.request</field>
<field name="inherit_id" ref="purchase_request.view_purchase_request_form" />
<field name="arch" type="xml">
<button name="button_approved" position="attributes">
<attribute name="string">Confirm</attribute>
<attribute
name="attrs"
>{'invisible':['|', ('validation_status', 'in', ('pending', 'rejected')),('state', '!=', 'draft')]}</attribute>
</button>
<field name="state" position="after">
<field name="validation_status" invisible="1" />
</field>
<button name="button_to_approve" position="attributes">
<attribute name="invisible">1</attribute>
</button>
<field name="state" position="attributes">
<attribute
name="statusbar_visible"
>draft,approved,done,rejected</attribute>
</field>
</field>
</record>
<record id="view_purchase_request_filter" model="ir.ui.view">
<field
name="name"
>purchase.request.select - purchase_request_tier_validation</field>
<field name="model">purchase.request</field>
<field name="inherit_id" ref="purchase_request.view_purchase_request_search" />
<field name="arch" type="xml">
<search position="inside">
<group expand="0" string="Need actions">
<filter
name="needs_review"
string="Needs my Review"
domain="[('reviewer_ids','in',uid), ('state', 'not in', ['done', 'cancel'])]"
help="My Purchases to review"
/>
<filter
name="tier_validated"
string="Validated"
domain="[('validation_status', '=', 'validated')]"
help="Purchase Requests validated and ready to be confirmed"
/>
</group>
</search>
</field>
</record>
</odoo>

View file

@ -0,0 +1,43 @@
[project]
name = "odoo-bringout-oca-purchase-workflow-purchase_request_tier_validation"
version = "16.0.0"
description = "Purchase Request Tier Validation - Extends the functionality of Purchase Requests to support a tier validation process."
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-purchase-workflow-purchase_request>=16.0.0",
"odoo-bringout-oca-purchase-workflow-base_tier_validation>=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 = ["purchase_request_tier_validation"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]