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,46 @@
# Purchase Work Acceptance Evaluation
Odoo addon: purchase_work_acceptance_evaluation
## Installation
```bash
pip install odoo-bringout-oca-purchase-workflow-purchase_work_acceptance_evaluation
```
## Dependencies
This addon depends on:
- purchase_work_acceptance
## Manifest Information
- **Name**: Purchase Work Acceptance Evaluation
- **Version**: 16.0.1.0.0
- **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_work_acceptance_evaluation`.
## 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_work_acceptance_evaluation Module - purchase_work_acceptance_evaluation
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_work_acceptance_evaluation. 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,5 @@
# Dependencies
This addon depends on:
- [purchase_work_acceptance](https://github.com/bringout/oca-workflow-process)

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_work_acceptance_evaluation or install in UI.

View file

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

View file

@ -0,0 +1,16 @@
# Models
Detected core models and extensions in purchase_work_acceptance_evaluation.
```mermaid
classDiagram
class work_acceptance_evaluation
class work_acceptance_evaluation_result
class work_acceptance_evaluation_score
class res_config_settings
class work_acceptance
```
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_work_acceptance_evaluation. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon purchase_work_acceptance_evaluation
- License: LGPL-3

View file

@ -0,0 +1,27 @@
# Reports
Report definitions and templates in purchase_work_acceptance_evaluation.
```mermaid
classDiagram
class WorkAcceptanceEvaluationReport
Model <|-- WorkAcceptanceEvaluationReport
```
## Available Reports
### Analytical/Dashboard Reports
- **Work Acceptance Evaluation Report** (Analysis/Dashboard)
## Report Files
- **__init__.py** (Python logic)
- **work_acceptance_evaluation_report.py** (Python logic)
- **work_acceptance_evaluation_report.xml** (XML template/definition)
## Notes
- Named reports above are accessible through Odoo's reporting menu
- Python files define report logic and data processing
- XML files contain report templates, definitions, and formatting
- Reports are integrated with Odoo's printing and email systems

View file

@ -0,0 +1,42 @@
# Security
Access control and security definitions in purchase_work_acceptance_evaluation.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[ir.model.access.csv](../purchase_work_acceptance_evaluation/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:
- **[security.xml](../purchase_work_acceptance_evaluation/security/security.xml)**
- 1 security groups defined
```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](../purchase_work_acceptance_evaluation/security/ir.model.access.csv)**
- Model access permissions (CRUD rights)
- **[security.xml](../purchase_work_acceptance_evaluation/security/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

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_work_acceptance_evaluation
```

View file

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

View file

@ -0,0 +1,119 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
===================================
Purchase Work Acceptance Evaluation
===================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f109bc22b4527c6a004c3c47c51ef350f2136488946b2678b1c9ef4c4634a803
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |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_work_acceptance_evaluation
: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_work_acceptance_evaluation
: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 extend Purchase Work Acceptance by adding the ability to evaluate quality of work.
User can also add as many evaluation criteria as he/she wanted in configuration menu.
In addition, user can see all evaluation from Work Acceptance Evaluation Report.
.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_
**Table of contents**
.. contents::
:local:
Configuration
=============
To configure this module, you need to enable wa evaluation:
* Go to Purchase > Configuration > Settings > Enable `Enable Evaluation on Work Acceptance` in `Work Acceptance`
Usage
=====
**Usual process of Purchasing with Work Acceptance Evaluation**
#. Create a new Work Acceptance (either directly or from purchase order)
#. On Evaluation tab, each evaluation criteria will be editble based on its Settings.
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_work_acceptance_evaluation%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
~~~~~~~
* Ecosoft
Contributors
~~~~~~~~~~~~
* `Ecosoft <http://ecosoft.co.th>`__:
* Kitti U. <kittiu@ecosoft.co.th>
* Tharathip C. <tharathipc@ecosoft.co.th>
* Saran Lim. <saranl@ecosoft.co.th>
* `ProThai <http://prothaitechnology.com>`__:
* Prapassorn Sornkaew <prapassorn.s@prothaitechnology.com> <Migration to version 14.0>
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-kittiu| image:: https://github.com/kittiu.png?size=40px
:target: https://github.com/kittiu
:alt: kittiu
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-kittiu|
This module is part of the `OCA/purchase-workflow <https://github.com/OCA/purchase-workflow/tree/16.0/purchase_work_acceptance_evaluation>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

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

View file

@ -0,0 +1,24 @@
# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Purchase Work Acceptance Evaluation",
"version": "16.0.1.0.0",
"category": "Purchase Management",
"author": "Ecosoft, Odoo Community Association (OCA)",
"license": "AGPL-3",
"website": "https://github.com/OCA/purchase-workflow",
"depends": ["purchase_work_acceptance"],
"data": [
"security/ir.model.access.csv",
"security/security.xml",
"views/res_config_settings_views.xml",
"views/work_acceptance_evaluation_views.xml",
"views/work_acceptance_views.xml",
"report/work_acceptance_evaluation_report.xml",
],
"demo": ["demo/evaluation_data.xml"],
"maintainers": ["kittiu"],
"installable": True,
"development_status": "Alpha",
}

View file

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="score_on_time" model="work.acceptance.evaluation.score">
<field name="name">On time</field>
<field name="score" eval="3" />
</record>
<record id="score_late_one" model="work.acceptance.evaluation.score">
<field name="name">Late for 1-7 days</field>
<field name="score" eval="2" />
</record>
<record id="score_late_two" model="work.acceptance.evaluation.score">
<field name="name">Late for 8-14 days</field>
<field name="score" eval="1" />
</record>
<record id="score_late_three" model="work.acceptance.evaluation.score">
<field name="name">Late more than 15 days</field>
<field name="score" eval="0" />
</record>
<record id="score_excellent" model="work.acceptance.evaluation.score">
<field name="name">Excellent</field>
<field name="score" eval="3" />
</record>
<record id="score_good" model="work.acceptance.evaluation.score">
<field name="name">Good</field>
<field name="score" eval="2" />
</record>
<record id="score_satisfactory" model="work.acceptance.evaluation.score">
<field name="name">Satisfactory</field>
<field name="score" eval="1" />
</record>
<record id="score_need_improvement" model="work.acceptance.evaluation.score">
<field name="name">Need Improvement</field>
<field name="score" eval="0" />
</record>
<record id="score_better" model="work.acceptance.evaluation.score">
<field name="name">Better than expectation</field>
<field name="score" eval="2" />
</record>
<record id="score_as_expec" model="work.acceptance.evaluation.score">
<field name="name">As expectation</field>
<field name="score" eval="1" />
</record>
<record id="case_name_01" model="work.acceptance.evaluation">
<field name="name">Delivery Time</field>
<field name="active">True</field>
<field name="state_required">draft</field>
<field
name="score_ids"
eval="[(6,0,[ref('score_on_time'), ref('score_late_one'), ref('score_late_two'), ref('score_late_three')])]"
>
</field>
</record>
<record id="case_name_02" model="work.acceptance.evaluation">
<field name="name">Product Quality</field>
<field name="active">True</field>
<field name="state_required">draft</field>
<field
name="score_ids"
eval="[(6,0,[ref('score_better'), ref('score_as_expec')])]"
>
</field>
</record>
<record id="case_name_03" model="work.acceptance.evaluation">
<field name="name">Service Quality</field>
<field name="active">True</field>
<field name="state_required">draft</field>
<field
name="score_ids"
eval="[(6,0,[ref('score_excellent'), ref('score_good'), ref('score_satisfactory'), ref('score_need_improvement')])]"
>
</field>
</record>
</odoo>

View file

@ -0,0 +1,241 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_work_acceptance_evaluation
#
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_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__accept
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__accept
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Accepted"
msgstr "Prihvaćeno"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__date_accept
msgid "Accepted Date"
msgstr "Datum prihvatanja"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__active
msgid "Active"
msgstr "Aktivan"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
msgid "Archived"
msgstr "Arhivirano"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__cancel
msgid "Cancelled"
msgstr "Otkazan"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__evaluation_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Case Name"
msgstr "Naziv slučaja"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__company_id
msgid "Company"
msgstr "Preduzeće"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__draft
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__draft
msgid "Draft"
msgstr "U pripremi"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__editable
msgid "Editable"
msgstr "Može se uređivati"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_res_config_settings__group_enable_eval_on_wa
#: model:res.groups,name:purchase_work_acceptance_evaluation.group_enable_eval_on_wa
msgid "Enable Evaluation on Work Acceptance"
msgstr "Omogući evaluaciju na potvrdi o izvršenom radu"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_tab_form
msgid "Evaluation"
msgstr "Evaluacija"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance__evaluation_result_ids
msgid "Evaluation Results"
msgstr "Rezultati evaluacije"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Group By"
msgstr "Grupiši po"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__id
msgid "ID"
msgstr "ID"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score____last_update
msgid "Last Modified on"
msgstr "Zadnje mijenjano"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_uid
msgid "Last Updated by"
msgstr "Zadnji ažurirao"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_date
msgid "Last Updated on"
msgstr "Zadnje ažurirano"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Not Accepted"
msgstr "Nije prihvaćeno"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__note
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__note
msgid "Note"
msgstr "Zabilješka"
#. module: purchase_work_acceptance_evaluation
#. odoo-python
#: code:addons/purchase_work_acceptance_evaluation/models/work_acceptance.py:0
#, python-format
msgid "Please evaluate - %s"
msgstr "Molimo ocijenite - %s"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr "Postavke grupisanja nabavke"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__score_ids
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__score_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__score
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Score"
msgstr "Rezultat"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score_id
msgid "Score ID"
msgstr "ID ocjene"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "State Required"
msgstr "Status obavezan"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_state
msgid "Status"
msgstr "Status"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,help:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "Status of Work Acceptance that user need to fill the evaluation"
msgstr "Status potvrde o izvršenom radu za koju korisnik treba popuniti evaluaciju"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__name
msgid "Values"
msgstr "Vrijednosti"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__partner_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Vendor"
msgstr "Dobavljač"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__wa_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "WA Reference"
msgstr "Referenca WA (Potvrde o radu)"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance
msgid "Work Acceptance"
msgstr "Potvrda o izvršenom radu"
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.menu_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_search
msgid "Work Acceptance Evaluation"
msgstr "Evaluacija potvrde o izvršenom radu"
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_report
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_menu
msgid "Work Acceptance Evaluation Report"
msgstr "Izvještaj o evaluaciji potvrde o izvršenom radu"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_result
msgid "Work Acceptance Evaluation Result"
msgstr "Rezultat evaluacije potvrde o izvršenom radu"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_score
msgid "Work Acceptance Evaluation Score"
msgstr "Ocjena evaluacije potvrde o izvršenom radu"

View file

@ -0,0 +1,245 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_work_acceptance_evaluation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-10-28 19:59+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_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__accept
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__accept
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Accepted"
msgstr "Aceptado"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__date_accept
msgid "Accepted Date"
msgstr "Fecha Aceptada"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__active
msgid "Active"
msgstr "Activo"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
msgid "Archived"
msgstr "Archivado"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__cancel
msgid "Cancelled"
msgstr "Cancelado"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__evaluation_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Case Name"
msgstr "Nombre del Caso"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__company_id
msgid "Company"
msgstr "Compañía"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_date
msgid "Created on"
msgstr "Creado el"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__display_name
msgid "Display Name"
msgstr "Mostrar nombre"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__draft
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__draft
msgid "Draft"
msgstr "Borrador"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__editable
msgid "Editable"
msgstr "Se puede editar"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_res_config_settings__group_enable_eval_on_wa
#: model:res.groups,name:purchase_work_acceptance_evaluation.group_enable_eval_on_wa
msgid "Enable Evaluation on Work Acceptance"
msgstr "Permitir la Evaluación sobre la Aceptación del Trabajo"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_tab_form
msgid "Evaluation"
msgstr "Evaluación"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance__evaluation_result_ids
msgid "Evaluation Results"
msgstr "Resultados de la Evaluación"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Group By"
msgstr "Agrupar Por"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__id
msgid "ID"
msgstr "ID (identificación)"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score____last_update
msgid "Last Modified on"
msgstr "Última Modificación el"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_uid
msgid "Last Updated by"
msgstr "Última Actualización Por"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_date
msgid "Last Updated on"
msgstr "Última Actualización el"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Not Accepted"
msgstr "No Aceptado"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__note
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__note
msgid "Note"
msgstr "Nota"
#. module: purchase_work_acceptance_evaluation
#: code:addons/purchase_work_acceptance_evaluation/models/work_acceptance.py:0
#, python-format
msgid "Please evaluate - %s"
msgstr "Por favor, evalúe - %s"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr "Configuración de la agrupación de adquisición de compras"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__score_ids
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__score_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__score
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Score"
msgstr "Puntuación"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score_id
msgid "Score ID"
msgstr "ID de Puntuación"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "State Required"
msgstr "Estado Requerido"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_state
msgid "Status"
msgstr "Situación"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,help:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "Status of Work Acceptance that user need to fill the evaluation"
msgstr ""
"Estado de Aceptación del Trabajo que el usuario necesita para rellenar la "
"evaluación"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__name
msgid "Values"
msgstr "Valores"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__partner_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Vendor"
msgstr "Vendedor"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__wa_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "WA Reference"
msgstr "Referencia WA"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance
msgid "Work Acceptance"
msgstr "Aceptación de Trabajo"
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.menu_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_search
msgid "Work Acceptance Evaluation"
msgstr "Evaluación de la Aceptación del Trabajo"
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_report
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_menu
msgid "Work Acceptance Evaluation Report"
msgstr "Informe de Evaluación de la Aceptación del Trabajo"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_result
msgid "Work Acceptance Evaluation Result"
msgstr "Resultado de la Evaluación de la Aceptación del Trabajo"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_score
msgid "Work Acceptance Evaluation Score"
msgstr "Puntuación de la Evaluación de la Aceptación del Trabajo"

View file

@ -0,0 +1,245 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_work_acceptance_evaluation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-06-12 09:26+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.10.4\n"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__accept
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__accept
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Accepted"
msgstr "Accettata"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__date_accept
msgid "Accepted Date"
msgstr "Data accettata"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__active
msgid "Active"
msgstr "Attiva"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
msgid "Archived"
msgstr "In archivio"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__cancel
msgid "Cancelled"
msgstr "Annullata"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__evaluation_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Case Name"
msgstr "Nome caso"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__company_id
msgid "Company"
msgstr "Azienda"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_date
msgid "Created on"
msgstr "Creato il"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__draft
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__draft
msgid "Draft"
msgstr "Bozza"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__editable
msgid "Editable"
msgstr "Modificabile"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_res_config_settings__group_enable_eval_on_wa
#: model:res.groups,name:purchase_work_acceptance_evaluation.group_enable_eval_on_wa
msgid "Enable Evaluation on Work Acceptance"
msgstr "Abilita modifica su accettazione lavoro"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_tab_form
msgid "Evaluation"
msgstr "Valutazione"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance__evaluation_result_ids
msgid "Evaluation Results"
msgstr "Risultati valutazione"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Group By"
msgstr "Raggruppa per"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__id
msgid "ID"
msgstr "ID"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score____last_update
msgid "Last Modified on"
msgstr "Ultima modifica il"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Not Accepted"
msgstr "Non accettato"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__note
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__note
msgid "Note"
msgstr "Nota"
#. module: purchase_work_acceptance_evaluation
#. odoo-python
#: code:addons/purchase_work_acceptance_evaluation/models/work_acceptance.py:0
#, python-format
msgid "Please evaluate - %s"
msgstr "Valutare - %s"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr "Impostazioni raggruppamento approvvigionamento acquisti"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__score_ids
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__score_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__score
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Score"
msgstr "Punteggio"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score_id
msgid "Score ID"
msgstr "ID punteggio"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "State Required"
msgstr "Stato richiesto"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_state
msgid "Status"
msgstr "Stato"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,help:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "Status of Work Acceptance that user need to fill the evaluation"
msgstr ""
"Stato dell'accettazione lavoro di cui l'utente deve compilare la valutazione"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__name
msgid "Values"
msgstr "Valori"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__partner_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Vendor"
msgstr "Fornitore"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__wa_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "WA Reference"
msgstr "Riferimento approvazione lavoro"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance
msgid "Work Acceptance"
msgstr "Approvazione lavoro"
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.menu_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_search
msgid "Work Acceptance Evaluation"
msgstr "Valutazione approvazione lavoro"
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_report
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_menu
msgid "Work Acceptance Evaluation Report"
msgstr "Resoconto valutazione approvazione lavoro"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_result
msgid "Work Acceptance Evaluation Result"
msgstr "Risultato valutazione approvazione lavoro"
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_score
msgid "Work Acceptance Evaluation Score"
msgstr "Punteggio valutazione approvazione lavoro"

View file

@ -0,0 +1,241 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_work_acceptance_evaluation
#
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_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__accept
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__accept
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Accepted"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__date_accept
msgid "Accepted Date"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__active
msgid "Active"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
msgid "Archived"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__cancel
msgid "Cancelled"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__case_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__evaluation_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Case Name"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__company_id
msgid "Company"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_uid
msgid "Created by"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__create_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__create_date
msgid "Created on"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__display_name
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__display_name
msgid "Display Name"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation__state_required__draft
#: model:ir.model.fields.selection,name:purchase_work_acceptance_evaluation.selection__work_acceptance_evaluation_report__wa_state__draft
msgid "Draft"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__editable
msgid "Editable"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_res_config_settings__group_enable_eval_on_wa
#: model:res.groups,name:purchase_work_acceptance_evaluation.group_enable_eval_on_wa
msgid "Enable Evaluation on Work Acceptance"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_tab_form
msgid "Evaluation"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance__evaluation_result_ids
msgid "Evaluation Results"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Group By"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__id
msgid "ID"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result____last_update
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score____last_update
msgid "Last Modified on"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_uid
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_uid
msgid "Last Updated by"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__write_date
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__write_date
msgid "Last Updated on"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Not Accepted"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__note
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__note
msgid "Note"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#. odoo-python
#: code:addons/purchase_work_acceptance_evaluation/models/work_acceptance.py:0
#, python-format
msgid "Please evaluate - %s"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__score_ids
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__score_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__score
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Score"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__score_id
msgid "Score ID"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "State Required"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_state
msgid "Status"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,help:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation__state_required
msgid "Status of Work Acceptance that user need to fill the evaluation"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_score__name
msgid "Values"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__partner_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "Vendor"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_report__wa_id
#: model:ir.model.fields,field_description:purchase_work_acceptance_evaluation.field_work_acceptance_evaluation_result__wa_id
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_search_view
msgid "WA Reference"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance
msgid "Work Acceptance"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.menu_work_acceptance_evaluation
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_form
#: model_terms:ir.ui.view,arch_db:purchase_work_acceptance_evaluation.view_work_acceptance_evaluation_search
msgid "Work Acceptance Evaluation"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.actions.act_window,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_action
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_report
#: model:ir.ui.menu,name:purchase_work_acceptance_evaluation.work_acceptance_evaluation_report_menu
msgid "Work Acceptance Evaluation Report"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_result
msgid "Work Acceptance Evaluation Result"
msgstr ""
#. module: purchase_work_acceptance_evaluation
#: model:ir.model,name:purchase_work_acceptance_evaluation.model_work_acceptance_evaluation_score
msgid "Work Acceptance Evaluation Score"
msgstr ""

View file

@ -0,0 +1,5 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import res_config_settings
from . import work_acceptance_evaluation
from . import work_acceptance

View file

@ -0,0 +1,18 @@
# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
group_enable_eval_on_wa = fields.Boolean(
string="Enable Evaluation on Work Acceptance",
implied_group="purchase_work_acceptance_evaluation.group_enable_eval_on_wa",
)
@api.onchange("group_enable_eval_on_wa")
def _onchange_group_enable_eval_on_wa(self):
if self.group_enable_eval_on_wa:
self.group_enable_wa_on_po = True

View file

@ -0,0 +1,74 @@
# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
from odoo.exceptions import UserError
class WorkAcceptance(models.Model):
_inherit = "work.acceptance"
evaluation_result_ids = fields.One2many(
comodel_name="work.acceptance.evaluation.result",
inverse_name="wa_id",
string="Evaluation Results",
default=lambda self: self._default_evaluation_result_ids(),
)
def _default_evaluation_result_ids(self):
eval_result = self.env["work.acceptance.evaluation"].search([])
result = [(0, 0, {"case_id": rec.id}) for rec in eval_result]
return result
def button_accept(self, force=False):
for rec in self:
rec._check_evaluation()
return super().button_accept(force=force)
def _check_evaluation(self):
self.ensure_one()
if self.user_has_groups(
"purchase_work_acceptance_evaluation.group_enable_eval_on_wa"
):
missing_results = self.evaluation_result_ids.filtered(
lambda l: l.case_id.state_required == self.state and not l.score_id
)
if missing_results:
cases = missing_results.mapped("case_id")
raise UserError(
_("Please evaluate - %s") % ", ".join(cases.mapped("name"))
)
class WorkAcceptanceEvaluationResult(models.Model):
_name = "work.acceptance.evaluation.result"
_description = "Work Acceptance Evaluation Result"
wa_id = fields.Many2one(
comodel_name="work.acceptance",
string="WA Reference",
required=True,
index=True,
ondelete="cascade",
)
case_id = fields.Many2one(
comodel_name="work.acceptance.evaluation",
string="Case Name",
required=True,
)
score_id = fields.Many2one(
comodel_name="work.acceptance.evaluation.score",
string="Score",
domain="[('evaluation_id', '=', case_id)]",
)
note = fields.Char()
editable = fields.Boolean(compute="_compute_editable")
@api.depends("case_id")
def _compute_editable(self):
for rec in self:
rec.editable = (
True
if not rec.case_id.state_required
else rec.wa_id.state == rec.case_id.state_required
)

View file

@ -0,0 +1,46 @@
# Copyright 2020 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 WorkAcceptanceEvaluation(models.Model):
_name = "work.acceptance.evaluation"
_description = "Work Acceptance Evaluation"
name = fields.Char(
string="Case Name",
required=True,
)
active = fields.Boolean(
default=True,
)
state_required = fields.Selection(
selection=[("draft", "Draft"), ("accept", "Accepted")],
help="Status of Work Acceptance that user need to fill the evaluation",
)
score_ids = fields.One2many(
comodel_name="work.acceptance.evaluation.score",
inverse_name="evaluation_id",
string="Score",
)
class WorkAcceptanceEvaluationScore(models.Model):
_name = "work.acceptance.evaluation.score"
_description = "Work Acceptance Evaluation Score"
_order = "score"
name = fields.Char(
string="Values",
required=True,
)
evaluation_id = fields.Many2one(
comodel_name="work.acceptance.evaluation",
string="Case Name",
)
score = fields.Integer()
def name_get(self):
result = [(rec.id, "{} ({})".format(rec.name, rec.score)) for rec in self]
return result

View file

@ -0,0 +1,3 @@
To configure this module, you need to enable wa evaluation:
* Go to Purchase > Configuration > Settings > Enable `Enable Evaluation on Work Acceptance` in `Work Acceptance`

View file

@ -0,0 +1,9 @@
* `Ecosoft <http://ecosoft.co.th>`__:
* Kitti U. <kittiu@ecosoft.co.th>
* Tharathip C. <tharathipc@ecosoft.co.th>
* Saran Lim. <saranl@ecosoft.co.th>
* `ProThai <http://prothaitechnology.com>`__:
* Prapassorn Sornkaew <prapassorn.s@prothaitechnology.com> <Migration to version 14.0>

View file

@ -0,0 +1,4 @@
This module extend Purchase Work Acceptance by adding the ability to evaluate quality of work.
User can also add as many evaluation criteria as he/she wanted in configuration menu.
In addition, user can see all evaluation from Work Acceptance Evaluation Report.

View file

@ -0,0 +1,4 @@
**Usual process of Purchasing with Work Acceptance Evaluation**
#. Create a new Work Acceptance (either directly or from purchase order)
#. On Evaluation tab, each evaluation criteria will be editble based on its Settings.

View file

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

View file

@ -0,0 +1,60 @@
# 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 WorkAcceptanceEvaluationReport(models.Model):
_name = "work.acceptance.evaluation.report"
_description = "Work Acceptance Evaluation Report"
_order = "partner_id,date_accept"
_auto = False
partner_id = fields.Many2one(
comodel_name="res.partner",
string="Vendor",
)
wa_id = fields.Many2one(
comodel_name="work.acceptance",
string="WA Reference",
)
wa_state = fields.Selection(
[("draft", "Draft"), ("accept", "Accepted"), ("cancel", "Cancelled")],
string="Status",
)
date_accept = fields.Datetime(
string="Accepted Date",
)
case_id = fields.Many2one(
comodel_name="work.acceptance.evaluation",
string="Case Name",
)
score_id = fields.Many2one(
comodel_name="work.acceptance.evaluation.score",
string="Score ID",
)
score = fields.Integer()
note = fields.Char()
company_id = fields.Many2one(
comodel_name="res.company",
)
def _select(self):
return """
select result.id, wa.partner_id, result.wa_id,
wa.state as wa_state,
wa.date_accept, result.case_id,
result.score_id, score.score, result.note,
wa.company_id
"""
def _from(self):
return """
from work_acceptance_evaluation_result result
join work_acceptance_evaluation_score score on score.id = result.score_id
left join work_acceptance wa on result.wa_id = wa.id
"""
@property
def _table_query(self):
return "%s %s" % (self._select(), self._from())

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="work_acceptance_evaluation_report_tree_view" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.report.tree.view</field>
<field name="model">work.acceptance.evaluation.report</field>
<field name="arch" type="xml">
<tree>
<field name="partner_id" />
<field name="wa_id" />
<field name="wa_state" optional="hide" />
<field name="date_accept" widget="date" />
<field name="case_id" />
<field name="score_id" />
<field name="score" optional="hide" />
<field name="note" />
</tree>
</field>
</record>
<record id="work_acceptance_evaluation_report_form_view" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.report.form.view</field>
<field name="model">work.acceptance.evaluation.report</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="partner_id" />
<field name="wa_id" />
<field name="date_accept" widget="date" />
<field name="case_id" />
<field name="score_id" />
<field name="note" />
</group>
<group />
</group>
</sheet>
</form>
</field>
</record>
<record id="work_acceptance_evaluation_report_search_view" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.report.search.view</field>
<field name="model">work.acceptance.evaluation.report</field>
<field name="arch" type="xml">
<search>
<field name="partner_id" />
<field name="wa_id" />
<field name="case_id" />
<separator />
<filter
string="Accepted"
name="filter_wa_accepted"
domain="[('wa_state', '=', 'accept')]"
/>
<filter
string="Not Accepted"
name="filter_wa_not_accepted"
domain="[('wa_state', '!=', 'accept')]"
/>
<group expand="1" string="Group By" name="groupby">
<filter
name="group_partner_id"
string="Vendor"
context="{'group_by': 'partner_id'}"
/>
<filter
name="group_wa_id"
string="WA Reference"
context="{'group_by': 'wa_id'}"
/>
<filter
name="group_case_id"
string="Case Name"
context="{'group_by': 'case_id'}"
/>
<filter
name="group_score_id"
string="Score"
context="{'group_by': 'score_id'}"
/>
</group>
</search>
</field>
</record>
<record id="work_acceptance_evaluation_report_pivot_view" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.report.pivot.view</field>
<field name="model">work.acceptance.evaluation.report</field>
<field name="arch" type="xml">
<pivot>
<field name="wa_id" type="row" />
<field name="case_id" type="col" />
<field name="score_id" type="col" />
<field name="score" type="measure" />
</pivot>
</field>
</record>
<record id="work_acceptance_evaluation_report_graph_view" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.report.graph.view</field>
<field name="model">work.acceptance.evaluation.report</field>
<field name="arch" type="xml">
<graph>
<field name="wa_id" type="row" />
<field name="score" type="measure" />
</graph>
</field>
</record>
<record id="work_acceptance_evaluation_report_action" model="ir.actions.act_window">
<field name="name">Work Acceptance Evaluation Report</field>
<field name="res_model">work.acceptance.evaluation.report</field>
<field name="view_mode">pivot,graph,tree,form</field>
<field name="context">{'search_default_filter_wa_accepted': 1}</field>
</record>
<menuitem
action="work_acceptance_evaluation_report_action"
id="work_acceptance_evaluation_report_menu"
name="Work Acceptance Evaluation Report"
parent="purchase.purchase_report"
groups="purchase_work_acceptance_evaluation.group_enable_eval_on_wa"
sequence="99"
/>
</odoo>

View file

@ -0,0 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_work_acceptance_evaluation_user,access_work_acceptance_evaluation_user,model_work_acceptance_evaluation,purchase.group_purchase_user,1,0,0,0
access_work_acceptance_evaluation_score_user,access_work_acceptance_evaluation_score_user,model_work_acceptance_evaluation_score,purchase.group_purchase_user,1,0,0,0
access_work_acceptance_evaluation_manager,access_work_acceptance_evaluation_manager,model_work_acceptance_evaluation,purchase.group_purchase_manager,1,1,1,1
access_work_acceptance_evaluation_score_manager,access_work_acceptance_evaluation_score_manager,model_work_acceptance_evaluation_score,purchase.group_purchase_manager,1,1,1,1
access_work_acceptance_evaluation_result,access_work_acceptance_evaluation_result,model_work_acceptance_evaluation_result,,1,1,1,1
access_work_acceptance_evaluation_report,access_work_acceptance_evaluation_report,model_work_acceptance_evaluation_report,,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_work_acceptance_evaluation_user access_work_acceptance_evaluation_user model_work_acceptance_evaluation purchase.group_purchase_user 1 0 0 0
3 access_work_acceptance_evaluation_score_user access_work_acceptance_evaluation_score_user model_work_acceptance_evaluation_score purchase.group_purchase_user 1 0 0 0
4 access_work_acceptance_evaluation_manager access_work_acceptance_evaluation_manager model_work_acceptance_evaluation purchase.group_purchase_manager 1 1 1 1
5 access_work_acceptance_evaluation_score_manager access_work_acceptance_evaluation_score_manager model_work_acceptance_evaluation_score purchase.group_purchase_manager 1 1 1 1
6 access_work_acceptance_evaluation_result access_work_acceptance_evaluation_result model_work_acceptance_evaluation_result 1 1 1 1
7 access_work_acceptance_evaluation_report access_work_acceptance_evaluation_report model_work_acceptance_evaluation_report 1 0 0 0

View file

@ -0,0 +1,16 @@
<odoo>
<record id="group_enable_eval_on_wa" model="res.groups">
<field name="name">Enable Evaluation on Work Acceptance</field>
<field name="category_id" ref="base.module_category_hidden" />
</record>
<record id="work_acceptance_evaluation_report_comp_rule" model="ir.rule">
<field name="name">Work Acceptance Evaluation Report multi-company</field>
<field name="model_id" ref="model_work_acceptance_evaluation_report" />
<field
name="domain_force"
>['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
</record>
</odoo>

View file

@ -0,0 +1,465 @@
<!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-work-acceptance-evaluation">
<h1>Purchase Work Acceptance Evaluation</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f109bc22b4527c6a004c3c47c51ef350f2136488946b2678b1c9ef4c4634a803
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Alpha" src="https://img.shields.io/badge/maturity-Alpha-red.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_work_acceptance_evaluation"><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_work_acceptance_evaluation"><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 extend Purchase Work Acceptance by adding the ability to evaluate quality of work.
User can also add as many evaluation criteria as he/she wanted in configuration menu.</p>
<p>In addition, user can see all evaluation from Work Acceptance Evaluation Report.</p>
<div class="admonition important">
<p class="first admonition-title">Important</p>
<p class="last">This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
<a class="reference external" href="https://odoo-community.org/page/development-status">More details on development status</a></p>
</div>
<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="#usage" id="toc-entry-2">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h2><a class="toc-backref" href="#toc-entry-1">Configuration</a></h2>
<p>To configure this module, you need to enable wa evaluation:</p>
<ul class="simple">
<li>Go to Purchase &gt; Configuration &gt; Settings &gt; Enable <cite>Enable Evaluation on Work Acceptance</cite> in <cite>Work Acceptance</cite></li>
</ul>
</div>
<div class="section" id="usage">
<h2><a class="toc-backref" href="#toc-entry-2">Usage</a></h2>
<p><strong>Usual process of Purchasing with Work Acceptance Evaluation</strong></p>
<ol class="arabic simple">
<li>Create a new Work Acceptance (either directly or from purchase order)</li>
<li>On Evaluation tab, each evaluation criteria will be editble based on its Settings.</li>
</ol>
</div>
<div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-3">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_work_acceptance_evaluation%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-4">Credits</a></h2>
<div class="section" id="authors">
<h3><a class="toc-backref" href="#toc-entry-5">Authors</a></h3>
<ul class="simple">
<li>Ecosoft</li>
</ul>
</div>
<div class="section" id="contributors">
<h3><a class="toc-backref" href="#toc-entry-6">Contributors</a></h3>
<ul class="simple">
<li><a class="reference external" href="http://ecosoft.co.th">Ecosoft</a>:<ul>
<li>Kitti U. &lt;<a class="reference external" href="mailto:kittiu&#64;ecosoft.co.th">kittiu&#64;ecosoft.co.th</a>&gt;</li>
<li>Tharathip C. &lt;<a class="reference external" href="mailto:tharathipc&#64;ecosoft.co.th">tharathipc&#64;ecosoft.co.th</a>&gt;</li>
<li>Saran Lim. &lt;<a class="reference external" href="mailto:saranl&#64;ecosoft.co.th">saranl&#64;ecosoft.co.th</a>&gt;</li>
</ul>
</li>
<li><a class="reference external" href="http://prothaitechnology.com">ProThai</a>:<ul>
<li>Prapassorn Sornkaew &lt;<a class="reference external" href="mailto:prapassorn.s&#64;prothaitechnology.com">prapassorn.s&#64;prothaitechnology.com</a>&gt; &lt;Migration to version 14.0&gt;</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h3><a class="toc-backref" href="#toc-entry-7">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/kittiu"><img alt="kittiu" src="https://github.com/kittiu.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/purchase-workflow/tree/16.0/purchase_work_acceptance_evaluation">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,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import test_purchase_work_acceptance_evaluation

View file

@ -0,0 +1,70 @@
# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields
from odoo.exceptions import UserError
from odoo.tests.common import Form, TransactionCase
class TestPurchaseWorkAcceptanceEvaluation(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.Config = cls.env["res.config.settings"]
cls.WorkAcceptance = cls.env["work.acceptance"]
cls.res_partner = cls.env.ref("base.res_partner_3")
cls.employee = cls.env.ref("base.user_demo")
cls.main_company = cls.env.ref("base.main_company")
# Enable WA Evaluation
with Form(cls.Config) as c:
c.group_enable_eval_on_wa = True
c.save()
cls.Config.create({"group_enable_eval_on_wa": True}).execute()
def test_01_wa_check_state_required(self):
"""Creat new WA with 3 evaluation criterias, I expect that user must
fill in the evaluation based on state_requried"""
with Form(self.WorkAcceptance) as f:
f.partner_id = self.res_partner
f.responsible_id = self.employee
f.date_due = fields.Datetime.now()
f.date_receive = fields.Datetime.now()
f.company_id = self.main_company
work_acceptance = f.save()
self.assertEqual(len(work_acceptance.evaluation_result_ids), 3)
# 1st criteria state_required = accept, 2nd and 3rd state_required = draft
eval_resuls = work_acceptance.evaluation_result_ids
eval_resuls[0].case_id.state_required = "accept"
eval_resuls[1].case_id.state_required = "draft"
eval_resuls[2].case_id.state_required = "draft"
# User need to fill in 2nd and 3rd criteria
with self.assertRaises(UserError) as e:
work_acceptance.button_accept()
self.assertEqual(
e.exception.args[0],
"Please evaluate - %s"
% ", ".join([eval_resuls[1].case_id.name, eval_resuls[2].case_id.name]),
)
# Set score and accept again
eval_resuls[1].score_id = eval_resuls[1].case_id.score_ids[0]
eval_resuls[2].score_id = eval_resuls[2].case_id.score_ids[0]
work_acceptance.button_accept()
self.assertEqual(work_acceptance.state, "accept")
def test_02_wa_evaluation_score_name_get(self):
with Form(self.WorkAcceptance) as f:
f.partner_id = self.res_partner
f.responsible_id = self.employee
f.date_due = fields.Datetime.now()
f.date_receive = fields.Datetime.now()
f.company_id = self.main_company
work_acceptance = f.save()
score_resuls = work_acceptance.mapped("evaluation_result_ids.case_id.score_ids")
name = "{} ({})".format(score_resuls[0].name, score_resuls[0].score)
res = score_resuls[0].name_get()
self.assertEqual(len(res), 1)
rec_id, name_get = res[0]
self.assertEqual(score_resuls[0].id, rec_id)
self.assertIn(name, name_get)

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="res_config_settings_view_form_purchase" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.purchase</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="26" />
<field
name="inherit_id"
ref="purchase_work_acceptance.res_config_settings_view_form_purchase"
/>
<field name="arch" type="xml">
<xpath
expr="//div[@name='purchase_work_acceptance_setting_container']"
position="inside"
>
<div class="col-12 col-lg-6 o_setting_box" name="purchase_eval">
<div class="o_setting_left_pane">
<field name="group_enable_eval_on_wa" />
</div>
<div class="o_setting_right_pane">
<label for="group_enable_eval_on_wa" />
<div
class="content-group"
attrs="{'invisible': [('group_enable_eval_on_wa' ,'=', False)]}"
>
</div>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_work_acceptance_evaluation_tree" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.tree</field>
<field name="model">work.acceptance.evaluation</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
<field name="state_required" />
</tree>
</field>
</record>
<record id="view_work_acceptance_evaluation_form" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.form</field>
<field name="model">work.acceptance.evaluation</field>
<field name="arch" type="xml">
<form string="Work Acceptance Evaluation">
<sheet>
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<field name="active" invisible="1" />
<group>
<group>
<field name="name" />
</group>
<group>
<field name="state_required" />
</group>
</group>
<notebook>
<page string="Score" name="score">
<field name="score_ids">
<tree editable="bottom">
<field name="name" optional="show" />
<field name="score" />
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_work_acceptance_evaluation_search" model="ir.ui.view">
<field name="model">work.acceptance.evaluation</field>
<field name="arch" type="xml">
<search string="Work Acceptance Evaluation">
<field name="name" />
<field name="score_ids" />
</search>
</field>
</record>
<record id="work_acceptance_evaluation_action" model="ir.actions.act_window">
<field name="name">Work Acceptance Evaluation</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">work.acceptance.evaluation</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_work_acceptance_evaluation_search" />
<field name="view_id" ref="view_work_acceptance_evaluation_tree" />
</record>
<menuitem
id="menu_work_acceptance_evaluation"
name="Work Acceptance Evaluation"
parent="purchase.menu_purchase_config"
action="work_acceptance_evaluation_action"
groups="purchase_work_acceptance_evaluation.group_enable_eval_on_wa"
/>
</odoo>

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_work_acceptance_evaluation_tab_form" model="ir.ui.view">
<field name="name">work.acceptance.evaluation.tab.form</field>
<field name="model">work.acceptance</field>
<field
name="inherit_id"
ref="purchase_work_acceptance.view_work_acceptance_form"
/>
<field name="arch" type="xml">
<xpath expr="//notebook" position="inside">
<page
string="Evaluation"
name="evaluation"
groups="purchase_work_acceptance_evaluation.group_enable_eval_on_wa"
>
<field name="evaluation_result_ids">
<tree editable="bottom" create="0">
<field name="case_id" readonly="1" force_save="1" />
<field
name="score_id"
attrs="{'readonly': [('editable', '=', False)]}"
/>
<field
name="note"
attrs="{'readonly': [('editable', '=', False)]}"
/>
<field name="editable" invisible="1" />
</tree>
</field>
</page>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,42 @@
[project]
name = "odoo-bringout-oca-purchase-workflow-purchase_work_acceptance_evaluation"
version = "16.0.0"
description = "Purchase Work Acceptance Evaluation - Odoo addon"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-purchase-workflow-purchase_work_acceptance>=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_work_acceptance_evaluation"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]