diff --git a/quality_control/README.rst b/quality_control/README.rst new file mode 100644 index 000000000..5726462b0 --- /dev/null +++ b/quality_control/README.rst @@ -0,0 +1,84 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +=================================== +Quality control management for Odoo +=================================== + +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 +----------- + +* Question: The thing to be checked. We have two types of questions: + + * Qualitative: The result is a description, color, yes, no... + + * Quantitative: The result must be within a range. + +* Possible values: The values chosen in qualitative questions. + +* Test: The set of questions to be used in inspections. + +* Once these values are set, we define the inspection. + +We have a *generic* test that can be applied to any model: shipments, +invoices or product, or a *test related*, making it specific to a particular +product and that eg apply whenever food is sold or when creating a batch. + +Once these parameters are set, we can just pass the test. We create a +new inspection, selecting a relationship with the model (sale, stock move...), +and pressing "Select test" button to choose the test to pass. Then, you must +fill the lines depending on the chosen test. + +The complete inspection workflow is: + + Draft -> Confirmed -> Success + | + | -> Failure (Pending approval) -> Approved + +Based on the nan_quality_control_* modules from NaN·tic. + + +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/8.0 + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + + +Credits +======= + +Contributors +------------ +* Pedro M. Baeza +* Oihane Crucelaegui +* Ana Juaristi + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +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. diff --git a/quality_control/__init__.py b/quality_control/__init__.py new file mode 100644 index 000000000..7333c0440 --- /dev/null +++ b/quality_control/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## + +from . import models +from . import wizard diff --git a/quality_control/__openerp__.py b/quality_control/__openerp__.py new file mode 100644 index 000000000..4414721ad --- /dev/null +++ b/quality_control/__openerp__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# (c) 2010 NaN Projectes de Programari Lliure, S.L. (http://www.NaN-tic.com) +# (c) 2014 Serv. Tec. Avanzados - Pedro M. Baeza +# (c) 2014 Oihane Crucelaegui - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +{ + "name": "Quality control", + "version": "8.0.1.0.0", + "category": "Quality control", + "license": "AGPL-3", + "author": "OdooMRP team, " + "AvanzOSC, " + "Serv. Tecnol. Avanzados - Pedro M. Baeza, " + "Odoo Community Association (OCA)", + "website": "http://www.odoomrp.com", + "contributors": [ + "Pedro M. Baeza ", + "Oihane Crucelaegui ", + "Ana Juaristi ", + ], + "depends": [ + "product", + ], + "data": [ + "data/quality_control_data.xml", + "security/quality_control_security.xml", + "security/ir.model.access.csv", + "wizard/qc_test_wizard_view.xml", + "views/qc_menus.xml", + "views/qc_inspection_view.xml", + "views/qc_test_category_view.xml", + "views/qc_test_view.xml", + "views/qc_trigger_view.xml", + "views/product_template_view.xml", + "views/product_category_view.xml", + ], + "demo": [ + "demo/quality_control_demo.xml", + ], + "installable": True, +} diff --git a/quality_control/data/quality_control_data.xml b/quality_control/data/quality_control_data.xml new file mode 100644 index 000000000..fec4f95a2 --- /dev/null +++ b/quality_control/data/quality_control_data.xml @@ -0,0 +1,26 @@ + + + + + Generic + + + + Referenced + + + + + + Quality inspection + qc.inspection + + + + Quality inspection + qc.inspection + QC- + 6 + + + diff --git a/quality_control/demo/quality_control_demo.xml b/quality_control/demo/quality_control_demo.xml new file mode 100644 index 000000000..ef1054c93 --- /dev/null +++ b/quality_control/demo/quality_control_demo.xml @@ -0,0 +1,39 @@ + + + + + Generic Test (demo) + generic + + + + + + Overall quality + + qualitative + + + + Good + + + + + + Bad + + + + + + Size + + quantitative + + + + + + + diff --git a/quality_control/i18n/es.po b/quality_control/i18n/es.po new file mode 100644 index 000000000..b012b846b --- /dev/null +++ b/quality_control/i18n/es.po @@ -0,0 +1,797 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * quality_control +# +# Translators: +# Oihane Crucelaegui , 2015 +msgid "" +msgstr "" +"Project-Id-Version: odoomrp-wip (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-07 10:44+0000\n" +"PO-Revision-Date: 2015-10-09 10:50+0000\n" +"Last-Translator: Pedro M. Baeza \n" +"Language-Team: Spanish (http://www.transifex.com/oca/odoomrp-wip-8-0/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_trigger_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_category_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_template_line +msgid "Abstract line for defining triggers" +msgstr "Línea abstracta para definir disparadores" + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Accept" +msgstr "Aceptar" + +#. module: quality_control +#: field:qc.test,active:0 field:qc.test.category,active:0 +#: field:qc.trigger,active:0 +msgid "Active" +msgstr "Activo" + +#. module: quality_control +#: field:qc.inspection.line,possible_ql_values:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Answers" +msgstr "Respuestas" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Approve" +msgstr "Aprobar" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,auto_generated:0 +msgid "Auto-generated" +msgstr "Auto-generada" + +#. module: quality_control +#: model:qc.test.question.value,name:quality_control.qc_test_question_value_2 +msgid "Bad" +msgstr "Mal" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Cancelled" +msgstr "Cancelado" + +#. module: quality_control +#: field:qc.test,category:0 +msgid "Category" +msgstr "Categoría" + +#. module: quality_control +#: field:qc.test.category,child_ids:0 +msgid "Child categories" +msgstr "Categorías hijas" + +#. module: quality_control +#: field:qc.inspection,company_id:0 field:qc.test,company_id:0 +#: field:qc.trigger,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Confirm" +msgstr "Confirmar" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_category:0 +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 "La conversión entre las unidades de medidas sólo pueden ocurrir si pertenecen a la misma categoría. La conversión se basará en los ratios establecidos." + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Correct" +msgstr "Correcta" + +#. module: quality_control +#: field:qc.test.question.value,ok:0 +msgid "Correct answer?" +msgstr "¿Respuesta correcta?" + +#. module: quality_control +#: field:qc.inspection,create_uid:0 field:qc.inspection.line,create_uid:0 +#: field:qc.inspection.set.test,create_uid:0 field:qc.test,create_uid:0 +#: field:qc.test.category,create_uid:0 field:qc.test.question,create_uid:0 +#: field:qc.test.question.value,create_uid:0 field:qc.trigger,create_uid:0 +#: field:qc.trigger.product_category_line,create_uid:0 +#: field:qc.trigger.product_line,create_uid:0 +#: field:qc.trigger.product_template_line,create_uid:0 +msgid "Created by" +msgstr "Creado por" + +#. module: quality_control +#: field:qc.inspection,create_date:0 field:qc.inspection.line,create_date:0 +#: field:qc.inspection.set.test,create_date:0 field:qc.test,create_date:0 +#: field:qc.test.category,create_date:0 field:qc.test.question,create_date:0 +#: field:qc.test.question.value,create_date:0 field:qc.trigger,create_date:0 +#: field:qc.trigger.product_category_line,create_date:0 +#: field:qc.trigger.product_line,create_date:0 +#: field:qc.trigger.product_template_line,create_date:0 +msgid "Created on" +msgstr "Creado en" + +#. module: quality_control +#: field:qc.inspection,date:0 +msgid "Date" +msgstr "Fecha" + +#. module: quality_control +#: help:qc.inspection,message_last_post:0 +msgid "Date of the last message posted on the record." +msgstr "Fecha del último mensaje publicado en el registro" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: selection:qc.inspection,state:0 +msgid "Draft" +msgstr "Borrador" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test_category.py:35 +#, python-format +msgid "Error ! You can not create recursive categories." +msgstr "Error. No puede crear categorías recursivas." + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,external_notes:0 +msgid "External notes" +msgstr "Notas externas" + +#. module: quality_control +#: field:qc.inspection,message_follower_ids:0 +msgid "Followers" +msgstr "Seguidores" + +#. module: quality_control +#: selection:qc.test,type:0 +#: model:qc.test.category,name:quality_control.qc_test_template_category_generic +msgid "Generic" +msgstr "Genérico" + +#. module: quality_control +#: model:qc.test,name:quality_control.qc_test_1 +msgid "Generic Test (demo)" +msgstr "Test genérico (demo)" + +#. module: quality_control +#: model:qc.test.question.value,name:quality_control.qc_test_question_value_1 +msgid "Good" +msgstr "Bien" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Group by..." +msgstr "Agrupar por..." + +#. module: quality_control +#: help:qc.inspection,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "Contiene el resumen del chatter (nº de mensajes, ...). Este resumen está directamente en formato html para ser insertado en vistas kanban." + +#. module: quality_control +#: field:qc.inspection,id:0 field:qc.inspection.line,id:0 +#: field:qc.inspection.set.test,id:0 field:qc.test,id:0 +#: field:qc.test.category,id:0 field:qc.test.question,id:0 +#: field:qc.test.question.value,id:0 field:qc.trigger,id:0 +#: field:qc.trigger.line,id:0 field:qc.trigger.product_category_line,id:0 +#: field:qc.trigger.product_line,id:0 +#: field:qc.trigger.product_template_line,id:0 +msgid "ID" +msgstr "ID" + +#. module: quality_control +#: help:qc.inspection,auto_generated:0 +msgid "If an inspection is auto-generated, it can be cancelled nor removed" +msgstr "Si una inspección es auto-generada, no se podrá cancelar ni eliminar" + +#. module: quality_control +#: help:qc.inspection,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "Si está marcado, hay nuevos mensajes que requieren su atención." + +#. module: quality_control +#: help:qc.trigger.line,partners:0 +#: help:qc.trigger.product_category_line,partners:0 +#: help:qc.trigger.product_line,partners:0 +#: help:qc.trigger.product_template_line,partners:0 +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 be always created." +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Incorrect" +msgstr "Incorrecta" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,inspection_id:0 +msgid "Inspection" +msgstr "Inspección" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_line +#: model:ir.ui.menu,name:quality_control.qc_inspection_lines_menu +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,inspection_lines:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_tree_view +msgid "Inspection lines" +msgstr "Líneas de inspección" + +#. module: quality_control +#: field:qc.inspection,name:0 +msgid "Inspection number" +msgstr "Nº de inspección" + +#. 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 +#: view:qc.inspection:quality_control.qc_inspection_tree_view +msgid "Inspections" +msgstr "Inspecciones" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,internal_notes:0 +msgid "Internal notes" +msgstr "Notas internas" + +#. module: quality_control +#: view:product.template:quality_control.product_template_qc_form_view +msgid "Inventory" +msgstr "Inventario" + +#. module: quality_control +#: field:qc.inspection,message_is_follower:0 +msgid "Is a Follower" +msgstr "Es un seguidor" + +#. module: quality_control +#: field:qc.inspection,message_last_post:0 +msgid "Last Message Date" +msgstr "Fecha del último mensaje" + +#. module: quality_control +#: field:qc.inspection,write_uid:0 field:qc.inspection.line,write_uid:0 +#: field:qc.inspection.set.test,write_uid:0 field:qc.test,write_uid:0 +#: field:qc.test.category,write_uid:0 field:qc.test.question,write_uid:0 +#: field:qc.test.question.value,write_uid:0 field:qc.trigger,write_uid:0 +#: field:qc.trigger.product_category_line,write_uid:0 +#: field:qc.trigger.product_line,write_uid:0 +#: field:qc.trigger.product_template_line,write_uid:0 +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: quality_control +#: field:qc.inspection,write_date:0 field:qc.inspection.line,write_date:0 +#: field:qc.inspection.set.test,write_date:0 field:qc.test,write_date:0 +#: field:qc.test.category,write_date:0 field:qc.test.question,write_date:0 +#: field:qc.test.question.value,write_date:0 field:qc.trigger,write_date:0 +#: field:qc.trigger.product_category_line,write_date:0 +#: field:qc.trigger.product_line,write_date:0 +#: field:qc.trigger.product_template_line,write_date:0 +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_manager +msgid "Manager" +msgstr "Responsable" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Mark todo" +msgstr "Marcar para hacer" + +#. module: quality_control +#: field:qc.inspection.line,max_value:0 field:qc.test.question,max_value:0 +msgid "Max" +msgstr "Máximo" + +#. module: quality_control +#: help:qc.inspection.line,max_value:0 +msgid "Maximum valid value if it's a quantitative question." +msgstr "Máximo valor válido si es una pregunta cuantitativa." + +#. module: quality_control +#: field:qc.inspection,message_ids:0 +msgid "Messages" +msgstr "Mensajes" + +#. module: quality_control +#: help:qc.inspection,message_ids:0 +msgid "Messages and communication history" +msgstr "Mensajes e historial de comunicación" + +#. module: quality_control +#: field:qc.inspection.line,min_value:0 field:qc.test.question,min_value:0 +msgid "Min" +msgstr "Mínimo" + +#. module: quality_control +#: help:qc.inspection.line,min_value:0 +msgid "Minimum valid value if it's a quantitative question." +msgstr "Mínimo valor válido si es una pregunta cuantitativa." + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:66 +#, python-format +msgid "Minimum value can't be higher than maximum value." +msgstr "El valor mínimo no puede ser más alto que el valor máximo." + +#. module: quality_control +#: field:qc.test,name:0 field:qc.test.category,name:0 +#: field:qc.test.question,name:0 field:qc.test.question.value,name:0 +#: field:qc.trigger,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection.line,notes:0 field:qc.test.question,notes:0 +msgid "Notes" +msgstr "Notas" + +#. module: quality_control +#: model:qc.test.question,name:quality_control.qc_test_question_1 +msgid "Overall quality" +msgstr "Calidad en general" + +#. module: quality_control +#: field:qc.test.category,parent_id:0 +msgid "Parent category" +msgstr "Categoría padre" + +#. module: quality_control +#: field:qc.trigger.line,partners:0 +#: field:qc.trigger.product_category_line,partners:0 +#: field:qc.trigger.product_line,partners:0 +#: field:qc.trigger.product_template_line,partners:0 +msgid "Partners" +msgstr "Empresas" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_question_value +msgid "Possible values of qualitative questions." +msgstr "Posibles valores de preguntas cualitativas." + +#. module: quality_control +#: field:qc.test,fill_correct_values:0 +msgid "Pre-fill with correct values" +msgstr "Pre-rellenar con valores correctos" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_product +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,product:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,product:0 field:qc.trigger.product_line,product:0 +msgid "Product" +msgstr "Producto" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_category +msgid "Product Category" +msgstr "Categoría de producto" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_template +msgid "Product Template" +msgstr "Plantilla de producto" + +#. module: quality_control +#: help:qc.inspection,product:0 help:qc.inspection.line,product:0 +msgid "Product associated with the inspection" +msgstr "Producto asociado con la inspección" + +#. module: quality_control +#: field:qc.trigger.product_category_line,product_category:0 +msgid "Product category" +msgstr "Categoría de producto" + +#. module: quality_control +#: field:qc.trigger.product_template_line,product_template:0 +msgid "Product template" +msgstr "Plantilla de producto" + +#. module: quality_control +#: selection:qc.inspection.line,question_type:0 +#: selection:qc.test.question,type:0 +msgid "Qualitative" +msgstr "Cualitativa" + +#. module: quality_control +#: field:qc.inspection.line,qualitative_value:0 +msgid "Qualitative value" +msgstr "Valor cualitativo" + +#. module: quality_control +#: field:qc.test.question,ql_values:0 +msgid "Qualitative values" +msgstr "Valores cualitativos" + +#. module: quality_control +#: model:ir.module.category,name:quality_control.module_category_quality_control +#: model:ir.ui.menu,name:quality_control.qc_menu +#: view:product.category:quality_control.product_category_qc_form_view +#: view:product.template:quality_control.product_template_qc_form_view +msgid "Quality control" +msgstr "Control de calidad" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_inspection +msgid "Quality control inspection" +msgstr "Inspección del control de calidad" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_inspection_line +msgid "Quality control inspection line" +msgstr "Línea de inspección del control de calidad" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_question +msgid "Quality control question" +msgstr "Pregunta del control de calidad" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test +msgid "Quality control test" +msgstr "Test del control de calidad" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_trigger +#: view:qc.trigger:quality_control.qc_trigger_form_view +msgid "Quality control trigger" +msgstr "Disparador del control de calidad" + +#. module: quality_control +#: view:product.category:quality_control.product_category_qc_form_view +#: field:product.category,qc_triggers:0 field:product.product,qc_triggers:0 +#: view:product.template:quality_control.product_template_qc_form_view +#: field:product.template,qc_triggers:0 +#: view:qc.trigger:quality_control.qc_trigger_tree_view +msgid "Quality control triggers" +msgstr "Disparadores del control de calidad" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Quality failed" +msgstr "Calidad fallida" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Quality success" +msgstr "Calidad satisfactoria" + +#. module: quality_control +#: selection:qc.inspection.line,question_type:0 +#: selection:qc.test.question,type:0 +msgid "Quantitative" +msgstr "Cuantitativa" + +#. module: quality_control +#: field:qc.inspection.line,quantitative_value:0 +msgid "Quantitative value" +msgstr "Valor cuantitativo" + +#. module: quality_control +#: field:qc.inspection,qty:0 +msgid "Quantity" +msgstr "Cantidad" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,name:0 +msgid "Question" +msgstr "Pregunta" + +#. module: quality_control +#: field:qc.inspection.line,question_type:0 +msgid "Question type" +msgstr "Tipo de pregunta" + +#. module: quality_control +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Question value" +msgstr "Valor de la pregunta" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.test:quality_control.qc_test_form_view field:qc.test,test_lines:0 +msgid "Questions" +msgstr "Preguntas" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Ready" +msgstr "Lista" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,object_id:0 +msgid "Reference" +msgstr "Referencia" + +#. module: quality_control +#: field:qc.test,object_id:0 +msgid "Reference object" +msgstr "Objeto referencia" + +#. module: quality_control +#: model:qc.test.category,name:quality_control.qc_test_template_category_referenced +msgid "Referenced" +msgstr "Referenciado" + +#. module: quality_control +#: selection:qc.test,type:0 +msgid "Related" +msgstr "Relativo" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,user:0 field:qc.trigger.line,user:0 +#: field:qc.trigger.product_category_line,user:0 +#: field:qc.trigger.product_line,user:0 +#: field:qc.trigger.product_template_line,user:0 +msgid "Responsible" +msgstr "Responsable" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +msgid "Search inspection" +msgstr "Buscar inspección" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Search inspection line" +msgstr "Buscar línea de inspección" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_user +msgid "See Own Inspections" +msgstr "Mostrar las inspecciones propias" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_set_test +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Select test" +msgstr "Seleccionar test" + +#. module: quality_control +#: field:qc.trigger,partner_selectable:0 +msgid "Selectable by partner" +msgstr "Seleccionable por empresa" + +#. module: quality_control +#: field:qc.test.question,sequence:0 +msgid "Sequence" +msgstr "Secuencia" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Set test" +msgstr "Establecer test" + +#. module: quality_control +#: model:qc.test.question,name:quality_control.qc_test_question_2 +msgid "Size" +msgstr "Tamaño" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,state:0 +msgid "State" +msgstr "Estado" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,success:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Success" +msgstr "Correcta" + +#. module: quality_control +#: field:qc.inspection.line,success:0 +msgid "Success?" +msgstr "Correcta?" + +#. module: quality_control +#: field:qc.inspection,message_summary:0 +msgid "Summary" +msgstr "Resumen" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,test:0 field:qc.inspection.set.test,test:0 +#: view:qc.test:quality_control.qc_test_form_view +#: field:qc.test.question,test:0 field:qc.trigger.line,test:0 +#: field:qc.trigger.product_category_line,test:0 +#: field:qc.trigger.product_line,test:0 +#: field:qc.trigger.product_template_line,test:0 +msgid "Test" +msgstr "Test" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_id:0 +msgid "Test UoM" +msgstr "UdM test" + +#. 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 +#: view:qc.test.category:quality_control.qc_test_category_tree_view +msgid "Test categories" +msgstr "Categorías de test" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_category +msgid "Test category" +msgstr "Categoría de test" + +#. module: quality_control +#: field:qc.inspection.line,test_line:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +#: field:qc.test.question.value,test_line:0 +msgid "Test question" +msgstr "Pregunta del test" + +#. 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 +#: view:qc.test:quality_control.qc_test_tree_view +msgid "Tests" +msgstr "Tests" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:56 +#, python-format +msgid "There isn't any value with OK marked. You have to mark at least one." +msgstr "No hay ningún valor con OK marcado. Debe marcar al menos uno." + +#. module: quality_control +#: help:qc.test.category,active:0 +msgid "This field allows you to hide the category without removing it." +msgstr "Este campo le permite ocultar la categoría sin eliminarla." + +#. module: quality_control +#: help:qc.inspection,success:0 +msgid "This field will be marked if all tests have been succeeded." +msgstr "Este campo se marcará si todos los tests han sido correctos." + +#. module: quality_control +#: help:qc.trigger,partner_selectable:0 +msgid "This technical field is to allow to filter by partner in triggers" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.line,trigger:0 +#: field:qc.trigger.product_category_line,trigger:0 +#: field:qc.trigger.product_line,trigger:0 +#: field:qc.trigger.product_template_line,trigger:0 +msgid "Trigger" +msgstr "Disparador" + +#. module: quality_control +#: field:qc.test,type:0 field:qc.test.question,type:0 +msgid "Type" +msgstr "Tipo" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_category:0 +msgid "Unit of Measure Category" +msgstr "Categoría de unidad de medida" + +#. module: quality_control +#: field:qc.inspection,message_unread:0 +msgid "Unread Messages" +msgstr "Mensajes sin leer" + +#. module: quality_control +#: field:qc.inspection.line,uom_id:0 +msgid "UoM" +msgstr "UdM" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_id:0 +msgid "UoM for minimum and maximum values if it's a quantitative question." +msgstr "UdM de los valores mínimos y máximos si es una pregunta cuantitativa." + +#. module: quality_control +#: help:qc.inspection.line,uom_id:0 +msgid "UoM of the inspection value if it's a quantitative question." +msgstr "UdM del valor de inspección si es una pregunta cuantitativa." + +#. module: quality_control +#: field:qc.test.question,uom_id:0 +msgid "Uom" +msgstr "UdM" + +#. module: quality_control +#: field:qc.inspection.line,valid_values:0 +msgid "Valid values" +msgstr "Valores válidos" + +#. module: quality_control +#: help:qc.inspection.line,qualitative_value:0 +msgid "Value of the result if it's a qualitative question." +msgstr "Valor del resultado si es una pregunta cualitativa." + +#. module: quality_control +#: help:qc.inspection.line,quantitative_value:0 +msgid "Value of the result if it's a quantitative question." +msgstr "Valor del resultado si es una pregunta cuantitativa." + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Waiting supervisor approval" +msgstr "Esperando la aprobación del supervisor" + +#. module: quality_control +#: help:qc.test.question.value,ok:0 +msgid "When this field is marked, the answer is considered correct." +msgstr "Cuando este campo está marcado, la respuesta se considera correcta." + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:97 +#, python-format +msgid "You cannot remove an auto-generated inspection" +msgstr "No puede eliminar una inspección auto-generada." + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:100 +#, python-format +msgid "You cannot remove an inspection that it's not in draft state" +msgstr "No puede eliminar una inspección que no esté en estado borrador" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:113 +#, python-format +msgid "You must set the test to perform first." +msgstr "Debe establecer primero el test a realizar." + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:128 +#, python-format +msgid "You should provide a unit of measure for quantitative questions." +msgstr "Debe proveer una unidad de medida para las preguntas cuantitativas." + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:123 +#, python-format +msgid "You should provide an answer for all qualitative questions." +msgstr "Debe proveer una respuesta para todas las preguntas cualitativas." + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "or" +msgstr "o" diff --git a/quality_control/i18n/fr.po b/quality_control/i18n/fr.po new file mode 100644 index 000000000..0de51bb1b --- /dev/null +++ b/quality_control/i18n/fr.po @@ -0,0 +1,796 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * quality_control +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: odoomrp-wip (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-07 10:44+0000\n" +"PO-Revision-Date: 2015-09-10 16:42+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (http://www.transifex.com/oca/odoomrp-wip-8-0/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_trigger_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_category_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_template_line +msgid "Abstract line for defining triggers" +msgstr "" + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Accept" +msgstr "" + +#. module: quality_control +#: field:qc.test,active:0 field:qc.test.category,active:0 +#: field:qc.trigger,active:0 +msgid "Active" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,possible_ql_values:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Answers" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Approve" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,auto_generated:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Cancel" +msgstr "Annuler" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Cancelled" +msgstr "" + +#. module: quality_control +#: field:qc.test,category:0 +msgid "Category" +msgstr "" + +#. module: quality_control +#: field:qc.test.category,child_ids:0 +msgid "Child categories" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,company_id:0 field:qc.test,company_id:0 +#: field:qc.trigger,company_id:0 +msgid "Company" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Confirm" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_category:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Correct" +msgstr "" + +#. module: quality_control +#: field:qc.test.question.value,ok:0 +msgid "Correct answer?" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,create_uid:0 field:qc.inspection.line,create_uid:0 +#: field:qc.inspection.set.test,create_uid:0 field:qc.test,create_uid:0 +#: field:qc.test.category,create_uid:0 field:qc.test.question,create_uid:0 +#: field:qc.test.question.value,create_uid:0 field:qc.trigger,create_uid:0 +#: field:qc.trigger.product_category_line,create_uid:0 +#: field:qc.trigger.product_line,create_uid:0 +#: field:qc.trigger.product_template_line,create_uid:0 +msgid "Created by" +msgstr "Créé par" + +#. module: quality_control +#: field:qc.inspection,create_date:0 field:qc.inspection.line,create_date:0 +#: field:qc.inspection.set.test,create_date:0 field:qc.test,create_date:0 +#: field:qc.test.category,create_date:0 field:qc.test.question,create_date:0 +#: field:qc.test.question.value,create_date:0 field:qc.trigger,create_date:0 +#: field:qc.trigger.product_category_line,create_date:0 +#: field:qc.trigger.product_line,create_date:0 +#: field:qc.trigger.product_template_line,create_date:0 +msgid "Created on" +msgstr "Créé le" + +#. module: quality_control +#: field:qc.inspection,date:0 +msgid "Date" +msgstr "" + +#. module: quality_control +#: help:qc.inspection,message_last_post:0 +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: quality_control +#: view:qc.inspection: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:35 +#, python-format +msgid "Error ! You can not create recursive categories." +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,external_notes:0 +msgid "External notes" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_follower_ids:0 +msgid "Followers" +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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Group by..." +msgstr "" + +#. module: quality_control +#: help:qc.inspection,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" + +#. module: quality_control +#: field:qc.inspection,id:0 field:qc.inspection.line,id:0 +#: field:qc.inspection.set.test,id:0 field:qc.test,id:0 +#: field:qc.test.category,id:0 field:qc.test.question,id:0 +#: field:qc.test.question.value,id:0 field:qc.trigger,id:0 +#: field:qc.trigger.line,id:0 field:qc.trigger.product_category_line,id:0 +#: field:qc.trigger.product_line,id:0 +#: field:qc.trigger.product_template_line,id:0 +msgid "ID" +msgstr "Id." + +#. module: quality_control +#: help:qc.inspection,auto_generated:0 +msgid "If an inspection is auto-generated, it can be cancelled nor removed" +msgstr "" + +#. module: quality_control +#: help:qc.inspection,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "" + +#. module: quality_control +#: help:qc.trigger.line,partners:0 +#: help:qc.trigger.product_category_line,partners:0 +#: help:qc.trigger.product_line,partners:0 +#: help:qc.trigger.product_template_line,partners:0 +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 be always created." +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Incorrect" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,inspection_id:0 +msgid "Inspection" +msgstr "" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_line +#: model:ir.ui.menu,name:quality_control.qc_inspection_lines_menu +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,inspection_lines:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_tree_view +msgid "Inspection lines" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,name:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_tree_view +msgid "Inspections" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,internal_notes:0 +msgid "Internal notes" +msgstr "" + +#. module: quality_control +#: view:product.template:quality_control.product_template_qc_form_view +msgid "Inventory" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_is_follower:0 +msgid "Is a Follower" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_last_post:0 +msgid "Last Message Date" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,write_uid:0 field:qc.inspection.line,write_uid:0 +#: field:qc.inspection.set.test,write_uid:0 field:qc.test,write_uid:0 +#: field:qc.test.category,write_uid:0 field:qc.test.question,write_uid:0 +#: field:qc.test.question.value,write_uid:0 field:qc.trigger,write_uid:0 +#: field:qc.trigger.product_category_line,write_uid:0 +#: field:qc.trigger.product_line,write_uid:0 +#: field:qc.trigger.product_template_line,write_uid:0 +msgid "Last Updated by" +msgstr "Mis à jour par" + +#. module: quality_control +#: field:qc.inspection,write_date:0 field:qc.inspection.line,write_date:0 +#: field:qc.inspection.set.test,write_date:0 field:qc.test,write_date:0 +#: field:qc.test.category,write_date:0 field:qc.test.question,write_date:0 +#: field:qc.test.question.value,write_date:0 field:qc.trigger,write_date:0 +#: field:qc.trigger.product_category_line,write_date:0 +#: field:qc.trigger.product_line,write_date:0 +#: field:qc.trigger.product_template_line,write_date:0 +msgid "Last Updated on" +msgstr "Mis à jour le" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_manager +msgid "Manager" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Mark todo" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,max_value:0 field:qc.test.question,max_value:0 +msgid "Max" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,max_value:0 +msgid "Maximum valid value if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: quality_control +#: help:qc.inspection,message_ids:0 +msgid "Messages and communication history" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,min_value:0 field:qc.test.question,min_value:0 +msgid "Min" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,min_value:0 +msgid "Minimum valid value if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:66 +#, python-format +msgid "Minimum value can't be higher than maximum value." +msgstr "" + +#. module: quality_control +#: field:qc.test,name:0 field:qc.test.category,name:0 +#: field:qc.test.question,name:0 field:qc.test.question.value,name:0 +#: field:qc.trigger,name:0 +msgid "Name" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection.line,notes:0 field:qc.test.question,notes:0 +msgid "Notes" +msgstr "" + +#. module: quality_control +#: model:qc.test.question,name:quality_control.qc_test_question_1 +msgid "Overall quality" +msgstr "" + +#. module: quality_control +#: field:qc.test.category,parent_id:0 +msgid "Parent category" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.line,partners:0 +#: field:qc.trigger.product_category_line,partners:0 +#: field:qc.trigger.product_line,partners:0 +#: field:qc.trigger.product_template_line,partners:0 +msgid "Partners" +msgstr "" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_question_value +msgid "Possible values of qualitative questions." +msgstr "" + +#. module: quality_control +#: field:qc.test,fill_correct_values:0 +msgid "Pre-fill with correct values" +msgstr "" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_product +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,product:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,product:0 field:qc.trigger.product_line,product:0 +msgid "Product" +msgstr "Article" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_category +msgid "Product Category" +msgstr "Catégorie d'articles" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_template +msgid "Product Template" +msgstr "" + +#. module: quality_control +#: help:qc.inspection,product:0 help:qc.inspection.line,product:0 +msgid "Product associated with the inspection" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.product_category_line,product_category:0 +msgid "Product category" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.product_template_line,product_template:0 +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 +#: field:qc.inspection.line,qualitative_value:0 +msgid "Qualitative value" +msgstr "" + +#. module: quality_control +#: field:qc.test.question,ql_values:0 +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 +#: view:product.category:quality_control.product_category_qc_form_view +#: view:product.template: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 +#: view:qc.trigger:quality_control.qc_trigger_form_view +msgid "Quality control trigger" +msgstr "" + +#. module: quality_control +#: view:product.category:quality_control.product_category_qc_form_view +#: field:product.category,qc_triggers:0 field:product.product,qc_triggers:0 +#: view:product.template:quality_control.product_template_qc_form_view +#: field:product.template,qc_triggers:0 +#: view:qc.trigger: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 +#: field:qc.inspection.line,quantitative_value:0 +msgid "Quantitative value" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,qty:0 +msgid "Quantity" +msgstr "" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,name:0 +msgid "Question" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,question_type:0 +msgid "Question type" +msgstr "" + +#. module: quality_control +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Question value" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.test:quality_control.qc_test_form_view field:qc.test,test_lines:0 +msgid "Questions" +msgstr "" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Ready" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,object_id:0 +msgid "Reference" +msgstr "" + +#. module: quality_control +#: field:qc.test,object_id:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,user:0 field:qc.trigger.line,user:0 +#: field:qc.trigger.product_category_line,user:0 +#: field:qc.trigger.product_line,user:0 +#: field:qc.trigger.product_template_line,user:0 +msgid "Responsible" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +msgid "Search inspection" +msgstr "" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Search inspection line" +msgstr "" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_user +msgid "See Own Inspections" +msgstr "" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_set_test +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Select test" +msgstr "" + +#. module: quality_control +#: field:qc.trigger,partner_selectable:0 +msgid "Selectable by partner" +msgstr "" + +#. module: quality_control +#: field:qc.test.question,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: quality_control +#: view:qc.inspection: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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,state:0 +msgid "State" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,success:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Success" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,success:0 +msgid "Success?" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_summary:0 +msgid "Summary" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,test:0 field:qc.inspection.set.test,test:0 +#: view:qc.test:quality_control.qc_test_form_view +#: field:qc.test.question,test:0 field:qc.trigger.line,test:0 +#: field:qc.trigger.product_category_line,test:0 +#: field:qc.trigger.product_line,test:0 +#: field:qc.trigger.product_template_line,test:0 +msgid "Test" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_id:0 +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 +#: view:qc.test.category: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 +#: field:qc.inspection.line,test_line:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +#: field:qc.test.question.value,test_line:0 +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 +#: view:qc.test:quality_control.qc_test_tree_view +msgid "Tests" +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:56 +#, python-format +msgid "There isn't any value with OK marked. You have to mark at least one." +msgstr "" + +#. module: quality_control +#: help:qc.test.category,active:0 +msgid "This field allows you to hide the category without removing it." +msgstr "" + +#. module: quality_control +#: help:qc.inspection,success:0 +msgid "This field will be marked if all tests have been succeeded." +msgstr "" + +#. module: quality_control +#: help:qc.trigger,partner_selectable:0 +msgid "This technical field is to allow to filter by partner in triggers" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.line,trigger:0 +#: field:qc.trigger.product_category_line,trigger:0 +#: field:qc.trigger.product_line,trigger:0 +#: field:qc.trigger.product_template_line,trigger:0 +msgid "Trigger" +msgstr "" + +#. module: quality_control +#: field:qc.test,type:0 field:qc.test.question,type:0 +msgid "Type" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_category:0 +msgid "Unit of Measure Category" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_unread:0 +msgid "Unread Messages" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,uom_id:0 +msgid "UoM" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_id:0 +msgid "UoM for minimum and maximum values if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,uom_id:0 +msgid "UoM of the inspection value if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: field:qc.test.question,uom_id:0 +msgid "Uom" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,valid_values:0 +msgid "Valid values" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,qualitative_value:0 +msgid "Value of the result if it's a qualitative question." +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,quantitative_value:0 +msgid "Value of the result if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Waiting supervisor approval" +msgstr "" + +#. module: quality_control +#: help:qc.test.question.value,ok:0 +msgid "When this field is marked, the answer is considered correct." +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:97 +#, python-format +msgid "You cannot remove an auto-generated inspection" +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:100 +#, python-format +msgid "You cannot remove an inspection that it's not in draft state" +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:113 +#, python-format +msgid "You must set the test to perform first." +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:128 +#, 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:123 +#, python-format +msgid "You should provide an answer for all qualitative questions." +msgstr "" + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "or" +msgstr "ou" diff --git a/quality_control/i18n/pt_BR.po b/quality_control/i18n/pt_BR.po new file mode 100644 index 000000000..a50658a18 --- /dev/null +++ b/quality_control/i18n/pt_BR.po @@ -0,0 +1,796 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * quality_control +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: odoomrp-wip (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-07 10:44+0000\n" +"PO-Revision-Date: 2015-10-09 03:42+0000\n" +"Last-Translator: danimaribeiro \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/odoomrp-wip-8-0/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_trigger_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_category_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_template_line +msgid "Abstract line for defining triggers" +msgstr "" + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Accept" +msgstr "" + +#. module: quality_control +#: field:qc.test,active:0 field:qc.test.category,active:0 +#: field:qc.trigger,active:0 +msgid "Active" +msgstr "Ativo" + +#. module: quality_control +#: field:qc.inspection.line,possible_ql_values:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Answers" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Approve" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,auto_generated:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Cancelled" +msgstr "" + +#. module: quality_control +#: field:qc.test,category:0 +msgid "Category" +msgstr "" + +#. module: quality_control +#: field:qc.test.category,child_ids:0 +msgid "Child categories" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,company_id:0 field:qc.test,company_id:0 +#: field:qc.trigger,company_id:0 +msgid "Company" +msgstr "Empresa" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Confirm" +msgstr "Confirmar" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_category:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Correct" +msgstr "" + +#. module: quality_control +#: field:qc.test.question.value,ok:0 +msgid "Correct answer?" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,create_uid:0 field:qc.inspection.line,create_uid:0 +#: field:qc.inspection.set.test,create_uid:0 field:qc.test,create_uid:0 +#: field:qc.test.category,create_uid:0 field:qc.test.question,create_uid:0 +#: field:qc.test.question.value,create_uid:0 field:qc.trigger,create_uid:0 +#: field:qc.trigger.product_category_line,create_uid:0 +#: field:qc.trigger.product_line,create_uid:0 +#: field:qc.trigger.product_template_line,create_uid:0 +msgid "Created by" +msgstr "Criado por" + +#. module: quality_control +#: field:qc.inspection,create_date:0 field:qc.inspection.line,create_date:0 +#: field:qc.inspection.set.test,create_date:0 field:qc.test,create_date:0 +#: field:qc.test.category,create_date:0 field:qc.test.question,create_date:0 +#: field:qc.test.question.value,create_date:0 field:qc.trigger,create_date:0 +#: field:qc.trigger.product_category_line,create_date:0 +#: field:qc.trigger.product_line,create_date:0 +#: field:qc.trigger.product_template_line,create_date:0 +msgid "Created on" +msgstr "Criado em" + +#. module: quality_control +#: field:qc.inspection,date:0 +msgid "Date" +msgstr "Data" + +#. module: quality_control +#: help:qc.inspection,message_last_post:0 +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: selection:qc.inspection,state:0 +msgid "Draft" +msgstr "Provisório" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test_category.py:35 +#, python-format +msgid "Error ! You can not create recursive categories." +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,external_notes:0 +msgid "External notes" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_follower_ids:0 +msgid "Followers" +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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Group by..." +msgstr "" + +#. module: quality_control +#: help:qc.inspection,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" + +#. module: quality_control +#: field:qc.inspection,id:0 field:qc.inspection.line,id:0 +#: field:qc.inspection.set.test,id:0 field:qc.test,id:0 +#: field:qc.test.category,id:0 field:qc.test.question,id:0 +#: field:qc.test.question.value,id:0 field:qc.trigger,id:0 +#: field:qc.trigger.line,id:0 field:qc.trigger.product_category_line,id:0 +#: field:qc.trigger.product_line,id:0 +#: field:qc.trigger.product_template_line,id:0 +msgid "ID" +msgstr "ID" + +#. module: quality_control +#: help:qc.inspection,auto_generated:0 +msgid "If an inspection is auto-generated, it can be cancelled nor removed" +msgstr "" + +#. module: quality_control +#: help:qc.inspection,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "" + +#. module: quality_control +#: help:qc.trigger.line,partners:0 +#: help:qc.trigger.product_category_line,partners:0 +#: help:qc.trigger.product_line,partners:0 +#: help:qc.trigger.product_template_line,partners:0 +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 be always created." +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Incorrect" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,inspection_id:0 +msgid "Inspection" +msgstr "" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_line +#: model:ir.ui.menu,name:quality_control.qc_inspection_lines_menu +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,inspection_lines:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_tree_view +msgid "Inspection lines" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,name:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_tree_view +msgid "Inspections" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,internal_notes:0 +msgid "Internal notes" +msgstr "" + +#. module: quality_control +#: view:product.template:quality_control.product_template_qc_form_view +msgid "Inventory" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_is_follower:0 +msgid "Is a Follower" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_last_post:0 +msgid "Last Message Date" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,write_uid:0 field:qc.inspection.line,write_uid:0 +#: field:qc.inspection.set.test,write_uid:0 field:qc.test,write_uid:0 +#: field:qc.test.category,write_uid:0 field:qc.test.question,write_uid:0 +#: field:qc.test.question.value,write_uid:0 field:qc.trigger,write_uid:0 +#: field:qc.trigger.product_category_line,write_uid:0 +#: field:qc.trigger.product_line,write_uid:0 +#: field:qc.trigger.product_template_line,write_uid:0 +msgid "Last Updated by" +msgstr "Última atualização por" + +#. module: quality_control +#: field:qc.inspection,write_date:0 field:qc.inspection.line,write_date:0 +#: field:qc.inspection.set.test,write_date:0 field:qc.test,write_date:0 +#: field:qc.test.category,write_date:0 field:qc.test.question,write_date:0 +#: field:qc.test.question.value,write_date:0 field:qc.trigger,write_date:0 +#: field:qc.trigger.product_category_line,write_date:0 +#: field:qc.trigger.product_line,write_date:0 +#: field:qc.trigger.product_template_line,write_date:0 +msgid "Last Updated on" +msgstr "Última atualização em" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_manager +msgid "Manager" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Mark todo" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,max_value:0 field:qc.test.question,max_value:0 +msgid "Max" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,max_value:0 +msgid "Maximum valid value if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: quality_control +#: help:qc.inspection,message_ids:0 +msgid "Messages and communication history" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,min_value:0 field:qc.test.question,min_value:0 +msgid "Min" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,min_value:0 +msgid "Minimum valid value if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:66 +#, python-format +msgid "Minimum value can't be higher than maximum value." +msgstr "" + +#. module: quality_control +#: field:qc.test,name:0 field:qc.test.category,name:0 +#: field:qc.test.question,name:0 field:qc.test.question.value,name:0 +#: field:qc.trigger,name:0 +msgid "Name" +msgstr "Nome" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection.line,notes:0 field:qc.test.question,notes:0 +msgid "Notes" +msgstr "" + +#. module: quality_control +#: model:qc.test.question,name:quality_control.qc_test_question_1 +msgid "Overall quality" +msgstr "" + +#. module: quality_control +#: field:qc.test.category,parent_id:0 +msgid "Parent category" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.line,partners:0 +#: field:qc.trigger.product_category_line,partners:0 +#: field:qc.trigger.product_line,partners:0 +#: field:qc.trigger.product_template_line,partners:0 +msgid "Partners" +msgstr "" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_question_value +msgid "Possible values of qualitative questions." +msgstr "" + +#. module: quality_control +#: field:qc.test,fill_correct_values:0 +msgid "Pre-fill with correct values" +msgstr "" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_product +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,product:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,product:0 field:qc.trigger.product_line,product:0 +msgid "Product" +msgstr "Produto" + +#. 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 +#: help:qc.inspection,product:0 help:qc.inspection.line,product:0 +msgid "Product associated with the inspection" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.product_category_line,product_category:0 +msgid "Product category" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.product_template_line,product_template:0 +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 +#: field:qc.inspection.line,qualitative_value:0 +msgid "Qualitative value" +msgstr "" + +#. module: quality_control +#: field:qc.test.question,ql_values:0 +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 +#: view:product.category:quality_control.product_category_qc_form_view +#: view:product.template: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 +#: view:qc.trigger:quality_control.qc_trigger_form_view +msgid "Quality control trigger" +msgstr "" + +#. module: quality_control +#: view:product.category:quality_control.product_category_qc_form_view +#: field:product.category,qc_triggers:0 field:product.product,qc_triggers:0 +#: view:product.template:quality_control.product_template_qc_form_view +#: field:product.template,qc_triggers:0 +#: view:qc.trigger: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 +#: field:qc.inspection.line,quantitative_value:0 +msgid "Quantitative value" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,qty:0 +msgid "Quantity" +msgstr "" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,name:0 +msgid "Question" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,question_type:0 +msgid "Question type" +msgstr "" + +#. module: quality_control +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Question value" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.test:quality_control.qc_test_form_view field:qc.test,test_lines:0 +msgid "Questions" +msgstr "" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Ready" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,object_id:0 +msgid "Reference" +msgstr "" + +#. module: quality_control +#: field:qc.test,object_id:0 +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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,user:0 field:qc.trigger.line,user:0 +#: field:qc.trigger.product_category_line,user:0 +#: field:qc.trigger.product_line,user:0 +#: field:qc.trigger.product_template_line,user:0 +msgid "Responsible" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +msgid "Search inspection" +msgstr "" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Search inspection line" +msgstr "" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_user +msgid "See Own Inspections" +msgstr "" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_set_test +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Select test" +msgstr "" + +#. module: quality_control +#: field:qc.trigger,partner_selectable:0 +msgid "Selectable by partner" +msgstr "" + +#. module: quality_control +#: field:qc.test.question,sequence:0 +msgid "Sequence" +msgstr "Sequência" + +#. module: quality_control +#: view:qc.inspection: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 +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,state:0 +msgid "State" +msgstr "Estado" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,success:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Success" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,success:0 +msgid "Success?" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_summary:0 +msgid "Summary" +msgstr "" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,test:0 field:qc.inspection.set.test,test:0 +#: view:qc.test:quality_control.qc_test_form_view +#: field:qc.test.question,test:0 field:qc.trigger.line,test:0 +#: field:qc.trigger.product_category_line,test:0 +#: field:qc.trigger.product_line,test:0 +#: field:qc.trigger.product_template_line,test:0 +msgid "Test" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_id:0 +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 +#: view:qc.test.category: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 +#: field:qc.inspection.line,test_line:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +#: field:qc.test.question.value,test_line:0 +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 +#: view:qc.test:quality_control.qc_test_tree_view +msgid "Tests" +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:56 +#, python-format +msgid "There isn't any value with OK marked. You have to mark at least one." +msgstr "" + +#. module: quality_control +#: help:qc.test.category,active:0 +msgid "This field allows you to hide the category without removing it." +msgstr "" + +#. module: quality_control +#: help:qc.inspection,success:0 +msgid "This field will be marked if all tests have been succeeded." +msgstr "" + +#. module: quality_control +#: help:qc.trigger,partner_selectable:0 +msgid "This technical field is to allow to filter by partner in triggers" +msgstr "" + +#. module: quality_control +#: field:qc.trigger.line,trigger:0 +#: field:qc.trigger.product_category_line,trigger:0 +#: field:qc.trigger.product_line,trigger:0 +#: field:qc.trigger.product_template_line,trigger:0 +msgid "Trigger" +msgstr "" + +#. module: quality_control +#: field:qc.test,type:0 field:qc.test.question,type:0 +msgid "Type" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_category:0 +msgid "Unit of Measure Category" +msgstr "" + +#. module: quality_control +#: field:qc.inspection,message_unread:0 +msgid "Unread Messages" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,uom_id:0 +msgid "UoM" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_id:0 +msgid "UoM for minimum and maximum values if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,uom_id:0 +msgid "UoM of the inspection value if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: field:qc.test.question,uom_id:0 +msgid "Uom" +msgstr "" + +#. module: quality_control +#: field:qc.inspection.line,valid_values:0 +msgid "Valid values" +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,qualitative_value:0 +msgid "Value of the result if it's a qualitative question." +msgstr "" + +#. module: quality_control +#: help:qc.inspection.line,quantitative_value:0 +msgid "Value of the result if it's a quantitative question." +msgstr "" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Waiting supervisor approval" +msgstr "" + +#. module: quality_control +#: help:qc.test.question.value,ok:0 +msgid "When this field is marked, the answer is considered correct." +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:97 +#, python-format +msgid "You cannot remove an auto-generated inspection" +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:100 +#, python-format +msgid "You cannot remove an inspection that it's not in draft state" +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:113 +#, python-format +msgid "You must set the test to perform first." +msgstr "" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:128 +#, 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:123 +#, python-format +msgid "You should provide an answer for all qualitative questions." +msgstr "" + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "or" +msgstr "ou" diff --git a/quality_control/i18n/sl.po b/quality_control/i18n/sl.po new file mode 100644 index 000000000..ce099985b --- /dev/null +++ b/quality_control/i18n/sl.po @@ -0,0 +1,797 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * quality_control +# +# Translators: +# Matjaž Mozetič , 2015 +msgid "" +msgstr "" +"Project-Id-Version: odoomrp-wip (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-07 10:44+0000\n" +"PO-Revision-Date: 2015-09-20 19:03+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/odoomrp-wip-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_trigger_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_category_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_line +#: model:ir.model,name:quality_control.model_qc_trigger_product_template_line +msgid "Abstract line for defining triggers" +msgstr "Abstraktna vrstica za določanje sprožilcev" + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Accept" +msgstr "Sprejem" + +#. module: quality_control +#: field:qc.test,active:0 field:qc.test.category,active:0 +#: field:qc.trigger,active:0 +msgid "Active" +msgstr "Aktivno" + +#. module: quality_control +#: field:qc.inspection.line,possible_ql_values:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Answers" +msgstr "Odgovori" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Approve" +msgstr "Odobritev" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,auto_generated:0 +msgid "Auto-generated" +msgstr "Samodejno ustvarjeno" + +#. module: quality_control +#: model:qc.test.question.value,name:quality_control.qc_test_question_value_2 +msgid "Bad" +msgstr "Slabo" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Cancel" +msgstr "Preklic" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Cancelled" +msgstr "Preklicano" + +#. module: quality_control +#: field:qc.test,category:0 +msgid "Category" +msgstr "Kategorija" + +#. module: quality_control +#: field:qc.test.category,child_ids:0 +msgid "Child categories" +msgstr "Podrejene kategorije" + +#. module: quality_control +#: field:qc.inspection,company_id:0 field:qc.test,company_id:0 +#: field:qc.trigger,company_id:0 +msgid "Company" +msgstr "Družba" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Confirm" +msgstr "Potrditev" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_category:0 +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 "Pretvorba med enotami mere je možna le, če pripadajo isti kategoriji. Pretvorba se izvede na osnovi razmerij." + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Correct" +msgstr "Pravilno" + +#. module: quality_control +#: field:qc.test.question.value,ok:0 +msgid "Correct answer?" +msgstr "Pravilni odgovor?" + +#. module: quality_control +#: field:qc.inspection,create_uid:0 field:qc.inspection.line,create_uid:0 +#: field:qc.inspection.set.test,create_uid:0 field:qc.test,create_uid:0 +#: field:qc.test.category,create_uid:0 field:qc.test.question,create_uid:0 +#: field:qc.test.question.value,create_uid:0 field:qc.trigger,create_uid:0 +#: field:qc.trigger.product_category_line,create_uid:0 +#: field:qc.trigger.product_line,create_uid:0 +#: field:qc.trigger.product_template_line,create_uid:0 +msgid "Created by" +msgstr "Ustvaril" + +#. module: quality_control +#: field:qc.inspection,create_date:0 field:qc.inspection.line,create_date:0 +#: field:qc.inspection.set.test,create_date:0 field:qc.test,create_date:0 +#: field:qc.test.category,create_date:0 field:qc.test.question,create_date:0 +#: field:qc.test.question.value,create_date:0 field:qc.trigger,create_date:0 +#: field:qc.trigger.product_category_line,create_date:0 +#: field:qc.trigger.product_line,create_date:0 +#: field:qc.trigger.product_template_line,create_date:0 +msgid "Created on" +msgstr "Ustvarjeno" + +#. module: quality_control +#: field:qc.inspection,date:0 +msgid "Date" +msgstr "Datum" + +#. module: quality_control +#: help:qc.inspection,message_last_post:0 +msgid "Date of the last message posted on the record." +msgstr "Datum zadnjega sporočila vpisanega na to vknjižbo." + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: selection:qc.inspection,state:0 +msgid "Draft" +msgstr "Osnutek" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test_category.py:35 +#, python-format +msgid "Error ! You can not create recursive categories." +msgstr "Napaka! Rekurzivnih kategorij ne morete ustvariti." + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,external_notes:0 +msgid "External notes" +msgstr "Zunanje opombe" + +#. module: quality_control +#: field:qc.inspection,message_follower_ids:0 +msgid "Followers" +msgstr "Sledilci" + +#. module: quality_control +#: selection:qc.test,type:0 +#: model:qc.test.category,name:quality_control.qc_test_template_category_generic +msgid "Generic" +msgstr "Splošno" + +#. module: quality_control +#: model:qc.test,name:quality_control.qc_test_1 +msgid "Generic Test (demo)" +msgstr "Generičen test (demonstracija)" + +#. module: quality_control +#: model:qc.test.question.value,name:quality_control.qc_test_question_value_1 +msgid "Good" +msgstr "Dobro" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Group by..." +msgstr "Združi po" + +#. module: quality_control +#: help:qc.inspection,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "Povzetek (število sporočil,..) v html formatu, da se lahko neposredno vstavi v poglede tipa kanban." + +#. module: quality_control +#: field:qc.inspection,id:0 field:qc.inspection.line,id:0 +#: field:qc.inspection.set.test,id:0 field:qc.test,id:0 +#: field:qc.test.category,id:0 field:qc.test.question,id:0 +#: field:qc.test.question.value,id:0 field:qc.trigger,id:0 +#: field:qc.trigger.line,id:0 field:qc.trigger.product_category_line,id:0 +#: field:qc.trigger.product_line,id:0 +#: field:qc.trigger.product_template_line,id:0 +msgid "ID" +msgstr "ID" + +#. module: quality_control +#: help:qc.inspection,auto_generated:0 +msgid "If an inspection is auto-generated, it can be cancelled nor removed" +msgstr "Če se inšpekcija samodejno ustvari, se lahko prekliče ali izbriše" + +#. module: quality_control +#: help:qc.inspection,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "Če označeno, zahtevajo nova sporočila vašo pozornost." + +#. module: quality_control +#: help:qc.trigger.line,partners:0 +#: help:qc.trigger.product_category_line,partners:0 +#: help:qc.trigger.product_line,partners:0 +#: help:qc.trigger.product_template_line,partners:0 +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 be always created." +msgstr "Če izpolnjeno, se test ustvari le, ko je ukrep opravljen za enega izmed izbranih partnerjev. Če prazno, se test ustvari vedno." + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Incorrect" +msgstr "Nepravilno" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,inspection_id:0 +msgid "Inspection" +msgstr "Inšpekcija" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_line +#: model:ir.ui.menu,name:quality_control.qc_inspection_lines_menu +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,inspection_lines:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_tree_view +msgid "Inspection lines" +msgstr "Inšpekcijske postavke" + +#. module: quality_control +#: field:qc.inspection,name:0 +msgid "Inspection number" +msgstr "Inšpekcijska številka" + +#. 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 +#: view:qc.inspection:quality_control.qc_inspection_tree_view +msgid "Inspections" +msgstr "Inšpekcije" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection,internal_notes:0 +msgid "Internal notes" +msgstr "Interni zaznamki" + +#. module: quality_control +#: view:product.template:quality_control.product_template_qc_form_view +msgid "Inventory" +msgstr "Inventar" + +#. module: quality_control +#: field:qc.inspection,message_is_follower:0 +msgid "Is a Follower" +msgstr "Je sledilec" + +#. module: quality_control +#: field:qc.inspection,message_last_post:0 +msgid "Last Message Date" +msgstr "Datum zadnjega sporočila" + +#. module: quality_control +#: field:qc.inspection,write_uid:0 field:qc.inspection.line,write_uid:0 +#: field:qc.inspection.set.test,write_uid:0 field:qc.test,write_uid:0 +#: field:qc.test.category,write_uid:0 field:qc.test.question,write_uid:0 +#: field:qc.test.question.value,write_uid:0 field:qc.trigger,write_uid:0 +#: field:qc.trigger.product_category_line,write_uid:0 +#: field:qc.trigger.product_line,write_uid:0 +#: field:qc.trigger.product_template_line,write_uid:0 +msgid "Last Updated by" +msgstr "Zadnjič posodobil" + +#. module: quality_control +#: field:qc.inspection,write_date:0 field:qc.inspection.line,write_date:0 +#: field:qc.inspection.set.test,write_date:0 field:qc.test,write_date:0 +#: field:qc.test.category,write_date:0 field:qc.test.question,write_date:0 +#: field:qc.test.question.value,write_date:0 field:qc.trigger,write_date:0 +#: field:qc.trigger.product_category_line,write_date:0 +#: field:qc.trigger.product_line,write_date:0 +#: field:qc.trigger.product_template_line,write_date:0 +msgid "Last Updated on" +msgstr "Zadnjič posodobljeno" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_manager +msgid "Manager" +msgstr "Upravitelj" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Mark todo" +msgstr "Za narediti" + +#. module: quality_control +#: field:qc.inspection.line,max_value:0 field:qc.test.question,max_value:0 +msgid "Max" +msgstr "Maks" + +#. module: quality_control +#: help:qc.inspection.line,max_value:0 +msgid "Maximum valid value if it's a quantitative question." +msgstr "Maksimalna veljavna vrednost za kvantitativna vprašanja." + +#. module: quality_control +#: field:qc.inspection,message_ids:0 +msgid "Messages" +msgstr "Sporočila" + +#. module: quality_control +#: help:qc.inspection,message_ids:0 +msgid "Messages and communication history" +msgstr "Sporočila in kronologija komunikacij" + +#. module: quality_control +#: field:qc.inspection.line,min_value:0 field:qc.test.question,min_value:0 +msgid "Min" +msgstr "Min" + +#. module: quality_control +#: help:qc.inspection.line,min_value:0 +msgid "Minimum valid value if it's a quantitative question." +msgstr "Minimalna veljavna vrednost za kvantitativna vprašanja." + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:66 +#, python-format +msgid "Minimum value can't be higher than maximum value." +msgstr "Minimalna vrednost ne more biti višja od maksimalne vrednosti." + +#. module: quality_control +#: field:qc.test,name:0 field:qc.test.category,name:0 +#: field:qc.test.question,name:0 field:qc.test.question.value,name:0 +#: field:qc.trigger,name:0 +msgid "Name" +msgstr "Naziv" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: field:qc.inspection.line,notes:0 field:qc.test.question,notes:0 +msgid "Notes" +msgstr "Opombe" + +#. module: quality_control +#: model:qc.test.question,name:quality_control.qc_test_question_1 +msgid "Overall quality" +msgstr "Splošna kvaliteta" + +#. module: quality_control +#: field:qc.test.category,parent_id:0 +msgid "Parent category" +msgstr "Nadrejena kategorija" + +#. module: quality_control +#: field:qc.trigger.line,partners:0 +#: field:qc.trigger.product_category_line,partners:0 +#: field:qc.trigger.product_line,partners:0 +#: field:qc.trigger.product_template_line,partners:0 +msgid "Partners" +msgstr "Partnerji" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_question_value +msgid "Possible values of qualitative questions." +msgstr "Možne vrednosti kvalitativnih vprašanj" + +#. module: quality_control +#: field:qc.test,fill_correct_values:0 +msgid "Pre-fill with correct values" +msgstr "Pred-izpolni s pravilnimi vrednostmi" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_product +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,product:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,product:0 field:qc.trigger.product_line,product:0 +msgid "Product" +msgstr "Proizvod" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_category +msgid "Product Category" +msgstr "Kategorija proizvoda" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_product_template +msgid "Product Template" +msgstr "Predloga proizvoda" + +#. module: quality_control +#: help:qc.inspection,product:0 help:qc.inspection.line,product:0 +msgid "Product associated with the inspection" +msgstr "Proizvod povezan z inšpekcijo" + +#. module: quality_control +#: field:qc.trigger.product_category_line,product_category:0 +msgid "Product category" +msgstr "Kategorija proizvoda" + +#. module: quality_control +#: field:qc.trigger.product_template_line,product_template:0 +msgid "Product template" +msgstr "Predloga proizvoda" + +#. module: quality_control +#: selection:qc.inspection.line,question_type:0 +#: selection:qc.test.question,type:0 +msgid "Qualitative" +msgstr "Kvalitativna" + +#. module: quality_control +#: field:qc.inspection.line,qualitative_value:0 +msgid "Qualitative value" +msgstr "Kvalitativna vrednost" + +#. module: quality_control +#: field:qc.test.question,ql_values:0 +msgid "Qualitative values" +msgstr "Kvalitativne vrednosti" + +#. module: quality_control +#: model:ir.module.category,name:quality_control.module_category_quality_control +#: model:ir.ui.menu,name:quality_control.qc_menu +#: view:product.category:quality_control.product_category_qc_form_view +#: view:product.template:quality_control.product_template_qc_form_view +msgid "Quality control" +msgstr "Kontrola kakovosti" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_inspection +msgid "Quality control inspection" +msgstr "Inšpekcija nadzora kvalitete" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_inspection_line +msgid "Quality control inspection line" +msgstr "Inšpekcijska postavka kontrole kakovosti" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_question +msgid "Quality control question" +msgstr "Vprašanje kontrole kakovosti" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test +msgid "Quality control test" +msgstr "Testiranje kontrole kakovosti" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_trigger +#: view:qc.trigger:quality_control.qc_trigger_form_view +msgid "Quality control trigger" +msgstr "Sprožilec kontrole kakovosti" + +#. module: quality_control +#: view:product.category:quality_control.product_category_qc_form_view +#: field:product.category,qc_triggers:0 field:product.product,qc_triggers:0 +#: view:product.template:quality_control.product_template_qc_form_view +#: field:product.template,qc_triggers:0 +#: view:qc.trigger:quality_control.qc_trigger_tree_view +msgid "Quality control triggers" +msgstr "Sprožilci kontrole kakovosti" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Quality failed" +msgstr "Kvaliteta neustrezna" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Quality success" +msgstr "Kvaliteta ustrezna" + +#. module: quality_control +#: selection:qc.inspection.line,question_type:0 +#: selection:qc.test.question,type:0 +msgid "Quantitative" +msgstr "Kvantitativna" + +#. module: quality_control +#: field:qc.inspection.line,quantitative_value:0 +msgid "Quantitative value" +msgstr "Kvantitativna vrednost" + +#. module: quality_control +#: field:qc.inspection,qty:0 +msgid "Quantity" +msgstr "Količina" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +#: field:qc.inspection.line,name:0 +msgid "Question" +msgstr "Vprašanje" + +#. module: quality_control +#: field:qc.inspection.line,question_type:0 +msgid "Question type" +msgstr "Tip vprašanja" + +#. module: quality_control +#: view:qc.test.question:quality_control.qc_test_question_form_view +msgid "Question value" +msgstr "Vrednost vprašanja" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +#: view:qc.test:quality_control.qc_test_form_view field:qc.test,test_lines:0 +msgid "Questions" +msgstr "Vprašanja" + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Ready" +msgstr "Pripravljeno" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,object_id:0 +msgid "Reference" +msgstr "Sklic" + +#. module: quality_control +#: field:qc.test,object_id:0 +msgid "Reference object" +msgstr "Objekt sklica" + +#. module: quality_control +#: model:qc.test.category,name:quality_control.qc_test_template_category_referenced +msgid "Referenced" +msgstr "Sklicano" + +#. module: quality_control +#: selection:qc.test,type:0 +msgid "Related" +msgstr "Povezano" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,user:0 field:qc.trigger.line,user:0 +#: field:qc.trigger.product_category_line,user:0 +#: field:qc.trigger.product_line,user:0 +#: field:qc.trigger.product_template_line,user:0 +msgid "Responsible" +msgstr "Odgovoren" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +msgid "Search inspection" +msgstr "Iskalnik inšpekcij" + +#. module: quality_control +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Search inspection line" +msgstr "Iskalnik inšpekcijskih postavk" + +#. module: quality_control +#: model:res.groups,name:quality_control.group_quality_control_user +msgid "See Own Inspections" +msgstr "Prikaz častnih inšpekcij" + +#. module: quality_control +#: model:ir.actions.act_window,name:quality_control.action_qc_inspection_set_test +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "Select test" +msgstr "Izbira testiranja" + +#. module: quality_control +#: field:qc.trigger,partner_selectable:0 +msgid "Selectable by partner" +msgstr "Izbira po partnerju" + +#. module: quality_control +#: field:qc.test.question,sequence:0 +msgid "Sequence" +msgstr "Zaporedje" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_form_view +msgid "Set test" +msgstr "Nastavitev testiranja" + +#. module: quality_control +#: model:qc.test.question,name:quality_control.qc_test_question_2 +msgid "Size" +msgstr "Velikost" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,state:0 +msgid "State" +msgstr "Stanje" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,success:0 +#: view:qc.inspection.line:quality_control.qc_inspection_line_search_view +msgid "Success" +msgstr "Uspeh" + +#. module: quality_control +#: field:qc.inspection.line,success:0 +msgid "Success?" +msgstr "Uspešno?" + +#. module: quality_control +#: field:qc.inspection,message_summary:0 +msgid "Summary" +msgstr "Povzetek" + +#. module: quality_control +#: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,test:0 field:qc.inspection.set.test,test:0 +#: view:qc.test:quality_control.qc_test_form_view +#: field:qc.test.question,test:0 field:qc.trigger.line,test:0 +#: field:qc.trigger.product_category_line,test:0 +#: field:qc.trigger.product_line,test:0 +#: field:qc.trigger.product_template_line,test:0 +msgid "Test" +msgstr "Testiranje" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_id:0 +msgid "Test UoM" +msgstr "EM testiranja" + +#. 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 +#: view:qc.test.category:quality_control.qc_test_category_tree_view +msgid "Test categories" +msgstr "Kategorije testiranja" + +#. module: quality_control +#: model:ir.model,name:quality_control.model_qc_test_category +msgid "Test category" +msgstr "Kategorija testiranja" + +#. module: quality_control +#: field:qc.inspection.line,test_line:0 +#: view:qc.test.question:quality_control.qc_test_question_form_view +#: field:qc.test.question.value,test_line:0 +msgid "Test question" +msgstr "Vprašanje testiranja" + +#. 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 +#: view:qc.test:quality_control.qc_test_tree_view +msgid "Tests" +msgstr "Testiranja" + +#. module: quality_control +#: code:addons/quality_control/models/qc_test.py:56 +#, python-format +msgid "There isn't any value with OK marked. You have to mark at least one." +msgstr "Nobena vrednost ni označena za OK. Označiti morate vsaj eno." + +#. module: quality_control +#: help:qc.test.category,active:0 +msgid "This field allows you to hide the category without removing it." +msgstr "To polje omogoča skrivanje kategorije brez brisanja." + +#. module: quality_control +#: help:qc.inspection,success:0 +msgid "This field will be marked if all tests have been succeeded." +msgstr "To polje bo označeno, če bodo vsa testiranja uspešna." + +#. module: quality_control +#: help:qc.trigger,partner_selectable:0 +msgid "This technical field is to allow to filter by partner in triggers" +msgstr "Tehnično polje za omogočanje filtriranja po partnerju v sprožilcih" + +#. module: quality_control +#: field:qc.trigger.line,trigger:0 +#: field:qc.trigger.product_category_line,trigger:0 +#: field:qc.trigger.product_line,trigger:0 +#: field:qc.trigger.product_template_line,trigger:0 +msgid "Trigger" +msgstr "Sprožilec" + +#. module: quality_control +#: field:qc.test,type:0 field:qc.test.question,type:0 +msgid "Type" +msgstr "Tip" + +#. module: quality_control +#: field:qc.inspection.line,test_uom_category:0 +msgid "Unit of Measure Category" +msgstr "Kategorija merske enote" + +#. module: quality_control +#: field:qc.inspection,message_unread:0 +msgid "Unread Messages" +msgstr "Neprebrana sporočila" + +#. module: quality_control +#: field:qc.inspection.line,uom_id:0 +msgid "UoM" +msgstr "EM" + +#. module: quality_control +#: help:qc.inspection.line,test_uom_id:0 +msgid "UoM for minimum and maximum values if it's a quantitative question." +msgstr "EM za minimalne in maksimalne vrednosti kvantitativnih vprašanj." + +#. module: quality_control +#: help:qc.inspection.line,uom_id:0 +msgid "UoM of the inspection value if it's a quantitative question." +msgstr "EM za vrednosti inšpekcij pri kvantitativnih vprašanjih." + +#. module: quality_control +#: field:qc.test.question,uom_id:0 +msgid "Uom" +msgstr "EM" + +#. module: quality_control +#: field:qc.inspection.line,valid_values:0 +msgid "Valid values" +msgstr "Veljavne vrednosti" + +#. module: quality_control +#: help:qc.inspection.line,qualitative_value:0 +msgid "Value of the result if it's a qualitative question." +msgstr "Vrednost rezultata kvalitativnega vprašanja." + +#. module: quality_control +#: help:qc.inspection.line,quantitative_value:0 +msgid "Value of the result if it's a quantitative question." +msgstr "Vrednost rezultata kvantitativnega vprašanja." + +#. module: quality_control +#: selection:qc.inspection,state:0 +msgid "Waiting supervisor approval" +msgstr "Čakanje nadzornikove odobritve" + +#. module: quality_control +#: help:qc.test.question.value,ok:0 +msgid "When this field is marked, the answer is considered correct." +msgstr "Ko je to polje označeno, se odgovor smatra za pravilen." + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:97 +#, python-format +msgid "You cannot remove an auto-generated inspection" +msgstr "Ne morete odstraniti samodejno ustvarjene inšpekcije" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:100 +#, python-format +msgid "You cannot remove an inspection that it's not in draft state" +msgstr "Ne morete odstraniti inšpekcije, ki ni v stanju 'osnutek'" + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:113 +#, python-format +msgid "You must set the test to perform first." +msgstr "Najprej določite testiranje, ki se bo izvedlo." + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:128 +#, python-format +msgid "You should provide a unit of measure for quantitative questions." +msgstr "Določite EM za kvalitativna vprašanja." + +#. module: quality_control +#: code:addons/quality_control/models/qc_inspection.py:123 +#, python-format +msgid "You should provide an answer for all qualitative questions." +msgstr "Določiti morate en odgovor za vsa kvalitativna vprašanja." + +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "or" +msgstr "ali" diff --git a/quality_control/models/__init__.py b/quality_control/models/__init__.py new file mode 100644 index 000000000..aec418acc --- /dev/null +++ b/quality_control/models/__init__.py @@ -0,0 +1,13 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## + +from . import qc_trigger +from . import qc_trigger_line +from . import qc_test_category +from . import qc_test +from . import qc_inspection +from . import product_product +from . import product_template +from . import product_category diff --git a/quality_control/models/product_category.py b/quality_control/models/product_category.py new file mode 100644 index 000000000..5cf22ff99 --- /dev/null +++ b/quality_control/models/product_category.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +class ProductCategory(models.Model): + _inherit = "product.category" + + qc_triggers = fields.One2many( + comodel_name="qc.trigger.product_category_line", + inverse_name="product_category", + string="Quality control triggers") diff --git a/quality_control/models/product_product.py b/quality_control/models/product_product.py new file mode 100644 index 000000000..8eca86385 --- /dev/null +++ b/quality_control/models/product_product.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +class ProductProduct(models.Model): + _inherit = "product.product" + + qc_triggers = fields.One2many( + comodel_name="qc.trigger.product_line", inverse_name="product", + string="Quality control triggers") diff --git a/quality_control/models/product_template.py b/quality_control/models/product_template.py new file mode 100644 index 000000000..de2641c37 --- /dev/null +++ b/quality_control/models/product_template.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + qc_triggers = fields.One2many( + comodel_name="qc.trigger.product_template_line", + inverse_name="product_template", + string="Quality control triggers") diff --git a/quality_control/models/qc_inspection.py b/quality_control/models/qc_inspection.py new file mode 100644 index 000000000..fe307610c --- /dev/null +++ b/quality_control/models/qc_inspection.py @@ -0,0 +1,299 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields, api, exceptions, _ + + +class QcInspection(models.Model): + _name = 'qc.inspection' + _description = 'Quality control inspection' + _inherit = ['mail.thread', 'ir.needaction_mixin'] + + @api.one + @api.depends('inspection_lines', 'inspection_lines.success') + def _success(self): + self.success = all([x.success for x in self.inspection_lines]) + + @api.multi + def _links_get(self): + link_obj = self.env['res.request.link'] + return [(r.object, r.name) for r in link_obj.search([])] + + @api.one + @api.depends('object_id') + def _get_product(self): + if self.object_id and self.object_id._name == 'product.product': + self.product = self.object_id + else: + self.product = False + + @api.one + @api.depends('object_id') + def _get_qty(self): + self.qty = 1.0 + + name = fields.Char( + string='Inspection number', required=True, default='/', select=True, + 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) + object_id = fields.Reference( + string='Reference', selection=_links_get, readonly=True, + states={'draft': [('readonly', False)]}, ondelete="set null") + product = fields.Many2one( + comodel_name="product.product", compute="_get_product", store=True, + help="Product associated with the inspection") + qty = fields.Float(string="Quantity", compute="_get_qty", store=True) + test = fields.Many2one( + comodel_name='qc.test', string='Test', readonly=True, select=True) + inspection_lines = fields.One2many( + comodel_name='qc.inspection.line', inverse_name='inspection_id', + string='Inspection lines', readonly=True, + states={'ready': [('readonly', False)]}) + internal_notes = fields.Text(string='Internal notes') + external_notes = fields.Text( + string='External notes', + states={'success': [('readonly', True)], + 'failed': [('readonly', True)]}) + state = fields.Selection( + [('draft', 'Draft'), + ('ready', 'Ready'), + ('waiting', 'Waiting supervisor approval'), + ('success', 'Quality success'), + ('failed', 'Quality failed'), + ('canceled', 'Canceled')], + string='State', readonly=True, default='draft') + 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 ' + 'removed.') + company_id = fields.Many2one( + comodel_name='res.company', string='Company', readonly=True, + states={'draft': [('readonly', False)]}, + default=lambda self: self.env['res.company']._company_default_get( + 'qc.inspection')) + user = fields.Many2one( + comodel_name='res.users', string='Responsible', + track_visibility='always', default=lambda self: self.env.user) + + @api.model + def create(self, vals): + if vals.get('name', '/') == '/': + vals['name'] = self.env['ir.sequence'].get('qc.inspection') + return super(QcInspection, self).create(vals) + + @api.multi + def unlink(self): + for inspection in self: + if inspection.auto_generated: + raise exceptions.Warning( + _("You cannot remove an auto-generated inspection.")) + if inspection.state != 'draft': + raise exceptions.Warning( + _("You cannot remove an inspection that is not in draft " + "state.")) + return super(QcInspection, self).unlink() + + @api.multi + def action_draft(self): + self.write({'state': 'draft'}) + + @api.multi + def action_todo(self): + for inspection in self: + if not inspection.test: + raise exceptions.Warning( + _("You must first set the test to perform.")) + self.write({'state': 'ready'}) + + @api.multi + def action_confirm(self): + for inspection in self: + for line in inspection.inspection_lines: + if line.question_type == 'qualitative': + if not line.qualitative_value: + raise exceptions.Warning( + _("You should provide an answer for all " + "qualitative questions.")) + else: + if not line.uom_id: + raise exceptions.Warning( + _("You should provide a unit of measure for " + "quantitative questions.")) + if inspection.success: + inspection.state = 'success' + else: + inspection.state = 'waiting' + + @api.multi + def action_approve(self): + for inspection in self: + if inspection.success: + inspection.state = 'success' + else: + inspection.state = 'failed' + + @api.multi + def action_cancel(self): + self.write({'state': 'canceled'}) + + @api.multi + def set_test(self, trigger_line, force_fill=False): + for inspection in self: + header = self._prepare_inspection_header( + inspection.object_id, trigger_line) + del header['state'] # don't change current status + del header['auto_generated'] # don't change auto_generated flag + del header['user'] # don't change current user + inspection.write(header) + inspection.inspection_lines.unlink() + inspection.inspection_lines = inspection._prepare_inspection_lines( + trigger_line.test, force_fill=force_fill) + + @api.multi + def _make_inspection(self, object_ref, trigger_line): + """Overridable hook method for creating inspection from test. + :param object_ref: Object instance + :param trigger_line: Trigger line instance + :return: Inspection object + """ + inspection = self.create(self._prepare_inspection_header( + object_ref, trigger_line)) + inspection.set_test(trigger_line) + return inspection + + @api.multi + def _prepare_inspection_header(self, object_ref, trigger_line): + """Overridable hook method for preparing inspection header. + :param object_ref: Object instance + :param trigger_line: Trigger line instance + :return: List of values for creating the inspection + """ + return { + 'object_id': object_ref and '%s,%s' % (object_ref._name, + object_ref.id) or False, + 'state': 'ready', + 'test': trigger_line.test.id, + 'user': trigger_line.user.id, + 'auto_generated': True, + } + + @api.multi + def _prepare_inspection_lines(self, test, force_fill=False): + new_data = [] + for line in test.test_lines: + data = self._prepare_inspection_line( + test, line, fill=test.fill_correct_values or force_fill) + new_data.append((0, 0, data)) + return new_data + + @api.multi + def _prepare_inspection_line(self, test, line, fill=None): + data = { + 'name': line.name, + 'test_line': line.id, + 'notes': line.notes, + 'min_value': line.min_value, + 'max_value': line.max_value, + 'test_uom_id': line.uom_id.id, + 'uom_id': line.uom_id.id, + 'question_type': line.type, + 'possible_ql_values': [x.id for x in line.ql_values] + } + if fill: + if line.type == 'qualitative': + # Fill with the first correct value found + for value in line.ql_values: + if value.ok: + data['qualitative_value'] = value.id + break + else: + # Fill with a value inside the interval + data['quantitative_value'] = (line.min_value + + line.max_value) * 0.5 + return data + + +class QcInspectionLine(models.Model): + _name = 'qc.inspection.line' + _description = "Quality control inspection line" + + @api.one + @api.depends('question_type', 'uom_id', 'test_uom_id', 'max_value', + 'min_value', 'quantitative_value', 'qualitative_value', + 'possible_ql_values') + def quality_test_check(self): + if self.question_type == 'qualitative': + self.success = self.qualitative_value.ok + else: + 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, + self.test_uom_id.id) + self.success = self.max_value >= amount >= self.min_value + + @api.one + @api.depends('possible_ql_values', 'min_value', 'max_value', 'test_uom_id', + 'question_type') + def get_valid_values(self): + if self.question_type == 'qualitative': + 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) + if self.env.ref("product.group_uom") in self.env.user.groups_id: + self.valid_values += " %s" % self.test_uom_id.name + + inspection_id = fields.Many2one( + comodel_name='qc.inspection', string='Inspection') + name = fields.Char(string="Question", readonly=True) + product = fields.Many2one( + comodel_name="product.product", related="inspection_id.product", + store=True) + test_line = fields.Many2one( + comodel_name='qc.test.question', string='Test question', + readonly=True) + possible_ql_values = fields.Many2many( + comodel_name='qc.test.question.value', string='Answers') + quantitative_value = fields.Float( + 'Quantitative value', digits=(16, 5), + help="Value of the result for a quantitative question.") + qualitative_value = fields.Many2one( + comodel_name='qc.test.question.value', string='Qualitative value', + help="Value of the result for a qualitative question.", + domain="[('id', 'in', possible_ql_values[0][2])]") + notes = fields.Text(string='Notes') + min_value = fields.Float( + string='Min', digits=(16, 5), readonly=True, + help="Minimum valid value for a quantitative question.") + max_value = fields.Float( + string='Max', digits=(16, 5), readonly=True, + help="Maximum valid value for a quantitative question.") + test_uom_id = fields.Many2one( + comodel_name='product.uom', string='Test UoM', readonly=True, + help="UoM for minimum and maximum values for a quantitative " + "question.") + test_uom_category = fields.Many2one( + comodel_name="product.uom.categ", related="test_uom_id.category_id", + store=True) + uom_id = fields.Many2one( + comodel_name='product.uom', string='UoM', + domain="[('category_id', '=', test_uom_category)]", + help="UoM of the inspection value for a quantitative question.") + question_type = fields.Selection( + [('qualitative', 'Qualitative'), + ('quantitative', 'Quantitative')], + string='Question type', readonly=True) + valid_values = fields.Char(string="Valid values", store=True, + compute="get_valid_values") + success = fields.Boolean( + compute="quality_test_check", string="Success?", store=True) diff --git a/quality_control/models/qc_test.py b/quality_control/models/qc_test.py new file mode 100644 index 000000000..0868d5226 --- /dev/null +++ b/quality_control/models/qc_test.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields, api, exceptions, _ + + +class QcTest(models.Model): + """ + A test is a group of questions along with the values that make them valid. + """ + _name = 'qc.test' + _description = 'Quality control test' + + @api.multi + def _links_get(self): + link_obj = self.env['res.request.link'] + return [(r.object, r.name) for r in link_obj.search([])] + + active = fields.Boolean('Active', default=True) + name = fields.Char( + string='Name', required=True, translate=True, select=True) + test_lines = fields.One2many( + comodel_name='qc.test.question', inverse_name='test', + string='Questions', copy=True) + object_id = fields.Reference( + string='Reference object', selection=_links_get,) + fill_correct_values = fields.Boolean( + string='Pre-fill with correct values') + type = fields.Selection( + [('generic', 'Generic'), + ('related', 'Related')], + string='Type', select=True, required=True, default='generic') + category = fields.Many2one( + comodel_name='qc.test.category', string='Category') + company_id = fields.Many2one( + comodel_name='res.company', string='Company', + default=lambda self: self.env['res.company']._company_default_get( + 'qc.test')) + + +class QcTestQuestion(models.Model): + """Each test line is a question with its valid value(s).""" + _name = 'qc.test.question' + _description = 'Quality control question' + _order = 'sequence, id' + + @api.one + @api.constrains('ql_values') + 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.")) + + @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.")) + + 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) + type = fields.Selection( + [('qualitative', 'Qualitative'), + ('quantitative', 'Quantitative')], string='Type', required=True) + ql_values = fields.One2many( + comodel_name='qc.test.question.value', inverse_name="test_line", + string='Qualitative values', copy=True) + notes = fields.Text(string='Notes') + min_value = fields.Float(string='Min', digits=(16, 5)) + max_value = fields.Float(string='Max', digits=(15, 5)) + uom_id = fields.Many2one(comodel_name='product.uom', string='Uom') + + +class QcTestQuestionValue(models.Model): + _name = 'qc.test.question.value' + _description = 'Possible values for qualitative questions.' + + test_line = fields.Many2one( + comodel_name="qc.test.question", string="Test question") + name = fields.Char( + string='Name', required=True, select=True, translate=True) + ok = fields.Boolean( + string='Correct answer?', + help="When this field is marked, the answer is considered correct.") diff --git a/quality_control/models/qc_test_category.py b/quality_control/models/qc_test_category.py new file mode 100644 index 000000000..bdb1bdfc3 --- /dev/null +++ b/quality_control/models/qc_test_category.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields, api, exceptions, _ + + +class QcTestTemplateCategory(models.Model): + _name = 'qc.test.category' + _description = 'Test category' + + @api.one + @api.depends('name', 'parent_id') + def _get_complete_name(self): + names = [self.name] + parent = self.parent_id + while parent: + names.append(parent.name) + parent = parent.parent_id + self.complete_name = " / ".join(reversed(names)) + + @api.constrains('parent_id') + def _check_recursion(self): + ids = self.ids + level = 100 + while ids: + parents = self.search([('id', 'in', ids), + ('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.')) + level -= 1 + + name = fields.Char('Name', required=True, translate=True) + parent_id = fields.Many2one( + comodel_name='qc.test.category', string='Parent category', select=True) + complete_name = fields.Char( + compute="_get_complete_name", string='Full name') + child_ids = fields.One2many( + comodel_name='qc.test.category', inverse_name='parent_id', + string='Child categories') + active = fields.Boolean( + string='Active', default=True, + help="This field allows you to hide the category without removing it.") diff --git a/quality_control/models/qc_trigger.py b/quality_control/models/qc_trigger.py new file mode 100644 index 000000000..208e35e19 --- /dev/null +++ b/quality_control/models/qc_trigger.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +class QcTrigger(models.Model): + _name = 'qc.trigger' + _description = 'Quality control trigger' + + name = fields.Char(string='Name', required=True, select=True, + translate=True) + active = fields.Boolean(string='Active', default=True) + company_id = fields.Many2one( + comodel_name='res.company', string='Company', + default=lambda self: self.env['res.company']._company_default_get( + 'qc.test')) + partner_selectable = fields.Boolean( + string='Selectable by partner', default=False, readonly=True, + help='This technical field is to allow to filter by partner in' + ' triggers') diff --git a/quality_control/models/qc_trigger_line.py b/quality_control/models/qc_trigger_line.py new file mode 100644 index 000000000..629bcb679 --- /dev/null +++ b/quality_control/models/qc_trigger_line.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +def _filter_trigger_lines(trigger_lines): + filtered_trigger_lines = [] + unique_tests = [] + for trigger_line in trigger_lines: + if trigger_line.test not in unique_tests: + filtered_trigger_lines.append(trigger_line) + unique_tests.append(trigger_line.test) + return filtered_trigger_lines + + +class QcTriggerLine(models.AbstractModel): + _name = "qc.trigger.line" + _description = "Abstract line for defining triggers" + + trigger = fields.Many2one(comodel_name="qc.trigger", required=True) + test = fields.Many2one(comodel_name="qc.test", required=True) + user = fields.Many2one( + comodel_name='res.users', string='Responsible', + track_visibility='always', default=lambda self: self.env.user) + partners = fields.Many2many( + comodel_name='res.partner', string='Partners', + help='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.', domain="[('parent_id', '=', False)]") + + def get_trigger_line_for_product(self, trigger, product, partner=False): + """Overridable method for getting trigger_line associated to a product. + Each inherited model will complete this module to make the search by + product, template or category. + :param trigger: Trigger instance. + :param product: Product instance. + :return: Set of trigger_lines that matches to the given product and + trigger. + """ + return set() + + +class QcTriggerProductCategoryLine(models.Model): + _inherit = "qc.trigger.line" + _name = "qc.trigger.product_category_line" + + product_category = fields.Many2one(comodel_name="product.category") + + def get_trigger_line_for_product(self, trigger, product, partner=False): + trigger_lines = super( + QcTriggerProductCategoryLine, + self).get_trigger_line_for_product(trigger, product, + partner=partner) + category = product.categ_id + while category: + for trigger_line in category.qc_triggers.filtered( + lambda r: r.trigger == trigger and ( + not r.partners or not partner or + partner.commercial_partner_id in r.partners)): + trigger_lines.add(trigger_line) + category = category.parent_id + return trigger_lines + + +class QcTriggerProductTemplateLine(models.Model): + _inherit = "qc.trigger.line" + _name = "qc.trigger.product_template_line" + + product_template = fields.Many2one(comodel_name="product.template") + + def get_trigger_line_for_product(self, trigger, product, partner=False): + trigger_lines = super( + QcTriggerProductTemplateLine, + self).get_trigger_line_for_product(trigger, product, + partner=partner) + for trigger_line in product.product_tmpl_id.qc_triggers.filtered( + lambda r: r.trigger == trigger and ( + not r.partners or not partner or + partner.commercial_partner_id in r.partners)): + trigger_lines.add(trigger_line) + return trigger_lines + + +class QcTriggerProductLine(models.Model): + _inherit = "qc.trigger.line" + _name = "qc.trigger.product_line" + + product = fields.Many2one(comodel_name="product.product") + + def get_trigger_line_for_product(self, trigger, product, partner=False): + trigger_lines = super( + QcTriggerProductLine, + self).get_trigger_line_for_product(trigger, product, + partner=partner) + for trigger_line in product.qc_triggers.filtered( + lambda r: r.trigger == trigger and ( + not r.partners or not partner or + partner.commercial_partner_id in r.partners)): + trigger_lines.add(trigger_line) + return trigger_lines diff --git a/quality_control/security/ir.model.access.csv b/quality_control/security/ir.model.access.csv new file mode 100644 index 000000000..16a06efc0 --- /dev/null +++ b/quality_control/security/ir.model.access.csv @@ -0,0 +1,18 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_user_qc_inspection,qc_inspection,quality_control.model_qc_inspection,quality_control.group_quality_control_user,1,1,1,1 +access_user_qc_inspection_line,qc_inspection_line,quality_control.model_qc_inspection_line,quality_control.group_quality_control_user,1,1,1,1 +access_user_qc_test,qc_test user,quality_control.model_qc_test,quality_control.group_quality_control_user,1,0,0,0 +access_user_qc_test_question,qc_test_question user,quality_control.model_qc_test_question,quality_control.group_quality_control_user,1,0,0,0 +access_user_qc_test_question_value,qc_test_question_value_user,quality_control.model_qc_test_question_value,quality_control.group_quality_control_user,1,0,0,0 +access_manager_qc_test,qc_test manager,quality_control.model_qc_test,quality_control.group_quality_control_manager,1,1,1,1 +access_manager_qc_test_question,qc_test_question manager,quality_control.model_qc_test_question,quality_control.group_quality_control_manager,1,1,1,1 +access_manager_qc_test_question_value,qc_test_question_value,quality_control.model_qc_test_question_value,quality_control.group_quality_control_manager,1,1,1,1 +access_manager_qc_test_category,qc_test_category,quality_control.model_qc_test_category,quality_control.group_quality_control_manager,1,1,1,1 +access_manager_qc_trigger_user,qc_trigger user,quality_control.model_qc_trigger,quality_control.group_quality_control_user,1,0,0,0 +access_manager_qc_trigger_manager,qc_trigger manager,quality_control.model_qc_trigger,quality_control.group_quality_control_manager,1,1,1,1 +access_manager_qc_trigger_product_category_line_user,qc_trigger product_category line user,quality_control.model_qc_trigger_product_category_line,quality_control.group_quality_control_user,1,0,0,0 +access_manager_qc_trigger_product_category_line_manager,qc_trigger product_category line manager,quality_control.model_qc_trigger_product_category_line,quality_control.group_quality_control_manager,1,1,1,1 +access_manager_qc_trigger_product_template_line_user,qc_trigger product_template line user,quality_control.model_qc_trigger_product_template_line,,1,0,0,0 +access_manager_qc_trigger_product_template_line_manager,qc_trigger product_template line manager,quality_control.model_qc_trigger_product_template_line,quality_control.group_quality_control_manager,1,1,1,1 +access_manager_qc_trigger_product_line_user,qc_trigger product line user,quality_control.model_qc_trigger_product_line,,1,0,0,0 +access_manager_qc_trigger_product_line_manager,qc_trigger product line manager,quality_control.model_qc_trigger_product_line,quality_control.group_quality_control_manager,1,1,1,1 diff --git a/quality_control/security/quality_control_security.xml b/quality_control/security/quality_control_security.xml new file mode 100644 index 000000000..57bca9d5e --- /dev/null +++ b/quality_control/security/quality_control_security.xml @@ -0,0 +1,43 @@ + + + + + + Quality control + + + + User + + + + + Manager + + + + + + + Quality control test multi-company + + + ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] + + + + Quality control inspection multi-company + + + ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] + + + + Quality control trigger multi-company + + + ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])] + + + + diff --git a/quality_control/static/description/icon.png b/quality_control/static/description/icon.png new file mode 100644 index 000000000..e0aa80bce Binary files /dev/null and b/quality_control/static/description/icon.png differ diff --git a/quality_control/static/description/icon.svg b/quality_control/static/description/icon.svg new file mode 100644 index 000000000..1c275d282 --- /dev/null +++ b/quality_control/static/description/icon.svg @@ -0,0 +1,95 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/quality_control/tests/__init__.py b/quality_control/tests/__init__.py new file mode 100644 index 000000000..895a14512 --- /dev/null +++ b/quality_control/tests/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Oihane Crucelaegui - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import test_quality_control diff --git a/quality_control/tests/test_quality_control.py b/quality_control/tests/test_quality_control.py new file mode 100644 index 000000000..e2e9dd442 --- /dev/null +++ b/quality_control/tests/test_quality_control.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Oihane Crucelaegui - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from openerp.tests.common import TransactionCase +from openerp import exceptions +from ..models.qc_trigger_line import\ + _filter_trigger_lines + + +class TestQualityControl(TransactionCase): + + def setUp(self): + super(TestQualityControl, self).setUp() + self.inspection_model = self.env['qc.inspection'] + self.category_model = self.env['qc.test.category'] + self.question_model = self.env['qc.test.question'] + self.wizard_model = self.env['qc.inspection.set.test'] + self.qc_trigger = self.env['qc.trigger'].create({ + 'name': 'Test Trigger', + 'active': True, + }) + self.test = self.env.ref('quality_control.qc_test_1') + self.val_ok = self.env.ref('quality_control.qc_test_question_value_1') + self.val_ko = self.env.ref('quality_control.qc_test_question_value_2') + self.qn_question = self.env.ref('quality_control.qc_test_question_2') + self.cat_generic = self.env.ref( + 'quality_control.qc_test_template_category_generic') + self.product = self.env.ref('product.product_product_11') + inspection_lines = ( + self.inspection_model._prepare_inspection_lines(self.test)) + self.inspection1 = self.inspection_model.create({ + 'name': 'Test Inspection', + 'inspection_lines': inspection_lines, + }) + self.wizard = self.wizard_model.with_context( + active_id=self.inspection1.id).create({ + 'test': self.test.id, + }) + self.wizard.action_create_test() + self.inspection1.action_todo() + + def test_inspection_correct(self): + for line in self.inspection1.inspection_lines: + if line.question_type == 'qualitative': + line.qualitative_value = self.val_ok + if line.question_type == 'quantitative': + line.quantitative_value = 5.0 + self.inspection1.action_confirm() + for line in self.inspection1.inspection_lines: + self.assertTrue( + line.success, + 'Incorrect state in inspection line %s' % line.name) + self.assertTrue( + self.inspection1.success, + 'Incorrect state in inspection %s' % self.inspection1.name) + self.assertEquals(self.inspection1.state, 'success') + self.inspection1.action_approve() + self.assertEquals(self.inspection1.state, 'success') + + def test_inspection_incorrect(self): + for line in self.inspection1.inspection_lines: + if line.question_type == 'qualitative': + line.qualitative_value = self.val_ko + if line.question_type == 'quantitative': + line.quantitative_value = 15.0 + self.inspection1.action_confirm() + for line in self.inspection1.inspection_lines: + self.assertFalse( + line.success, + 'Incorrect state in inspection line %s' % line.name) + self.assertFalse( + self.inspection1.success, + 'Incorrect state in inspection %s' % self.inspection1.name) + self.assertEquals(self.inspection1.state, 'waiting') + self.inspection1.action_approve() + self.assertEquals(self.inspection1.state, 'failed') + + def test_actions_errors(self): + inspection2 = self.inspection1.copy() + inspection2.action_draft() + inspection2.write({'test': False}) + with self.assertRaises(exceptions.Warning): + inspection2.action_todo() + inspection3 = self.inspection1.copy() + inspection3.write({ + 'inspection_lines': + self.inspection_model._prepare_inspection_lines(inspection3.test) + }) + for line in inspection3.inspection_lines: + if line.question_type == 'quantitative': + line.quantitative_value = 15.0 + with self.assertRaises(exceptions.Warning): + inspection3.action_confirm() + inspection4 = self.inspection1.copy() + inspection4.write({ + 'inspection_lines': + self.inspection_model._prepare_inspection_lines(inspection4.test) + }) + for line in inspection4.inspection_lines: + if line.question_type == 'quantitative': + line.write({ + 'uom_id': False, + 'quantitative_value': 15.0, + }) + elif line.question_type == 'qualitative': + line.qualitative_value = self.val_ok + with self.assertRaises(exceptions.Warning): + inspection4.action_confirm() + + def test_categories(self): + category1 = self.category_model.create({ + 'name': 'Category ONE', + }) + category2 = self.category_model.create({ + 'name': 'Category TWO', + 'parent_id': category1.id, + }) + self.assertEquals( + category2.complete_name, + '%s / %s' % (category1.name, category2.name), + 'Something went wrong when computing complete name') + with self.assertRaises(exceptions.ValidationError): + category1.parent_id = category2.id + + def test_get_qc_trigger_product(self): + self.test.write({ + 'fill_correct_values': True, + }) + trigger_lines = set() + self.product.write({ + 'qc_triggers': [(0, 0, {'trigger': self.qc_trigger.id, + 'test': self.test.id})], + }) + self.product.product_tmpl_id.write({ + 'qc_triggers': [(0, 0, {'trigger': self.qc_trigger.id, + 'test': self.test.id})], + }) + self.product.categ_id.write({ + 'qc_triggers': [(0, 0, {'trigger': self.qc_trigger.id, + 'test': self.test.id})], + }) + for model in ['qc.trigger.product_category_line', + 'qc.trigger.product_template_line', + 'qc.trigger.product_line']: + trigger_lines = trigger_lines.union( + self.env[model].get_trigger_line_for_product( + self.qc_trigger, self.product)) + self.assertEquals(len(trigger_lines), 3) + filtered_trigger_lines = _filter_trigger_lines(trigger_lines) + self.assertEquals(len(filtered_trigger_lines), 1) + for trigger_line in filtered_trigger_lines: + inspection = self.inspection_model._make_inspection( + self.product, trigger_line) + self.assertEquals(inspection.state, 'ready') + self.assertTrue(inspection.auto_generated) + self.assertEquals(inspection.test, self.test) + for line in inspection.inspection_lines: + if line.question_type == 'qualitative': + self.assertEquals(line.qualitative_value, self.val_ok) + elif line.question_type == 'quantitative': + self.assertEquals( + round(line.quantitative_value, 2), round(( + self.qn_question.min_value + + self.qn_question.max_value) * 0.5, 2)) + + def test_qc_inspection_not_draft_unlink(self): + with self.assertRaises(exceptions.Warning): + self.inspection1.unlink() + inspection2 = self.inspection1.copy() + inspection2.action_cancel() + self.assertEquals(inspection2.state, 'canceled') + inspection2.action_draft() + self.assertEquals(inspection2.state, 'draft') + inspection2.unlink() + + def test_qc_inspection_auto_generate_unlink(self): + inspection2 = self.inspection1.copy() + inspection2.write({ + 'auto_generated': True, + }) + with self.assertRaises(exceptions.Warning): + inspection2.unlink() + + def test_qc_inspection_product(self): + self.inspection1.write({ + 'object_id': '%s,%d' % (self.product._model, self.product.id), + }) + self.assertEquals(self.inspection1.product, + self.product) + + def test_qc_test_question_constraints(self): + with self.assertRaises(exceptions.ValidationError): + self.question_model.create({ + 'name': 'Quantitative Question', + 'type': 'quantitative', + 'min_value': 1.0, + 'max_value': 0.0, + }) + with self.assertRaises(exceptions.ValidationError): + self.question_model.create({ + 'name': 'Qualitative Question', + 'type': 'qualitative', + 'ql_values': [(0, 0, {'name': 'Qualitative answer', + 'ok': False})], + }) diff --git a/quality_control/views/product_category_view.xml b/quality_control/views/product_category_view.xml new file mode 100644 index 000000000..79ef57ef9 --- /dev/null +++ b/quality_control/views/product_category_view.xml @@ -0,0 +1,26 @@ + + + + + + product.category.qc + product.category + + + + + + + + + + + + + + + + + + + diff --git a/quality_control/views/product_template_view.xml b/quality_control/views/product_template_view.xml new file mode 100644 index 000000000..3eb7082f1 --- /dev/null +++ b/quality_control/views/product_template_view.xml @@ -0,0 +1,26 @@ + + + + + + product.template.qc + product.template + + + + + + + + + + + + + + + + + + + diff --git a/quality_control/views/qc_inspection_view.xml b/quality_control/views/qc_inspection_view.xml new file mode 100644 index 000000000..c7b5a2e7f --- /dev/null +++ b/quality_control/views/qc_inspection_view.xml @@ -0,0 +1,251 @@ + + + + + + qc.inspection.form + qc.inspection + +
+
+
+ +
+
+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+ + + qc.inspection.tree + qc.inspection + + + + + + + + + + + + + + qc.inspection.search + qc.inspection + + + + + + + + + + + + + + + + + + + + + + + + + + + + Inspections + qc.inspection + form + tree,form + + + + + + qc.inspection.line.tree + qc.inspection.line + + + + + + + + + + + + + + + + + + + qc.inspection.line.search + qc.inspection.line + + + + + + + + + + + + + + + + + + + + + + + + Inspection lines + qc.inspection.line + form + tree + + + +
+
+ diff --git a/quality_control/views/qc_menus.xml b/quality_control/views/qc_menus.xml new file mode 100644 index 000000000..91e115f75 --- /dev/null +++ b/quality_control/views/qc_menus.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + diff --git a/quality_control/views/qc_test_category_view.xml b/quality_control/views/qc_test_category_view.xml new file mode 100644 index 000000000..94765388b --- /dev/null +++ b/quality_control/views/qc_test_category_view.xml @@ -0,0 +1,33 @@ + + + + + + qc.test.category.tree + qc.test.category + + + + + + + + + + + + Test categories + qc.test.category + form + tree,form + + + + + + diff --git a/quality_control/views/qc_test_view.xml b/quality_control/views/qc_test_view.xml new file mode 100644 index 000000000..2a255f28b --- /dev/null +++ b/quality_control/views/qc_test_view.xml @@ -0,0 +1,128 @@ + + + + + + qc.test.form + qc.test + +
+ + +
+
+
+ + + qc.test.tree + qc.test + + + + + + + + + + + + + Tests + qc.test + form + tree,form + + + + qc.test.question.form + qc.test.question + +
+
+ + + +
+
+ diff --git a/quality_control/views/qc_trigger_view.xml b/quality_control/views/qc_trigger_view.xml new file mode 100644 index 000000000..9c39b965e --- /dev/null +++ b/quality_control/views/qc_trigger_view.xml @@ -0,0 +1,35 @@ + + + + + + qc.trigger.form + qc.trigger + +
+ + + + + + + + +
+
+
+ + + qc.trigger.tree + qc.trigger + + + + + + + + +
+
+ diff --git a/quality_control/wizard/__init__.py b/quality_control/wizard/__init__.py new file mode 100644 index 000000000..64c91e557 --- /dev/null +++ b/quality_control/wizard/__init__.py @@ -0,0 +1,5 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from . import qc_test_wizard diff --git a/quality_control/wizard/qc_test_wizard.py b/quality_control/wizard/qc_test_wizard.py new file mode 100644 index 000000000..8b32112cd --- /dev/null +++ b/quality_control/wizard/qc_test_wizard.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields, api + + +class QcInspectionSetTest(models.TransientModel): + """This wizard is used to preset the test for a given + inspection. This will not only fill in the 'test' field, but will + also fill in all lines of the inspection with the corresponding lines of + the template. + """ + _name = 'qc.inspection.set.test' + + test = fields.Many2one(comodel_name='qc.test', string='Test') + + @api.multi + def action_create_test(self): + inspection = self.env['qc.inspection'].browse( + self.env.context['active_id']) + inspection.test = self.test + inspection.inspection_lines.unlink() + inspection.inspection_lines = inspection._prepare_inspection_lines( + self.test) + return True diff --git a/quality_control/wizard/qc_test_wizard_view.xml b/quality_control/wizard/qc_test_wizard_view.xml new file mode 100644 index 000000000..4c86f4738 --- /dev/null +++ b/quality_control/wizard/qc_test_wizard_view.xml @@ -0,0 +1,36 @@ + + + + + qc.inspection.set.test.form + qc.inspection.set.test + +
+ + + +
+
+
+
+
+ + + Select test + ir.actions.act_window + qc.inspection.set.test + form + form + new + + +
+