quality_control: Total refactorization with new API, README files, and new concepts. * Triggers for product category * ACLs * Tolerances in questions * one2many copyable * Fix some views * Error on same tolerance * Colors on inspection lines * Unify inspection header data assignment in set_test method * key name in set_test * Change icon set

This commit is contained in:
Pedro M. Baeza
2014-12-10 23:35:21 +01:00
committed by Enrique Martín
parent 7b229fabc0
commit 1f8e68ef4a
32 changed files with 2189 additions and 2281 deletions

View File

@@ -0,0 +1,71 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import models, fields
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)
def get_test_for_product(self, trigger, product):
"""Overridable method for getting test 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()
class QcTriggerProductCategoryLine(models.Model):
_inherit = "qc.trigger.line"
_name = "qc.trigger.product_category_line"
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)
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)
category = category.parent_id
return tests
class QcTriggerProductTemplateLine(models.Model):
_inherit = "qc.trigger.line"
_name = "qc.trigger.product_template_line"
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)
for trigger_line in product.product_tmpl_id.qc_triggers:
if trigger_line.trigger.id == trigger.id:
tests.add(trigger_line.test)
return tests
class QcTriggerProductLine(models.Model):
_inherit = "qc.trigger.line"
_name = "qc.trigger.product_line"
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)
for trigger_line in product.qc_triggers:
if trigger_line.trigger.id == trigger.id:
tests.add(trigger_line.test)
return tests