[14.0][MIG] quality_control_oca

This commit is contained in:
Enrique
2021-03-05 19:15:15 +01:00
committed by Enrique Martín
parent a7ef3e7344
commit 489e2670f5
6 changed files with 48 additions and 31 deletions

View File

@@ -7,7 +7,7 @@
{ {
"name": "Quality Control OCA", "name": "Quality Control OCA",
"version": "13.0.1.1.0", "version": "14.0.1.1.0",
"category": "Quality Control", "category": "Quality Control",
"license": "AGPL-3", "license": "AGPL-3",
"summary": "Generic infrastructure for quality tests.", "summary": "Generic infrastructure for quality tests.",

View File

@@ -266,41 +266,43 @@ class QcInspectionLine(models.Model):
"possible_ql_values", "possible_ql_values",
) )
def _compute_quality_test_check(self): def _compute_quality_test_check(self):
for l in self: for insp_line in self:
if l.question_type == "qualitative": if insp_line.question_type == "qualitative":
l.success = l.qualitative_value.ok insp_line.success = insp_line.qualitative_value.ok
else: else:
if l.uom_id.id == l.test_uom_id.id: if insp_line.uom_id.id == insp_line.test_uom_id.id:
amount = l.quantitative_value amount = insp_line.quantitative_value
else: else:
amount = self.env["uom.uom"]._compute_quantity( amount = self.env["uom.uom"]._compute_quantity(
l.quantitative_value, l.test_uom_id.id insp_line.quantitative_value, insp_line.test_uom_id.id
) )
l.success = l.max_value >= amount >= l.min_value insp_line.success = insp_line.max_value >= amount >= insp_line.min_value
@api.depends( @api.depends(
"possible_ql_values", "min_value", "max_value", "test_uom_id", "question_type" "possible_ql_values", "min_value", "max_value", "test_uom_id", "question_type"
) )
def _compute_valid_values(self): def _compute_valid_values(self):
for l in self: for insp_line in self:
if l.question_type == "qualitative": if insp_line.question_type == "qualitative":
l.valid_values = ", ".join( insp_line.valid_values = ", ".join(
[x.name for x in l.possible_ql_values if x.ok] [x.name for x in insp_line.possible_ql_values if x.ok]
) )
else: else:
l.valid_values = "{} ~ {}".format( insp_line.valid_values = "{} ~ {}".format(
formatLang(self.env, l.min_value), formatLang(self.env, insp_line.min_value),
formatLang(self.env, l.max_value), formatLang(self.env, insp_line.max_value),
) )
if self.env.ref("uom.group_uom") in self.env.user.groups_id: if self.env.ref("uom.group_uom") in self.env.user.groups_id:
l.valid_values += " %s" % l.test_uom_id.name insp_line.valid_values += " %s" % insp_line.test_uom_id.name
inspection_id = fields.Many2one( inspection_id = fields.Many2one(
comodel_name="qc.inspection", string="Inspection", ondelete="cascade" comodel_name="qc.inspection", string="Inspection", ondelete="cascade"
) )
name = fields.Char(string="Question", readonly=True) name = fields.Char(string="Question", readonly=True)
product_id = fields.Many2one( product_id = fields.Many2one(
comodel_name="product.product", related="inspection_id.product_id", store=True, comodel_name="product.product",
related="inspection_id.product_id",
store=True,
) )
test_line = fields.Many2one( test_line = fields.Many2one(
comodel_name="qc.test.question", string="Test question", readonly=True comodel_name="qc.test.question", string="Test question", readonly=True

View File

@@ -33,7 +33,8 @@ class QcTest(models.Model):
copy=True, copy=True,
) )
object_id = fields.Reference( object_id = fields.Reference(
string="Reference object", selection="object_selection_values", string="Reference object",
selection="object_selection_values",
) )
fill_correct_values = fields.Boolean(string="Pre-fill with correct values") fill_correct_values = fields.Boolean(string="Pre-fill with correct values")
type = fields.Selection( type = fields.Selection(

View File

@@ -2,17 +2,19 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_user_qc_inspection,qc_inspection,model_qc_inspection,group_quality_control_user,1,1,1,1 access_user_qc_inspection,qc_inspection,model_qc_inspection,group_quality_control_user,1,1,1,1
access_user_qc_inspection_line,qc_inspection_line,model_qc_inspection_line,group_quality_control_user,1,1,1,1 access_user_qc_inspection_line,qc_inspection_line,model_qc_inspection_line,group_quality_control_user,1,1,1,1
access_user_qc_test,qc_test user,model_qc_test,group_quality_control_user,1,0,0,0 access_user_qc_test,qc_test user,model_qc_test,group_quality_control_user,1,0,0,0
access_user_qc_test_question,qc_test_question user,model_qc_test_question,group_quality_control_user,1,0,0,0
access_user_qc_test_question_value,qc_test_question_value_user,model_qc_test_question_value,group_quality_control_user,1,0,0,0
access_manager_qc_test,qc_test manager,model_qc_test,group_quality_control_manager,1,1,1,1 access_manager_qc_test,qc_test manager,model_qc_test,group_quality_control_manager,1,1,1,1
access_user_qc_test_question,qc_test_question user,model_qc_test_question,group_quality_control_user,1,0,0,0
access_manager_qc_test_question,qc_test_question manager,model_qc_test_question,group_quality_control_manager,1,1,1,1 access_manager_qc_test_question,qc_test_question manager,model_qc_test_question,group_quality_control_manager,1,1,1,1
access_manager_qc_test_question_value,qc_test_question_value,model_qc_test_question_value,group_quality_control_manager,1,1,1,1 access_user_qc_test_question_value,qc_test_question_value user,model_qc_test_question_value,group_quality_control_user,1,0,0,0
access_manager_qc_test_category,qc_test_category,model_qc_test_category,group_quality_control_manager,1,1,1,1 access_manager_qc_test_question_value,qc_test_question_value manager,model_qc_test_question_value,group_quality_control_manager,1,1,1,1
access_manager_qc_trigger_user,qc_trigger user,model_qc_trigger,group_quality_control_user,1,0,0,0 access_user_qc_test_category,qc_test_category user,model_qc_test_category,group_quality_control_user,1,0,0,0
access_manager_qc_trigger_manager,qc_trigger manager,model_qc_trigger,group_quality_control_manager,1,1,1,1 access_manager_qc_test_category,qc_test_category manager,model_qc_test_category,group_quality_control_manager,1,1,1,1
access_manager_qc_trigger_product_category_line_user,qc_trigger product_category line user,model_qc_trigger_product_category_line,group_quality_control_user,1,0,0,0 access_user_qc_trigger,qc_trigger user,model_qc_trigger,group_quality_control_user,1,0,0,0
access_manager_qc_trigger_product_category_line_manager,qc_trigger product_category line manager,model_qc_trigger_product_category_line,group_quality_control_manager,1,1,1,1 access_manager_qc_trigger,qc_trigger manager,model_qc_trigger,group_quality_control_manager,1,1,1,1
access_manager_qc_trigger_product_template_line_user,qc_trigger product_template line user,model_qc_trigger_product_template_line,,1,0,0,0 access_user_qc_trigger_product_category_line,qc_trigger_product_category_line user,model_qc_trigger_product_category_line,group_quality_control_user,1,0,0,0
access_manager_qc_trigger_product_template_line_manager,qc_trigger product_template line manager,model_qc_trigger_product_template_line,group_quality_control_manager,1,1,1,1 access_manager_qc_trigger_product_category_line,qc_trigger_product_category_line manager,model_qc_trigger_product_category_line,group_quality_control_manager,1,1,1,1
access_manager_qc_trigger_product_line_user,qc_trigger product line user,model_qc_trigger_product_line,,1,0,0,0 access_user_qc_trigger_product_template_line,qc_trigger_product_template_line user,model_qc_trigger_product_template_line,group_quality_control_user,1,0,0,0
access_manager_qc_trigger_product_line_manager,qc_trigger product line manager,model_qc_trigger_product_line,group_quality_control_manager,1,1,1,1 access_manager_qc_trigger_product_template_line,qc_trigger_product_template_line manager,model_qc_trigger_product_template_line,group_quality_control_manager,1,1,1,1
access_user_qc_trigger_product_line,qc_trigger_product_line user,model_qc_trigger_product_line,group_quality_control_user,1,0,0,0
access_manager_qc_trigger_product_line,qc_trigger_product_line manager,model_qc_trigger_product_line,group_quality_control_manager,1,1,1,1
access_user_qc_inspection_set_test,qc_inspection_set_test user,model_qc_inspection_set_test,group_quality_control_user,1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_user_qc_inspection qc_inspection model_qc_inspection group_quality_control_user 1 1 1 1
3 access_user_qc_inspection_line qc_inspection_line model_qc_inspection_line group_quality_control_user 1 1 1 1
4 access_user_qc_test qc_test user model_qc_test group_quality_control_user 1 0 0 0
access_user_qc_test_question qc_test_question user model_qc_test_question group_quality_control_user 1 0 0 0
access_user_qc_test_question_value qc_test_question_value_user model_qc_test_question_value group_quality_control_user 1 0 0 0
5 access_manager_qc_test qc_test manager model_qc_test group_quality_control_manager 1 1 1 1
6 access_user_qc_test_question qc_test_question user model_qc_test_question group_quality_control_user 1 0 0 0
7 access_manager_qc_test_question qc_test_question manager model_qc_test_question group_quality_control_manager 1 1 1 1
8 access_manager_qc_test_question_value access_user_qc_test_question_value qc_test_question_value qc_test_question_value user model_qc_test_question_value group_quality_control_manager group_quality_control_user 1 1 0 1 0 1 0
9 access_manager_qc_test_category access_manager_qc_test_question_value qc_test_category qc_test_question_value manager model_qc_test_category model_qc_test_question_value group_quality_control_manager 1 1 1 1
10 access_manager_qc_trigger_user access_user_qc_test_category qc_trigger user qc_test_category user model_qc_trigger model_qc_test_category group_quality_control_user 1 0 0 0
11 access_manager_qc_trigger_manager access_manager_qc_test_category qc_trigger manager qc_test_category manager model_qc_trigger model_qc_test_category group_quality_control_manager 1 1 1 1
12 access_manager_qc_trigger_product_category_line_user access_user_qc_trigger qc_trigger product_category line user qc_trigger user model_qc_trigger_product_category_line model_qc_trigger group_quality_control_user 1 0 0 0
13 access_manager_qc_trigger_product_category_line_manager access_manager_qc_trigger qc_trigger product_category line manager qc_trigger manager model_qc_trigger_product_category_line model_qc_trigger group_quality_control_manager 1 1 1 1
14 access_manager_qc_trigger_product_template_line_user access_user_qc_trigger_product_category_line qc_trigger product_template line user qc_trigger_product_category_line user model_qc_trigger_product_template_line model_qc_trigger_product_category_line group_quality_control_user 1 0 0 0
15 access_manager_qc_trigger_product_template_line_manager access_manager_qc_trigger_product_category_line qc_trigger product_template line manager qc_trigger_product_category_line manager model_qc_trigger_product_template_line model_qc_trigger_product_category_line group_quality_control_manager 1 1 1 1
16 access_manager_qc_trigger_product_line_user access_user_qc_trigger_product_template_line qc_trigger product line user qc_trigger_product_template_line user model_qc_trigger_product_line model_qc_trigger_product_template_line group_quality_control_user 1 0 0 0
17 access_manager_qc_trigger_product_line_manager access_manager_qc_trigger_product_template_line qc_trigger product line manager qc_trigger_product_template_line manager model_qc_trigger_product_line model_qc_trigger_product_template_line group_quality_control_manager 1 1 1 1
18 access_user_qc_trigger_product_line qc_trigger_product_line user model_qc_trigger_product_line group_quality_control_user 1 0 0 0
19 access_manager_qc_trigger_product_line qc_trigger_product_line manager model_qc_trigger_product_line group_quality_control_manager 1 1 1 1
20 access_user_qc_inspection_set_test qc_inspection_set_test user model_qc_inspection_set_test group_quality_control_user 1 1 1 0

View File

@@ -10,7 +10,7 @@
name="Quality Control" name="Quality Control"
id="qc_menu" id="qc_menu"
groups="group_quality_control_user" groups="group_quality_control_user"
web_icon="quality_control_oca/static/description/icon.png" web_icon="quality_control_oca,static/description/icon.png"
sequence="40" sequence="40"
/> />
<menuitem <menuitem

View File

@@ -29,7 +29,19 @@
<tree string="Quality control triggers" editable="bottom"> <tree string="Quality control triggers" editable="bottom">
<field name="name" /> <field name="name" />
<field name="company_id" groups="base.group_multi_company" /> <field name="company_id" groups="base.group_multi_company" />
<field name="partner_selectable" />
</tree> </tree>
</field> </field>
</record> </record>
<record model="ir.actions.act_window" id="action_qc_trigger">
<field name="name">Triggers</field>
<field name="res_model">qc.trigger</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
name="Triggers"
parent="menu_qc_config"
id="qc_trigger_menu"
action="action_qc_trigger"
/>
</odoo> </odoo>