Merge pull request #43 from odoomrp/8.0-quality

[8.0][ADD] New module quality_control
This commit is contained in:
Pedro M. Baeza
2015-10-31 11:33:30 +01:00
34 changed files with 4951 additions and 0 deletions

View File

@@ -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 <https://github.com/OCA/manufacture/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback `here <https://github.com/OCA/manufacture/issues/new?body=module:%20quality_control%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Pedro M. Baeza <pedro.baeza@serviciobaeza.com>
* Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
* Ana Juaristi <anajuaristi@avanzosc.es>
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.

View File

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

View File

@@ -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 <pedro.baeza@serviciosbaeza.com>",
"Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>",
"Ana Juaristi <anajuaristi@avanzosc.es>",
],
"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,
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="qc_test_template_category_generic" model="qc.test.category">
<field name="name">Generic</field>
</record>
<record id="qc_test_template_category_referenced" model="qc.test.category">
<field name="name">Referenced</field>
</record>
</data>
<data>
<record id="seq_type_qc_inspection" model="ir.sequence.type">
<field name="name">Quality inspection</field>
<field name="code">qc.inspection</field>
</record>
<record id="seq_qc_inspection" model="ir.sequence">
<field name="name">Quality inspection</field>
<field name="code">qc.inspection</field>
<field name="prefix">QC-</field>
<field name="padding">6</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record model="qc.test" id="qc_test_1">
<field name="name">Generic Test (demo)</field>
<field name="type">generic</field>
<field name="active" eval="True" />
<field name="category" ref="qc_test_template_category_generic" />
</record>
<record model="qc.test.question" id="qc_test_question_1">
<field name="name">Overall quality</field>
<field name="test" ref="qc_test_1" />
<field name="type">qualitative</field>
</record>
<record model="qc.test.question.value" id="qc_test_question_value_1">
<field name="name">Good</field>
<field name="ok" eval="True" />
<field name="test_line" ref="qc_test_question_1" />
</record>
<record model="qc.test.question.value" id="qc_test_question_value_2">
<field name="name">Bad</field>
<field name="ok" eval="False" />
<field name="test_line" ref="qc_test_question_1" />
</record>
<record model="qc.test.question" id="qc_test_question_2">
<field name="name">Size</field>
<field name="test" ref="qc_test_1" />
<field name="type">quantitative</field>
<field name="min_value" eval="1.0" />
<field name="max_value" eval="10.0" />
<field name="uom_id" ref="product.product_uom_unit" />
</record>
</data>
</openerp>

797
quality_control/i18n/es.po Normal file
View File

@@ -0,0 +1,797 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * quality_control
#
# Translators:
# Oihane Crucelaegui <oihanecruce@gmail.com>, 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 <pedro.baeza@gmail.com>\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"

796
quality_control/i18n/fr.po Normal file
View File

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

View File

@@ -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 <danimaribeiro@gmail.com>\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"

797
quality_control/i18n/sl.po Normal file
View File

@@ -0,0 +1,797 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * quality_control
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 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č <m.mozetic@matmoz.si>\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"

View File

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

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

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

View File

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

View File

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

View File

@@ -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')

View File

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

View File

