[MIG] quality_control: Migration to 10.0

This commit is contained in:
Simone Rubino
2017-11-21 12:55:50 +01:00
committed by Antoni Marroig Campomar
parent 69cb19a67d
commit 6be2e0e616
101 changed files with 21758 additions and 20797 deletions

View File

@@ -1,5 +1,5 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: https://www.gnu.org/licenses/agpl
:alt: License: AGPL-3
===============
@@ -10,14 +10,14 @@ This module provides a generic infrastructure for quality tests. The idea is
that it can be later reused for doing quality inspections on production lots
or any other area of the company.
Definitions
-----------
Configuration
=============
* Question: The thing to be checked. We have two types of questions:
* Qualitative: The result is a description, color, yes, no...
* Qualitative: The result is a description, color, yes, no...
* Quantitative: The result must be within a range.
* Quantitative: The result must be within a range.
* Possible values: The values chosen in qualitative questions.
@@ -48,7 +48,7 @@ Usage
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/129/9.0
:target: https://runbot.odoo-community.org/runbot/129/10.0
Known issues / Roadmap
@@ -60,20 +60,28 @@ Known issues / Roadmap
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/manufacture/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback `here <https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/manufacture/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smash it by providing detailed and welcomed feedback.
Credits
=======
Images
------
* Odoo Community Association: `Icon <https://odoo-community.org/logo.png>`_.
Contributors
------------
* Pedro M. Baeza <pedro.baeza@serviciobaeza.com>
* Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
* Ana Juaristi <anajuaristi@avanzosc.es>
* Lois Rilo <lois.rilo@eficent.com>
* Simone Rubino <simone.rubino@agilebg.com>
Do not contact contributors directly about support or help with technical issues.
Maintainer
----------
@@ -88,4 +96,4 @@ 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.
To contribute to this module, please visit http://odoo-community.org.
To contribute to this module, please visit https://odoo-community.org.

View File

@@ -1,9 +1,5 @@
# -*- coding: utf-8 -*-
# Copyright 2010 NaN Projectes de Programari Lliure, S.L.
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
from . import wizard

View File

