diff --git a/quality_control_oca/i18n/es.po b/quality_control_oca/i18n/es.po index 1117664a8..c7072fe9b 100644 --- a/quality_control_oca/i18n/es.po +++ b/quality_control_oca/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-12-10 22:13+0000\n" -"PO-Revision-Date: 2014-12-10 22:13+0000\n" +"POT-Creation-Date: 2015-02-24 16:01+0000\n" +"PO-Revision-Date: 2015-02-24 16:01+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -47,8 +47,8 @@ msgid "Approve" msgstr "Aprobar" #. module: quality_control -#: field:qc.inspection,auto_generated:0 #: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,auto_generated:0 msgid "Auto-generated" msgstr "Auto-generada" @@ -61,13 +61,18 @@ msgstr "Cancelar" #. module: quality_control #: selection:qc.inspection,state:0 msgid "Cancelled" -msgstr "" +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 @@ -80,6 +85,11 @@ msgstr "Compañía" 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 @@ -140,7 +150,7 @@ msgstr "Borrador" #. module: quality_control #: model:ir.model,name:quality_control.model_qc_inspection msgid "Email Thread" -msgstr "Inspeción creada" +msgstr "Hilo de mensajes" #. module: quality_control #: code:addons/quality_control/models/qc_test_category.py:35 @@ -176,6 +186,22 @@ msgstr "Agrupar por..." 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" @@ -352,6 +378,7 @@ 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 @@ -362,10 +389,14 @@ msgstr "Producto" #. module: quality_control #: model:ir.model,name:quality_control.model_product_category -#: field:qc.inspection.line,test_uom_category:0 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 @@ -406,6 +437,11 @@ msgstr "Valores cualitativos" msgid "Quality control" msgstr "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" @@ -453,6 +489,11 @@ msgstr "Cuantitativa" 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 @@ -502,6 +543,16 @@ msgstr "Referenciado" 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" @@ -512,6 +563,11 @@ msgstr "Buscar inspección" 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 @@ -554,9 +610,9 @@ 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.inspection.set.test,test:0 #: field:qc.trigger.line,test:0 #: field:qc.trigger.product_category_line,test:0 #: field:qc.trigger.product_line,test:0 @@ -626,6 +682,11 @@ msgstr "Disparador" 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" @@ -651,11 +712,6 @@ msgstr "UdM del valor de inspección si es una pregunta cuantitativa." msgid "Uom" msgstr "UdM" -#. module: quality_control -#: model:res.groups,name:quality_control.group_quality_control_user -msgid "User" -msgstr "Usuario" - #. module: quality_control #: field:qc.inspection.line,valid_values:0 msgid "Valid values" @@ -682,32 +738,42 @@ 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:92 +#: code:addons/quality_control/models/qc_inspection.py:93 +#: 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:95 +#: code:addons/quality_control/models/qc_inspection.py:96 +#: 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:108 +#: code:addons/quality_control/models/qc_inspection.py:109 +#: 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:123 +#: code:addons/quality_control/models/qc_inspection.py:124 +#: code:addons/quality_control/models/qc_inspection.py:128 #, python-format msgid "You should provide a unit of measure for qualitative questions." msgstr "Debe proveer una unidad de medida para las preguntas cualitativas." #. module: quality_control -#: code:addons/quality_control/models/qc_inspection.py:118 +#: code:addons/quality_control/models/qc_inspection.py:119 +#: code:addons/quality_control/models/qc_inspection.py:123 #, python-format msgid "You should provide an answer for all quantitative questions." msgstr "Debe proveer una respuesta para todas las preguntas cuantitativas." +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "or" +msgstr "o" + diff --git a/quality_control_oca/i18n/quality_control.pot b/quality_control_oca/i18n/quality_control.pot index 44eb31853..05e00c0b8 100644 --- a/quality_control_oca/i18n/quality_control.pot +++ b/quality_control_oca/i18n/quality_control.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-12-10 22:13+0000\n" -"PO-Revision-Date: 2014-12-10 22:13+0000\n" +"POT-Creation-Date: 2015-02-24 16:08+0000\n" +"PO-Revision-Date: 2015-02-24 16:08+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -47,8 +47,8 @@ msgid "Approve" msgstr "" #. module: quality_control -#: field:qc.inspection,auto_generated:0 #: view:qc.inspection:quality_control.qc_inspection_search_view +#: field:qc.inspection,auto_generated:0 msgid "Auto-generated" msgstr "" @@ -68,6 +68,11 @@ msgstr "" 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 @@ -80,6 +85,11 @@ msgstr "" 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 @@ -379,7 +389,6 @@ msgstr "" #. module: quality_control #: model:ir.model,name:quality_control.model_product_category -#: field:qc.inspection.line,test_uom_category:0 msgid "Product Category" msgstr "" @@ -428,6 +437,11 @@ msgstr "" msgid "Quality control" 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" @@ -475,6 +489,11 @@ msgstr "" 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 @@ -524,6 +543,16 @@ msgstr "" 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" @@ -534,6 +563,11 @@ msgstr "" 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 @@ -573,14 +607,10 @@ msgstr "" msgid "Summary" msgstr "" -#. module: quality_control -#: field:qc.inspection.set.test,test:0 -msgid "Template" -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 @@ -652,6 +682,11 @@ msgstr "" 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" @@ -677,11 +712,6 @@ msgstr "" msgid "Uom" msgstr "" -#. module: quality_control -#: model:res.groups,name:quality_control.group_quality_control_user -msgid "User" -msgstr "" - #. module: quality_control #: field:qc.inspection.line,valid_values:0 msgid "Valid values" @@ -708,32 +738,42 @@ msgid "When this field is marked, the answer is considered correct." msgstr "" #. module: quality_control -#: code:addons/quality_control/models/qc_inspection.py:92 +#: code:addons/quality_control/models/qc_inspection.py:93 +#: 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:95 +#: code:addons/quality_control/models/qc_inspection.py:96 +#: 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:108 +#: code:addons/quality_control/models/qc_inspection.py:109 +#: 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:123 +#: code:addons/quality_control/models/qc_inspection.py:124 +#: code:addons/quality_control/models/qc_inspection.py:128 #, python-format msgid "You should provide a unit of measure for qualitative questions." msgstr "" #. module: quality_control -#: code:addons/quality_control/models/qc_inspection.py:118 +#: code:addons/quality_control/models/qc_inspection.py:119 +#: code:addons/quality_control/models/qc_inspection.py:123 #, python-format msgid "You should provide an answer for all quantitative questions." msgstr "" +#. module: quality_control +#: view:qc.inspection.set.test:quality_control.view_qc_test_set_test_form +msgid "or" +msgstr "" + diff --git a/quality_control_oca/models/qc_inspection.py b/quality_control_oca/models/qc_inspection.py index 5e2415f81..149b6237a 100644 --- a/quality_control_oca/models/qc_inspection.py +++ b/quality_control_oca/models/qc_inspection.py @@ -7,6 +7,7 @@ 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 @@ -78,6 +79,9 @@ class QcInspection(models.Model): 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): @@ -141,41 +145,43 @@ class QcInspection(models.Model): self.write({'state': 'canceled'}) @api.multi - def set_test(self, test, force_fill=False): + def set_test(self, trigger_line, force_fill=False): for inspection in self: header = self._prepare_inspection_header( - inspection.object_id, test) + 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) self.inspection_lines.unlink() inspection.inspection_lines = inspection._prepare_inspection_lines( - test, force_fill=force_fill) + trigger_line.test, force_fill=force_fill) @api.multi - def _make_inspection(self, object_ref, test): + def _make_inspection(self, object_ref, trigger_line): """Overridable hook method for creating inspection from test. :param object_ref: Object instance - :param test: Test instance + :param trigger_line: Trigger line instance :return: Inspection object """ inspection = self.create(self._prepare_inspection_header( - object_ref, test)) - inspection.set_test(test) + object_ref, trigger_line)) + inspection.set_test(trigger_line) return inspection @api.multi - def _prepare_inspection_header(self, object_ref, test): + def _prepare_inspection_header(self, object_ref, trigger_line): """Overridable hook method for preparing inspection header. :param object_ref: Object instance - :param test: Test 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': test.id, + 'test': trigger_line.test.id, + 'user': trigger_line.user.id, 'auto_generated': True, } diff --git a/quality_control_oca/models/qc_trigger_line.py b/quality_control_oca/models/qc_trigger_line.py index ebba31595..eab318dcd 100644 --- a/quality_control_oca/models/qc_trigger_line.py +++ b/quality_control_oca/models/qc_trigger_line.py @@ -11,14 +11,18 @@ class QcTriggerLine(models.AbstractModel): 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) - def get_test_for_product(self, trigger, product): - """Overridable method for getting test associated to a product. + def get_trigger_line_for_product(self, trigger, product): + """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 tests that matches to the given product and trigger. + :return: Set of trigger_lines that matches to the given product and + trigger. """ return set() @@ -29,16 +33,17 @@ class QcTriggerProductCategoryLine(models.Model): product_category = fields.Many2one(comodel_name="product.category") - def get_test_for_product(self, trigger, product): - tests = super(QcTriggerProductCategoryLine, - self).get_test_for_product(trigger, product) + def get_trigger_line_for_product(self, trigger, product): + trigger_lines = super(QcTriggerProductCategoryLine, + self).get_trigger_line_for_product(trigger, + product) category = product.categ_id while category: for trigger_line in category.qc_triggers: if trigger_line.trigger.id == trigger.id: - tests.add(trigger_line.test) + trigger_lines.add(trigger_line) category = category.parent_id - return tests + return trigger_lines class QcTriggerProductTemplateLine(models.Model): @@ -47,13 +52,14 @@ class QcTriggerProductTemplateLine(models.Model): product_template = fields.Many2one(comodel_name="product.template") - def get_test_for_product(self, trigger, product): - tests = super(QcTriggerProductTemplateLine, - self).get_test_for_product(trigger, product) + def get_trigger_line_for_product(self, trigger, product): + trigger_lines = super(QcTriggerProductTemplateLine, + self).get_trigger_line_for_product(trigger, + product) for trigger_line in product.product_tmpl_id.qc_triggers: if trigger_line.trigger.id == trigger.id: - tests.add(trigger_line.test) - return tests + trigger_lines.add(trigger_line) + return trigger_lines class QcTriggerProductLine(models.Model): @@ -62,10 +68,11 @@ class QcTriggerProductLine(models.Model): product = fields.Many2one(comodel_name="product.product") - def get_test_for_product(self, trigger, product): - tests = super(QcTriggerProductLine, self).get_test_for_product( - trigger, product) + def get_trigger_line_for_product(self, trigger, product): + trigger_lines = super(QcTriggerProductLine, + self).get_trigger_line_for_product(trigger, + product) for trigger_line in product.qc_triggers: if trigger_line.trigger.id == trigger.id: - tests.add(trigger_line.test) - return tests + trigger_lines.add(trigger_line) + return trigger_lines diff --git a/quality_control_oca/views/product_category_view.xml b/quality_control_oca/views/product_category_view.xml index a8013ce30..1da2e3591 100644 --- a/quality_control_oca/views/product_category_view.xml +++ b/quality_control_oca/views/product_category_view.xml @@ -11,8 +11,9 @@ - - + + + diff --git a/quality_control_oca/views/product_template_view.xml b/quality_control_oca/views/product_template_view.xml index b60c74b14..c145bfa60 100644 --- a/quality_control_oca/views/product_template_view.xml +++ b/quality_control_oca/views/product_template_view.xml @@ -13,6 +13,7 @@ + diff --git a/quality_control_oca/views/qc_inspection_view.xml b/quality_control_oca/views/qc_inspection_view.xml index 03e0506a1..f46fa2b03 100644 --- a/quality_control_oca/views/qc_inspection_view.xml +++ b/quality_control_oca/views/qc_inspection_view.xml @@ -39,21 +39,22 @@ statusbar_colors='{"success": "blue", "failed": "red"}' /> -

-

+

+

- + + @@ -109,6 +110,7 @@ + @@ -124,6 +126,7 @@ + @@ -141,6 +144,9 @@ + diff --git a/quality_control_oca/views/qc_menus.xml b/quality_control_oca/views/qc_menus.xml index b4145b022..91e115f75 100644 --- a/quality_control_oca/views/qc_menus.xml +++ b/quality_control_oca/views/qc_menus.xml @@ -15,6 +15,7 @@ diff --git a/quality_control_oca/views/qc_test_view.xml b/quality_control_oca/views/qc_test_view.xml index c753fe958..0902a656c 100644 --- a/quality_control_oca/views/qc_test_view.xml +++ b/quality_control_oca/views/qc_test_view.xml @@ -120,6 +120,7 @@ parent="qc_menu_test_parent" id="qc_test_menu" action="action_qc_test" + groups="group_quality_control_manager" sequence="20" />