@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_user_qc_inspection qc_inspection quality_control.model_qc_inspection quality_control.group_quality_control_user 1 1 1 1
3 access_user_qc_inspection_line qc_inspection_line quality_control.model_qc_inspection_line quality_control.group_quality_control_user 1 1 1 1
4 access_user_qc_test qc_test user quality_control.model_qc_test quality_control.group_quality_control_user 1 0 0 0
5 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
6 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
7 access_manager_qc_test qc_test manager quality_control.model_qc_test quality_control.group_quality_control_manager 1 1 1 1
8 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
9 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
10 access_manager_qc_test_category qc_test_category quality_control.model_qc_test_category quality_control.group_quality_control_manager 1 1 1 1
11 access_manager_qc_trigger_user qc_trigger user quality_control.model_qc_trigger quality_control.group_quality_control_user 1 0 0 0
12 access_manager_qc_trigger_manager qc_trigger manager quality_control.model_qc_trigger quality_control.group_quality_control_manager 1 1 1 1
13 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
14 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
15 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
16 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
17 access_manager_qc_trigger_product_line_user qc_trigger product line user quality_control.model_qc_trigger_product_line 1 0 0 0
18 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

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.module.category" id="module_category_quality_control">
<field name="name">Quality control</field>
</record>
<record id="group_quality_control_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="module_category_quality_control"/>
</record>
<record id="group_quality_control_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="module_category_quality_control"/>
<field name="implied_ids" eval="[(4, ref('group_quality_control_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<record id="qc_test_multi_company_rule" model="ir.rule">
<field name="name">Quality control test multi-company</field>
<field name="model_id" ref="model_qc_test"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="qc_inspection_multi_company_rule" model="ir.rule">
<field name="name">Quality control inspection multi-company</field>
<field name="model_id" ref="model_qc_inspection"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
<record id="qc_trigger_multi_company_rule" model="ir.rule">
<field name="name">Quality control trigger multi-company</field>
<field name="model_id" ref="model_qc_trigger"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
</record>
</data>
</openerp>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2"
version="1.1"
inkscape:version="0.91 r"
width="256"
height="256"
viewBox="0 0 256 256"
sodipodi:docname="icon.svg"
inkscape:export-filename="icon.png"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1855"
inkscape:window-height="1056"
id="namedview4"
showgrid="false"
showguides="false"
inkscape:zoom="2.6074563"
inkscape:cx="97.374622"
inkscape:cy="132.02575"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
style="fill:#3b4552;fill-opacity:1;stroke:none;stroke-width:1.93276381"
d="m 211.33966,96.067802 c 0,5.992928 7.91763,11.579358 6.74724,17.584548 -1.17039,6.00519 -11.48804,8.10481 -13.8219,13.58637 -2.33386,5.48156 3.54667,14.45202 0.2853,19.35834 -3.26137,4.90632 -13.42612,3.16349 -17.72981,7.43515 -4.30369,4.27166 -2.84179,14.82951 -7.85007,18.16415 -5.00827,3.33464 -14.16074,-2.55764 -19.80601,-0.26061 -5.64527,2.29703 -8.12649,12.89205 -13.9027,13.97052 -5.77621,1.07847 -11.48439,-7.0737 -17.64561,-7.0737 -6.16121,0 -12.25109,7.92446 -18.34832,6.62698 -6.09723,-1.29748 -7.59194,-10.41046 -12.762714,-12.66396 -5.170777,-2.2535 -13.376422,2.91752 -18.36,-0.36786 -4.983578,-3.28538 -5.262182,-14.36977 -9.53734,-18.79261 -4.275158,-4.42285 -12.851882,-1.69906 -16.45127,-7.12771 -3.599388,-5.42865 1.214828,-13.41741 -0.770599,-19.03959 -1.985426,-5.62218 -11.704615,-8.69661 -12.692518,-13.74392 -0.987903,-5.04731 7.500299,-12.47926 7.500299,-18.614887 0,-6.135628 -8.588091,-11.321696 -7.392633,-17.238661 C 39.996464,71.953386 50.643513,69.536 52.904546,64.153032 55.165579,58.770064 48.868664,50.58811 52.15073,45.63683 c 3.282066,-4.951281 13.747588,-4.272318 18.076133,-8.582161 4.328545,-4.309842 2.720858,-13.899039 7.694198,-17.198646 4.97334,-3.299607 13.104622,1.205446 18.503316,-1.022051 5.398693,-2.227496 7.894433,-11.1597399 13.714143,-12.3387556 5.81971,-1.1790158 12.1411,6.0407876 18.24461,6.0407876 6.10351,-1e-6 11.68483,-7.3111077 17.42643,-6.2026403 5.7416,1.1084674 8.13974,10.5614813 13.80595,12.8572833 5.6662,2.295802 14.94429,-2.23592 19.8907,1.108078 4.94641,3.343998 2.48246,11.892283 6.64749,15.99066 4.16503,4.098377 14.62827,3.666275 18.01677,8.682357 3.3885,5.016082 -2.02844,13.500558 0.32346,19.125397 2.3519,5.62484 12.47407,8.60159 13.61721,14.510953 1.14314,5.909363 -6.77148,11.466779 -6.77148,17.45971 z"
id="circle3368"
inkscape:connector-curvature="0"
sodipodi:nodetypes="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" />
<circle
r="63.531616"
cy="96.067802"
cx="128.38313"
id="circle3346"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.34354317" />
<circle
style="fill:#2b78c2;fill-opacity:1;stroke:none;stroke-width:1.09952056"
id="path3342"
cx="128.38313"
cy="96.067802"
r="51.992611" />
<path
style="fill:#2b78c2;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 83.989904,184.28259 8.053826,-1.24642 c 9.05399,16.12754 16.49528,14.24662 24.0656,13.80656 l -10.83431,53.1169 -14.190079,-13.51892 -18.984019,4.79394 z"
id="path3338"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
sodipodi:nodetypes="ccccccc"
inkscape:connector-curvature="0"
id="path3340"
d="m 171.81497,184.37847 -8.05383,-1.24642 c -9.05399,16.12754 -16.49528,14.24662 -24.0656,13.80656 l 10.83431,53.1169 14.19008,-13.51892 18.98402,4.79394 z"
style="fill:#2b78c2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none"
inkscape:transform-center-x="-0.016606677"
inkscape:transform-center-y="-4.1513637"
d="m 147.10763,127.15966 -18.87851,-10.66672 -19.29578,10.61355 c -2.14644,1.18064 -5.60088,-1.48065 -5.11608,-3.87048 l 4.26518,-21.02547 -15.410855,-14.46528 c -1.952657,-1.832846 -1.388891,-6.342484 1.848072,-6.713162 l 20.920483,-2.395688 9.61304,-20.440593 c 0.75725,-1.610169 4.6613,-2.921345 5.96156,-0.04186 l 9.11939,20.195236 22.68645,2.860817 c 3.08062,0.388473 2.79381,4.411669 1.38356,5.705416 l -16.16599,14.830394 4.28375,22.429 c 0.38417,2.01144 -2.29024,4.63697 -5.21427,2.98484 z"
id="path3350"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scsscsscsscsscss" />
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

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