@@ -3,19 +3,17 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Quality control",
"version": "9.0.1.3.0",
"version": "10.0.1.0.3",
"category": "Quality control",
"license": "AGPL-3",
"author": "OdooMRP team, "
"AvanzOSC, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "
"Eficent, "
"Odoo Community Association (OCA)",
"website": "http://www.odoomrp.com",
"website": "https://github.com/OCA/manufacture/tree/10.0/quality_control",
"depends": [
"product",
],

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data noupdate="1">
<record id="qc_test_template_category_generic" model="qc.test.category">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<odoo>
<data noupdate="1">
<record model="qc.test" id="qc_test_1">
<field name="name">Generic Test (demo)</field>
@@ -36,4 +36,4 @@
</record>
</data>
</openerp>
</odoo>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,818 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * quality_control
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.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: quality_control
#: model:ir.model,name:quality_control.model_qc_trigger_line
msgid "Abstract line for defining triggers"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.view_qc_test_set_test_form
msgid "Accept"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_active
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_active
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_active
msgid "Active"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_possible_ql_values
#: model:ir.ui.view,arch_db:quality_control.qc_test_question_form_view
msgid "Answers"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
msgid "Approve"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_auto_generated
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Auto-generated"
msgstr ""
#. module: quality_control
#: model:qc.test.question.value,name:quality_control.qc_test_question_value_2
msgid "Bad"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
#: model:ir.ui.view,arch_db:quality_control.view_qc_test_set_test_form
msgid "Cancel"
msgstr ""
#. module: quality_control
#: selection:qc.inspection,state:0
msgid "Canceled"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_test_uom_category
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category
msgid "Category"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_child_ids
msgid "Child categories"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_company_id
#: model:ir.model.fields,field_description:quality_control.field_qc_test_company_id
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_company_id
msgid "Company"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
msgid "Confirm"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_test_uom_category
msgid "Conversion between Units of Measure can only occur if they belong to the same category. The conversion will be made based on the ratios."
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Correct"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_ok
msgid "Correct answer?"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_create_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_create_uid
msgid "Created by"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_create_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_create_date
msgid "Created on"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_date
msgid "Date"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_test_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_line_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_display_name
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_display_name
msgid "Display Name"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
#: selection:qc.inspection,state:0
msgid "Draft"
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_test_category.py:37
#, python-format
msgid "Error! You can not create recursive categories."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_external_notes
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
msgid "External notes"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_complete_name
msgid "Full name"
msgstr ""
#. module: quality_control
#: selection:qc.test,type:0
#: model:qc.test.category,name:quality_control.qc_test_template_category_generic
msgid "Generic"
msgstr ""
#. module: quality_control
#: model:qc.test,name:quality_control.qc_test_1
msgid "Generic Test (demo)"
msgstr ""
#. module: quality_control
#: model:qc.test.question.value,name:quality_control.qc_test_question_value_1
msgid "Good"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Group by..."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_id
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_id
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test_id
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_id
#: model:ir.model.fields,field_description:quality_control.field_qc_test_id
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_id
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_id
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_id
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_line_id
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_id
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_id
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_id
msgid "ID"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_auto_generated
msgid "If an inspection is auto-generated, it can be canceled but not removed."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_trigger_line_partners
#: model:ir.model.fields,help:quality_control.field_qc_trigger_product_category_line_partners
#: model:ir.model.fields,help:quality_control.field_qc_trigger_product_line_partners
#: model:ir.model.fields,help:quality_control.field_qc_trigger_product_template_line_partners
msgid "If filled, the test will only be created when the action is done for one of the specified partners. If empty, the test will always be created."
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Incorrect"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_inspection_id
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
msgid "Inspection"
msgstr ""
#. module: quality_control
#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_line
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_inspection_lines
#: model:ir.ui.menu,name:quality_control.qc_inspection_lines_menu
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_tree_view
msgid "Inspection lines"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_name
msgid "Inspection number"
msgstr ""
#. module: quality_control
#: model:ir.actions.act_window,name:quality_control.action_qc_inspection
#: model:ir.ui.menu,name:quality_control.qc_inspection_menu
#: model:ir.ui.menu,name:quality_control.qc_inspection_menu_parent
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_tree_view
msgid "Inspections"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_internal_notes
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
msgid "Internal notes"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_test___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_line___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line___last_update
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line___last_update
msgid "Last Modified on"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_test_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_write_uid
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_write_uid
msgid "Last Updated by"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_test_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_write_date
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_write_date
msgid "Last Updated on"
msgstr ""
#. module: quality_control
#: model:res.groups,name:quality_control.group_quality_control_manager
msgid "Manager"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
msgid "Mark todo"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_max_value
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_max_value
msgid "Max"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_max_value
msgid "Maximum valid value for a quantitative question."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_min_value
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_min_value
msgid "Min"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_min_value
msgid "Minimum valid value for a quantitative question."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_name
#: model:ir.model.fields,field_description:quality_control.field_qc_test_name
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_name
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_name
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_name
msgid "Name"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_notes
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_notes
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
msgid "Notes"
msgstr ""
#. module: quality_control
#: model:qc.test.question,name:quality_control.qc_test_question_1
msgid "Overall quality"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_category_parent_id
msgid "Parent category"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_line_partners
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_partners
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_partners
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_partners
msgid "Partners"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_test_question_value
msgid "Possible values for qualitative questions."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_fill_correct_values
msgid "Pre-fill with correct values"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_product_product
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_product
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_product
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_product
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Product"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_product_category
msgid "Product Category"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_product_template
msgid "Product Template"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_product
#: model:ir.model.fields,help:quality_control.field_qc_inspection_product
msgid "Product associated with the inspection"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_product_category
msgid "Product category"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_product_template
msgid "Product template"
msgstr ""
#. module: quality_control
#: selection:qc.inspection.line,question_type:0
#: selection:qc.test.question,type:0
msgid "Qualitative"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_qualitative_value
msgid "Qualitative value"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_ql_values
msgid "Qualitative values"
msgstr ""
#. module: quality_control
#: model:ir.module.category,name:quality_control.module_category_quality_control
#: model:ir.ui.menu,name:quality_control.qc_menu
#: model:ir.ui.view,arch_db:quality_control.product_category_qc_form_view
#: model:ir.ui.view,arch_db:quality_control.product_template_qc_form_view
msgid "Quality control"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_inspection
msgid "Quality control inspection"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_inspection_line
msgid "Quality control inspection line"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_test_question
msgid "Quality control question"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_test
msgid "Quality control test"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_trigger
#: model:ir.ui.view,arch_db:quality_control.qc_trigger_form_view
msgid "Quality control trigger"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_product_category_qc_triggers
#: model:ir.model.fields,field_description:quality_control.field_product_product_qc_triggers
#: model:ir.model.fields,field_description:quality_control.field_product_template_qc_triggers
#: model:ir.ui.view,arch_db:quality_control.product_category_qc_form_view
#: model:ir.ui.view,arch_db:quality_control.product_template_qc_form_view
#: model:ir.ui.view,arch_db:quality_control.qc_trigger_tree_view
msgid "Quality control triggers"
msgstr ""
#. module: quality_control
#: selection:qc.inspection,state:0
msgid "Quality failed"
msgstr ""
#. module: quality_control
#: selection:qc.inspection,state:0
msgid "Quality success"
msgstr ""
#. module: quality_control
#: selection:qc.inspection.line,question_type:0
#: selection:qc.test.question,type:0
msgid "Quantitative"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_quantitative_value
msgid "Quantitative value"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_qty
msgid "Quantity"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_name
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
msgid "Question"
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_test.py:73
#, python-format
msgid "Question '%s' is not valid: minimum value can't be higher than maximum value."
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_test.py:64
#, python-format
msgid "Question '%s' is not valid: you have to mark at least one value as OK."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_question_type
msgid "Question type"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_test_question_form_view
msgid "Question value"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_test_lines
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
#: model:ir.ui.view,arch_db:quality_control.qc_test_form_view
msgid "Questions"
msgstr ""
#. module: quality_control
#: selection:qc.inspection,state:0
msgid "Ready"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_object_id
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Reference"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_object_id
msgid "Reference object"
msgstr ""
#. module: quality_control
#: model:qc.test.category,name:quality_control.qc_test_template_category_referenced
msgid "Referenced"
msgstr ""
#. module: quality_control
#: selection:qc.test,type:0
msgid "Related"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_user
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_line_user
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_user
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_user
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_user
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Responsible"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Search inspection"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
msgid "Search inspection line"
msgstr ""
#. module: quality_control
#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_set_test
#: model:ir.ui.view,arch_db:quality_control.view_qc_test_set_test_form
msgid "Select test"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_partner_selectable
msgid "Selectable by partner"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_sequence
msgid "Sequence"
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_form_view
msgid "Set test"
msgstr ""
#. module: quality_control
#: model:qc.test.question,name:quality_control.qc_test_question_2
msgid "Size"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_state
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "State"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_success
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_line_search_view
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
msgid "Success"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_success
msgid "Success?"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_set_test_test
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_test
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_test
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_line_test
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_test
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_test
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_test
#: model:ir.ui.view,arch_db:quality_control.qc_inspection_search_view
#: model:ir.ui.view,arch_db:quality_control.qc_test_form_view
msgid "Test"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_test_uom_id
msgid "Test UoM"
msgstr ""
#. module: quality_control
#: model:ir.actions.act_window,name:quality_control.action_qc_test_category
#: model:ir.ui.menu,name:quality_control.qc_test_category_menu
#: model:ir.ui.view,arch_db:quality_control.qc_test_category_tree_view
msgid "Test categories"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_test_category
msgid "Test category"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_test_line
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_value_test_line
#: model:ir.ui.view,arch_db:quality_control.qc_test_question_form_view
msgid "Test question"
msgstr ""
#. module: quality_control
#: model:ir.actions.act_window,name:quality_control.action_qc_test
#: model:ir.ui.menu,name:quality_control.qc_menu_test_parent
#: model:ir.ui.menu,name:quality_control.qc_test_menu
#: model:ir.ui.view,arch_db:quality_control.qc_test_tree_view
msgid "Tests"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_test_category_active
msgid "This field allows you to hide the category without removing it."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_success
msgid "This field will be marked if all tests have succeeded."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_trigger_partner_selectable
msgid "This technical field is to allow to filter by partner in triggers"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_line_trigger
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_category_line_trigger
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_line_trigger
#: model:ir.model.fields,field_description:quality_control.field_qc_trigger_product_template_line_trigger
msgid "Trigger"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_type
#: model:ir.model.fields,field_description:quality_control.field_qc_test_type
msgid "Type"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_uom_id
msgid "UoM"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_test_uom_id
msgid "UoM for minimum and maximum values for a quantitative question."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_uom_id
msgid "UoM of the inspection value for a quantitative question."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_test_question_uom_id
msgid "Uom"
msgstr ""
#. module: quality_control
#: model:res.groups,name:quality_control.group_quality_control_user
msgid "User"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,field_description:quality_control.field_qc_inspection_line_valid_values
msgid "Valid values"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_qualitative_value
msgid "Value of the result for a qualitative question."
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_inspection_line_quantitative_value
msgid "Value of the result for a quantitative question."
msgstr ""
#. module: quality_control
#: selection:qc.inspection,state:0
msgid "Waiting supervisor approval"
msgstr ""
#. module: quality_control
#: model:ir.model.fields,help:quality_control.field_qc_test_question_value_ok
msgid "When this field is marked, the answer is considered correct."
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_inspection.py:100
#, python-format
msgid "You cannot remove an auto-generated inspection."
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_inspection.py:103
#, python-format
msgid "You cannot remove an inspection that is not in draft state."
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_inspection.py:116
#, python-format
msgid "You must first set the test to perform."
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_inspection.py:131
#, python-format
msgid "You should provide a unit of measure for quantitative questions."
msgstr ""
#. module: quality_control
#: code:addons/quality_control/models/qc_inspection.py:126
#, python-format
msgid "You should provide an answer for all qualitative questions."
msgstr ""
#. module: quality_control
#: model:ir.ui.view,arch_db:quality_control.view_qc_test_set_test_form
msgid "or"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_inspection_set_test
msgid "qc.inspection.set.test"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_trigger_product_category_line
msgid "qc.trigger.product_category_line"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_trigger_product_line
msgid "qc.trigger.product_line"
msgstr ""
#. module: quality_control
#: model:ir.model,name:quality_control.model_qc_trigger_product_template_line
msgid "qc.trigger.product_template_line"
msgstr ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,5 @@
# -*- coding: utf-8 -*-
# Copyright 2010 NaN Projectes de Programari Lliure, S.L.
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import qc_trigger
from . import qc_trigger_line

