[ADD] New module <quality_control_hr> closes #662

* Changes in access rules
* Trigger line instead of test and user
This commit is contained in:
oihane
2015-02-13 14:22:03 +01:00
parent 75332fdee6
commit 1e14d28bb8
9 changed files with 201 additions and 72 deletions

View File

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