View File

@@ -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})],
})

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="product_category_qc_form_view">
<field name="name">product.category.qc</field>
<field name="model">product.category</field>
<field name="inherit_id" ref="product.product_category_form_view"/>
<field name="arch" type="xml">
<sheet position="inside">
<group name="qc" string="Quality control">
<field name="qc_triggers" nolabel="1">
<tree string="Quality control triggers" editable="bottom">
<field name="trigger" widget="selection" />
<field name="test" />
<field name="user" />
<field name="partners" widget="many2many_tags" />
</tree>
</field>
</group>
</sheet>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="product_template_qc_form_view">
<field name="name">product.template.qc</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<page string="Inventory" position="inside">
<group name="qc" string="Quality control">
<field name="qc_triggers" nolabel="1">
<tree string="Quality control triggers" editable="bottom">
<field name="trigger" widget="selection"/>
<field name="test"/>
<field name="user" />
<field name="partners" widget="many2many_tags" />
</tree>
</field>
</group>
</page>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,251 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="qc_inspection_form_view">
<field name="name">qc.inspection.form</field>
<field name="model">qc.inspection</field>
<field name="arch" type="xml">
<form string="Inspection">
<header>
<button name="action_draft"
type="object"
attrs="{'invisible': [('state', '!=', 'canceled')]}"
string="Draft" />
<button name="action_todo"
type="object"
class="oe_highlight"
states="draft"
string="Mark todo" />
<button name="action_confirm"
type="object"
class="oe_highlight"
states="ready"
string="Confirm"
icon="gtk-ok" />
<button name="action_approve"
type="object"
states="waiting"
class="oe_highlight"
string="Approve" />
<button name="action_cancel"
type="object"
attrs="{'invisible': ['|', ('auto_generated', '=', True), ('state', 'not in', ['waiting', 'ready', 'failed', 'success'])]}"
string="Cancel"
icon="gtk-cancel" />
<field name="state"
widget="statusbar"
statusbar_visible="draft,waiting,success"
statusbar_colors='{"success": "blue", "failed": "red"}' />
</header>
<sheet>
<div class="oe_right oe_button_box" name="buttons">
<button class="oe_inline oe_stat_button"
type="action"
name="%(action_qc_inspection_set_test)d"
icon="fa-bookmark-o"
states="draft"
string="Set test" />
</div>
<h1>
<label string="Inspection "/>
<field name="name" class="oe_inline"/>
</h1>
<group>
<group>
<field name="test" />
<field name="user" />
<field name="object_id" />
<field name="product" />
</group>
<group>
<field name="date" />
<field name="success" />
<field name="auto_generated" />
</group>
</group>
<notebook>
<page string="Questions">
<field name="inspection_lines" nolabel="1">
<tree string="Inspection lines" editable="top" delete="false" create="false">
<field name="name" />
<field name="question_type" />
<field name="possible_ql_values" invisible="1" />
<field name="qualitative_value"
attrs="{'readonly': [('question_type', '=', 'quantitative')]}" />
<field name="quantitative_value"
attrs="{'readonly': [('question_type', '=', 'qualitative')]}" />
<field name="uom_id"
groups="product.group_uom"
attrs="{'readonly': [('question_type', '=', 'qualitative')]}" />
<field name="test_uom_category" invisible="1"/>
<field name="valid_values" />
<field name="success" />
</tree>
</field>
</page>
<page string="Notes">
<group string="Internal notes" >
<field name="internal_notes"
nolabel="1" />
</group>
<group string="External notes" >
<field name="external_notes"
nolabel="1" />
</group>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<record model="ir.ui.view" id="qc_inspection_tree_view">
<field name="name">qc.inspection.tree</field>
<field name="model">qc.inspection</field>
<field name="arch" type="xml">
<tree string="Inspections">
<field name="name" />
<field name="user" />
<field name="test" />
<field name="product" />
<field name="success" />
<field name="state" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="qc_inspection_search_view">
<field name="name">qc.inspection.search</field>
<field name="model">qc.inspection</field>
<field name="arch" type="xml">
<search string="Search inspection">
<group>
<field name="name" />
<field name="user" />
<field name="object_id" />
<field name="product" />
<field name="test" />
</group>
<newline />
<filter string="Correct"
domain="[('success', '=', True)]"/>
<filter string="Incorrect"
domain="[('success', '=', False)]"/>
<newline />
<group expand="0" string="Group by...">
<filter string="Reference"
domain="[]"
context="{'group_by': 'object_id'}" />
<filter string="Test"
domain="[]"
context="{'group_by': 'test'}" />
<filter string="Responsible"
domain="[]"
context="{'group_by': 'user'}" />
<filter string="Product"
domain="[]"
context="{'group_by': 'product'}" />
<filter string="State"
domain="[]"
context="{'group_by': 'state'}" />
<filter string="Success"
domain="[]"
context="{'group_by': 'success'}" />
<filter string="Auto-generated"
domain="[]"
context="{'group_by': 'auto_generated'}" />
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_qc_inspection">
<field name="name">Inspections</field>
<field name="res_model">qc.inspection</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Inspections"
parent="qc_inspection_menu_parent"
id="qc_inspection_menu"
action="action_qc_inspection" />
<record model="ir.ui.view" id="qc_inspection_line_tree_view">
<field name="name">qc.inspection.line.tree</field>
<field name="model">qc.inspection.line</field>
<field name="arch" type="xml">
<tree string="Inspection lines" delete="false" create="false" colors="red: success==False">
<field name="inspection_id" />
<field name="product" />
<field name="name" />
<field name="question_type" />
<field name="possible_ql_values" invisible="1" />
<field name="qualitative_value"
attrs="{'readonly': [('question_type', '=', 'quantitative')]}" />
<field name="quantitative_value"
attrs="{'readonly': [('question_type', '=', 'qualitative')]}" />
<field name="uom_id"
groups="product.group_uom"
attrs="{'readonly': [('question_type', '=', 'qualitative')]}" />
<field name="test_uom_category" invisible="1"/>
<field name="valid_values" />
<field name="success" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="qc_inspection_line_search_view">
<field name="name">qc.inspection.line.search</field>
<field name="model">qc.inspection.line</field>
<field name="arch" type="xml">
<search string="Search inspection line">
<group>
<field name="name" />
<field name="inspection_id" />
<field name="product" />
<field name="success" />
</group>
<newline />
<filter string="Correct"
domain="[('success', '=', True)]"/>
<filter string="Incorrect"
domain="[('success', '=', False)]"/>
<newline />
<group expand="0" string="Group by...">
<filter string="Inspection"
domain="[]"
context="{'group_by': 'inspection_id'}" />
<filter string="Product"
domain="[]"
context="{'group_by': 'product'}" />
<filter string="Question"
domain="[]"
context="{'group_by': 'name'}" />
<filter string="Success"
domain="[]"
context="{'group_by': 'success'}" />
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_qc_inspection_line">
<field name="name">Inspection lines</field>
<field name="res_model">qc.inspection.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
</record>
<menuitem name="Inspection lines"
parent="qc_inspection_menu_parent"
id="qc_inspection_lines_menu"
action="action_qc_inspection_line" />
</data>
</openerp>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem name="Quality control"
id="qc_menu"
groups="group_quality_control_user"
sequence="40" />
<menuitem name="Inspections"
parent="qc_menu"
id="qc_inspection_menu_parent"
sequence="10" />
<menuitem parent="qc_menu"
name="Tests"
id="qc_menu_test_parent"
groups="group_quality_control_manager"
sequence="20" />
</data>
</openerp>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="qc_test_category_tree_view">
<field name="name">qc.test.category.tree</field>
<field name="model">qc.test.category</field>
<field name="arch" type="xml">
<tree string="Test categories" editable="bottom">
<field name="complete_name"/>
<field name="name"/>
<field name="parent_id"/>
<field name="active"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_qc_test_category">
<field name="name">Test categories</field>
<field name="res_model">qc.test.category</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Test categories"
parent="qc_menu_test_parent"
id="qc_test_category_menu"
action="action_qc_test_category"
groups="group_quality_control_manager"
sequence="10" />
</data>
</openerp>

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="qc_test_form_view">
<field name="name">qc.test.form</field>
<field name="model">qc.test</field>
<field name="arch" type="xml">
<form string="Test">
<sheet>
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name" class="oe_inline"/>
</h1>
<group>
<group>
<field name="type" />
<field name="object_id"
attrs="{'invisible': [('type','=','generic')]}"/>
<field name="active" />
</group>
<group>
<field name="category" />
<field name="fill_correct_values" />
<field name="company_id" groups="base.group_multi_company"/>
</group>
</group>
<field name="test_lines" nolabel="1" >
<tree string="Questions">
<field name="sequence" widget="handle"/>
<field name="name" />
<field name="type" />
<field name="min_value" />
<field name="max_value" />
<field name="uom_id" />
<field name="ql_values" />
</tree>
</field>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="qc_test_tree_view">
<field name="name">qc.test.tree</field>
<field name="model">qc.test</field>
<field name="arch" type="xml">
<tree string="Tests">
<field name="name" />
<field name="category" />
<field name="type" />
<field name="object_id" />
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_qc_test">
<field name="name">Tests</field>
<field name="res_model">qc.test</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<record model="ir.ui.view" id="qc_test_question_form_view">
<field name="name">qc.test.question.form</field>
<field name="model">qc.test.question</field>
<field name="arch" type="xml">
<form string="Test question">
<label for="name" class="oe_edit_only" />
<h1>
<field name="name" class="oe_inline" />
</h1>
<group>
<field name="sequence" />
<field name="type" />
</group>
<group name="qualitative"
string="Answers"
colspan="4"
attrs="{'invisible': [('type', '!=', 'qualitative')]}">
<field name="ql_values"
nolabel="1"
attrs="{'required': [('type','=','qualitative')]}">
<tree string="Question value" editable="bottom">
<field name="name" />
<field name="ok" />
</tree>
</field>
</group>
<div name="quantitative"
align="center"
attrs="{'invisible': [('type', '!=', 'quantitative')]}" >
<h1 name="quantitative-data">
<span name="quantitative-interval" >
<field name="min_value"
class="oe_inline"
nolabel="1"
attrs="{'required': [('type',' =', 'quantitative')]}" />
<span> - </span>
<field name="max_value"
class="oe_inline"
nolabel="1"
attrs="{'required': [('type', '=', 'quantitative')]}" />
</span>
<span name="quantitative-uom" >
<field name="uom_id"
class="oe_inline"
nolabel="1"
attrs="{'required': [('type', '=', 'quantitative')]}" />
</span>
</h1>
</div>
<field name="notes" />
</form>
</field>
</record>
<menuitem name="Tests"
parent="qc_menu_test_parent"
id="qc_test_menu"
action="action_qc_test"
groups="group_quality_control_manager"
sequence="20" />
</data>
</openerp>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="qc_trigger_form_view">
<field name="name">qc.trigger.form</field>
<field name="model">qc.trigger</field>
<field name="arch" type="xml">
<form string="Quality control trigger">
<group>
<field name="name" />
<field name="active" />
<field name="partner_selectable" />
</group>
<group>
<field name="company_id" groups="base.group_multi_company"/>
</group>
</form>
</field>
</record>
<record model="ir.ui.view" id="qc_trigger_tree_view">
<field name="name">qc.trigger.tree</field>
<field name="model">qc.trigger</field>
<field name="arch" type="xml">
<tree string="Quality control triggers" editable="bottom">
<field name="name" />
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,5 @@
# -*- encoding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from . import qc_test_wizard

View File

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

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="view_qc_test_set_test_form" model="ir.ui.view">
<field name="name">qc.inspection.set.test.form</field>
<field name="model">qc.inspection.set.test</field>
<field name="arch" type="xml">
<form string="Select test" version="7.0">
<group>
<field name="test" />
</group>
<footer>
<button name="action_create_test"
string="Accept"
type="object"
class="oe_highlight"/>
or
<button special="cancel"
class="oe_link"
string="Cancel" />
</footer>
</form>
</field>
</record>
<record id="action_qc_inspection_set_test" model="ir.actions.act_window">
<field name="name">Select test</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">qc.inspection.set.test</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</data>
</openerp>