View File

@@ -3,9 +3,10 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import fields, models
from odoo import fields, models
class ProductCategory(models.Model):

View File

@@ -3,9 +3,10 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import fields, models
from odoo import fields, models
class ProductProduct(models.Model):

View File

@@ -3,9 +3,10 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import fields, models
from odoo import fields, models
class ProductTemplate(models.Model):

View File

@@ -3,10 +3,12 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import api, exceptions, fields, models, _
import openerp.addons.decimal_precision as dp
from odoo import api, exceptions, fields, models, _
from odoo.tools import formatLang
import odoo.addons.decimal_precision as dp
class QcInspection(models.Model):
@@ -33,12 +35,12 @@ class QcInspection(models.Model):
self.product = False
name = fields.Char(
string='Inspection number', required=True, default='/', select=True,
string='Inspection number', required=True, default='/',
readonly=True, states={'draft': [('readonly', False)]}, copy=False)
date = fields.Datetime(
string='Date', required=True, readonly=True, copy=False,
default=fields.Datetime.now,
states={'draft': [('readonly', False)]}, select=True)
states={'draft': [('readonly', False)]})
object_id = fields.Reference(
string='Reference', selection=_links_get, readonly=True,
states={'draft': [('readonly', False)]}, ondelete="set null")
@@ -47,7 +49,7 @@ class QcInspection(models.Model):
help="Product associated with the inspection")
qty = fields.Float(string="Quantity", default=1.0)
test = fields.Many2one(
comodel_name='qc.test', string='Test', readonly=True, select=True)
comodel_name='qc.test', string='Test', readonly=True)
inspection_lines = fields.One2many(
comodel_name='qc.inspection.line', inverse_name='inspection_id',
string='Inspection lines', readonly=True,
@@ -64,14 +66,15 @@ class QcInspection(models.Model):
('success', 'Quality success'),
('failed', 'Quality failed'),
('canceled', 'Canceled')],
string='State', readonly=True, default='draft')
string='State', readonly=True, default='draft',
track_visibility='onchange')
success = fields.Boolean(
compute="_success", string='Success',
help='This field will be marked if all tests have succeeded.',
store=True)
auto_generated = fields.Boolean(
string='Auto-generated', readonly=True, copy=False,
help='If an inspection is auto-generated, it can be canceled nor '
help='If an inspection is auto-generated, it can be canceled but not '
'removed.')
company_id = fields.Many2one(
comodel_name='res.company', string='Company', readonly=True,
@@ -85,17 +88,18 @@ class QcInspection(models.Model):
@api.model
def create(self, vals):
if vals.get('name', '/') == '/':
vals['name'] = self.env['ir.sequence'].get('qc.inspection')
vals['name'] = self.env['ir.sequence'] \
.next_by_code('qc.inspection')
return super(QcInspection, self).create(vals)
@api.multi
def unlink(self):
for inspection in self:
if inspection.auto_generated:
raise exceptions.Warning(
raise exceptions.UserError(
_("You cannot remove an auto-generated inspection."))
if inspection.state != 'draft':
raise exceptions.Warning(
raise exceptions.UserError(
_("You cannot remove an inspection that is not in draft "
"state."))
return super(QcInspection, self).unlink()
@@ -108,7 +112,7 @@ class QcInspection(models.Model):
def action_todo(self):
for inspection in self:
if not inspection.test:
raise exceptions.Warning(
raise exceptions.UserError(
_("You must first set the test to perform."))
self.write({'state': 'ready'})
@@ -118,12 +122,12 @@ class QcInspection(models.Model):
for line in inspection.inspection_lines:
if line.question_type == 'qualitative':
if not line.qualitative_value:
raise exceptions.Warning(
raise exceptions.UserError(
_("You should provide an answer for all "
"qualitative questions."))
else:
if not line.uom_id:
raise exceptions.Warning(
raise exceptions.UserError(
_("You should provide a unit of measure for "
"quantitative questions."))
if inspection.success:
@@ -235,8 +239,8 @@ class QcInspectionLine(models.Model):
if self.uom_id.id == self.test_uom_id.id:
amount = self.quantitative_value
else:
amount = self.env['product.uom']._compute_qty(
self.uom_id.id, self.quantitative_value,
amount = self.env['product.uom']._compute_quantity(
self.quantitative_value,
self.test_uom_id.id)
self.success = self.max_value >= amount >= self.min_value
@@ -248,7 +252,9 @@ class QcInspectionLine(models.Model):
self.valid_values = ", ".join([x.name for x in
self.possible_ql_values if x.ok])
else:
self.valid_values = "%s-%s" % (self.min_value, self.max_value)
self.valid_values = "%s ~ %s" % (
formatLang(self.env, self.min_value),
formatLang(self.env, self.max_value))
if self.env.ref("product.group_uom") in self.env.user.groups_id:
self.valid_values += " %s" % self.test_uom_id.name

View File

@@ -3,10 +3,11 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import api, exceptions, fields, models, _
import openerp.addons.decimal_precision as dp
from odoo import api, exceptions, fields, models, _
import odoo.addons.decimal_precision as dp
class QcTest(models.Model):
@@ -21,9 +22,14 @@ class QcTest(models.Model):
link_obj = self.env['res.request.link']
return [(r.object, r.name) for r in link_obj.search([])]
@api.onchange('type')
def onchange_type(self):
if self.type == 'generic':
self.object_id = False
active = fields.Boolean('Active', default=True)
name = fields.Char(
string='Name', required=True, translate=True, select=True)
string='Name', required=True, translate=True)
test_lines = fields.One2many(
comodel_name='qc.test.question', inverse_name='test',
string='Questions', copy=True)
@@ -34,7 +40,7 @@ class QcTest(models.Model):
type = fields.Selection(
[('generic', 'Generic'),
('related', 'Related')],
string='Type', select=True, required=True, default='generic')
string='Type', required=True, default='generic')
category = fields.Many2one(
comodel_name='qc.test.category', string='Category')
company_id = fields.Many2one(
@@ -54,22 +60,25 @@ class QcTestQuestion(models.Model):
def _check_valid_answers(self):
if (self.type == 'qualitative' and self.ql_values and
not self.ql_values.filtered('ok')):
raise exceptions.Warning(
_("There isn't no value marked as OK. You have to mark at "
"least one."))
raise exceptions.ValidationError(
_("Question '%s' is not valid: "
"you have to mark at least one value as OK.")
% self.name_get()[0][1])
@api.one
@api.constrains('min_value', 'max_value')
def _check_valid_range(self):
if self.type == 'quantitative' and self.min_value > self.max_value:
raise exceptions.Warning(
_("Minimum value can't be higher than maximum value."))
raise exceptions.ValidationError(
_("Question '%s' is not valid: "
"minimum value can't be higher than maximum value.")
% self.name_get()[0][1])
sequence = fields.Integer(
string='Sequence', required=True, default="10")
test = fields.Many2one(comodel_name='qc.test', string='Test')
name = fields.Char(
string='Name', required=True, select=True, translate=True)
string='Name', required=True, translate=True)
type = fields.Selection(
[('qualitative', 'Qualitative'),
('quantitative', 'Quantitative')], string='Type', required=True)
@@ -91,7 +100,7 @@ class QcTestQuestionValue(models.Model):
test_line = fields.Many2one(
comodel_name="qc.test.question", string="Test question")
name = fields.Char(
string='Name', required=True, select=True, translate=True)
string='Name', required=True, translate=True)
ok = fields.Boolean(
string='Correct answer?',
help="When this field is marked, the answer is considered correct.")

View File

@@ -3,9 +3,10 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import api, exceptions, fields, models, _
from odoo import api, exceptions, fields, models, _
class QcTestTemplateCategory(models.Model):
@@ -32,13 +33,13 @@ class QcTestTemplateCategory(models.Model):
('parent_id', '!=', False)])
ids = list(set([x.parent_id.id for x in parents]))
if not level:
raise exceptions.Warning(
_('Error ! You can not create recursive categories.'))
raise exceptions.UserError(
_('Error! You can not create recursive categories.'))
level -= 1
name = fields.Char('Name', required=True, translate=True)
parent_id = fields.Many2one(
comodel_name='qc.test.category', string='Parent category', select=True)
comodel_name='qc.test.category', string='Parent category')
complete_name = fields.Char(
compute="_get_complete_name", string='Full name')
child_ids = fields.One2many(

View File

@@ -3,16 +3,17 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import fields, models
from odoo import fields, models
class QcTrigger(models.Model):
_name = 'qc.trigger'
_description = 'Quality control trigger'
name = fields.Char(string='Name', required=True, select=True,
name = fields.Char(string='Name', required=True,
translate=True)
active = fields.Boolean(string='Active', default=True)
company_id = fields.Many2one(

View File

@@ -3,9 +3,10 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import fields, models
from odoo import fields, models
def _filter_trigger_lines(trigger_lines):

View File

@@ -1,43 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.module.category" id="module_category_quality_control">
<field name="name">Quality control</field>
</record>
<record model="ir.module.category" id="module_category_quality_control">
<field name="name">Quality control</field>
</record>
<record id="group_quality_control_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="module_category_quality_control"/>
</record>
<record id="group_quality_control_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="module_category_quality_control"/>
</record>
<record id="group_quality_control_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="module_category_quality_control"/>
<field name="implied_ids" eval="[(4, ref('group_quality_control_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<record id="group_quality_control_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="module_category_quality_control"/>
<field name="implied_ids" eval="[(4, ref('group_quality_control_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<record id="qc_test_multi_company_rule" model="ir.rule">
<field name="name">Quality control test multi-company</field>
<field name="model_id" ref="model_qc_test"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="qc_test_multi_company_rule" model="ir.rule">
<field name="name">Quality control test multi-company</field>
<field name="model_id" ref="model_qc_test"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="qc_inspection_multi_company_rule" model="ir.rule">
<field name="name">Quality control inspection multi-company</field>
<field name="model_id" ref="model_qc_inspection"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="qc_inspection_multi_company_rule" model="ir.rule">
<field name="name">Quality control inspection multi-company</field>
<field name="model_id" ref="model_qc_inspection"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="qc_trigger_multi_company_rule" model="ir.rule">
<field name="name">Quality control trigger multi-company</field>
<field name="model_id" ref="model_qc_trigger"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="qc_trigger_multi_company_rule" model="ir.rule">
<field name="name">Quality control trigger multi-company</field>
<field name="model_id" ref="model_qc_trigger"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
</data>
</openerp>
</odoo>

View File

@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*-
# (c) 2015 Oihane Crucelaegui - AvanzOSC
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import test_quality_control

View File

@@ -1,9 +1,13 @@
# -*- coding: utf-8 -*-
# (c) 2015 Oihane Crucelaegui - AvanzOSC
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
# Copyright 2010 NaN Projectes de Programari Lliure, S.L.
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp.tests.common import TransactionCase
from openerp import exceptions
from odoo.tests.common import TransactionCase
from odoo import exceptions
from ..models.qc_trigger_line import\
_filter_trigger_lines
@@ -80,7 +84,7 @@ class TestQualityControl(TransactionCase):
inspection2 = self.inspection1.copy()
inspection2.action_draft()
inspection2.write({'test': False})
with self.assertRaises(exceptions.Warning):
with self.assertRaises(exceptions.UserError):
inspection2.action_todo()
inspection3 = self.inspection1.copy()
inspection3.write({
@@ -90,7 +94,7 @@ class TestQualityControl(TransactionCase):
for line in inspection3.inspection_lines:
if line.question_type == 'quantitative':
line.quantitative_value = 15.0
with self.assertRaises(exceptions.Warning):
with self.assertRaises(exceptions.UserError):
inspection3.action_confirm()
inspection4 = self.inspection1.copy()
inspection4.write({
@@ -105,7 +109,7 @@ class TestQualityControl(TransactionCase):
})
elif line.question_type == 'qualitative':
line.qualitative_value = self.val_ok
with self.assertRaises(exceptions.Warning):
with self.assertRaises(exceptions.UserError):
inspection4.action_confirm()
def test_categories(self):
@@ -165,7 +169,7 @@ class TestQualityControl(TransactionCase):
self.qn_question.max_value) * 0.5, 2))
def test_qc_inspection_not_draft_unlink(self):
with self.assertRaises(exceptions.Warning):
with self.assertRaises(exceptions.UserError):
self.inspection1.unlink()
inspection2 = self.inspection1.copy()
inspection2.action_cancel()
@@ -179,12 +183,12 @@ class TestQualityControl(TransactionCase):
inspection2.write({
'auto_generated': True,
})
with self.assertRaises(exceptions.Warning):
with self.assertRaises(exceptions.UserError):
inspection2.unlink()
def test_qc_inspection_product(self):
self.inspection1.write({
'object_id': '%s,%d' % (self.product._model, self.product.id),
'object_id': '%s,%d' % (self.product._name, self.product.id),
})
self.assertEquals(self.inspection1.product,
self.product)

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="product_category_qc_form_view">

View File

@@ -1,10 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="product_template_qc_form_view">
<field name="name">product.template.qc</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<xpath expr="//page[2]" position="inside">
<group name="qc" string="Quality control">

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="qc_inspection_form_view">
@@ -21,7 +27,7 @@
class="oe_highlight"
states="ready"
string="Confirm"
icon="gtk-ok" />
icon="fa-check" />
<button name="action_approve"
type="object"
states="waiting"
@@ -32,7 +38,7 @@
type="object"
attrs="{'invisible': [('state', 'not in', ['waiting', 'ready', 'failed', 'success'])]}"
string="Cancel"
icon="gtk-cancel" />
icon="fa-ban" />
<field name="state"
widget="statusbar"
statusbar_visible="draft,waiting,success"
@@ -80,6 +86,8 @@
groups="product.group_uom"
attrs="{'readonly': [('question_type', '=', 'qualitative')]}" />
<field name="test_uom_category" invisible="1"/>
<field name="min_value" invisible="1"/>
<field name="max_value" invisible="1"/>
<field name="valid_values" />
<field name="success" />
</tree>

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<menuitem name="Quality control"

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="qc_test_category_tree_view">

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="qc_test_form_view">

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2010 NaN Projectes de Programari Lliure, S.L.
Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
Copyright 2014 Oihane Crucelaegui - AvanzOSC
Copyright 2017 Eficent Business and IT Consulting Services S.L.
Copyright 2017 Simone Rubino - Agile Business Group
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="qc_trigger_form_view">

View File

@@ -1,8 +1,4 @@
# -*- coding: utf-8 -*-
# Copyright 2010 NaN Projectes de Programari Lliure, S.L.
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import qc_test_wizard

View File

@@ -3,9 +3,10 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2014 Oihane Crucelaegui - AvanzOSC
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2017 Simone Rubino - Agile Business Group
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from openerp import api, fields, models
from odoo import api, fields, models
class QcInspectionSetTest(models.TransientModel):

Some files were not shown because too many files have changed in this diff Show More