TIP: You can type at any time to perform a new search.
Quality control
quality_control · OCA/manufacture
- Repository
- OCA/manufacture · module folder · Try on Runboat
- Module version
- 1.5.1
- Category
- Quality control
- Folder size
- 3.02 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/manufacture
- Last tracking update
- 2026-08-07 07:31:54
- Authors
- Odoo Community Association (OCA), OdooMRP team
- Maintainers
- Odoo Community Association (OCA), OdooMRP team
- Committers
- Holger Brunn, Lois Rilo, Carlos Roca, Weblate, cubells, OCA Transbot, OCA-git-bot, oca-travis, Dimitrios T. Tanis, Jaime Arroyo, Ignacio Ales, Marcel Savegnago
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- quality_control_issue, quality_control_mrp, quality_control_stock, quality_control_team
- Description
Code Analysis ⓘ
Views touched (15)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_category_qc_form_view |
product.category.qc | product.category | form | Inherits product.product_category_form_view |
product_template_qc_form_view |
product.template.common.qc | product.template | form | Inherits product.product_template_form_view |
qc_inspection_form_view |
qc.inspection.form | qc.inspection | form | New |
qc_inspection_line_search_view |
qc.inspection.line.search | qc.inspection.line | search | New |
qc_inspection_line_tree_view |
qc.inspection.line.tree | qc.inspection.line | tree | New |
qc_inspection_search_view |
qc.inspection.search | qc.inspection | search | New |
qc_inspection_tree_view |
qc.inspection.tree | qc.inspection | tree | New |
qc_test_category_tree_view |
qc.test.category.tree | qc.test.category | tree | New |
qc_test_form_view |
qc.test.form | qc.test | form | New |
qc_test_question_form_view |
qc.test.question.form | qc.test.question | form | New |
qc_test_tree_view |
qc.test.tree | qc.test | tree | New |
qc_trigger_form_view |
qc.trigger.form | qc.trigger | form | New |
qc_trigger_tree2_view |
qc.trigger.tree | qc.trigger | tree | New |
qc_trigger_tree_view |
qc.trigger.tree | qc.trigger | tree | New |
view_qc_test_set_test_form |
qc.inspection.set.test.form | qc.inspection.set.test | form | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (15)
New fields (1)
-
qc_triggersOne2many → qc.trigger.product_category_linecomodel_name='qc.trigger.product_category_line'inverse_name='product_category'string='Quality control triggers'
No public methods.
New fields (1)
-
qc_triggersOne2many → qc.trigger.product_linecomodel_name='qc.trigger.product_line'inverse_name='product'string='Quality control triggers'
No public methods.
New fields (1)
-
qc_triggersOne2many → qc.trigger.product_template_linecomodel_name='qc.trigger.product_template_line'inverse_name='product_template'string='Quality control triggers'
No public methods.
New fields (14)
-
auto_generatedBooleancopy=Falsehelp='If an inspection is auto-generated, it can be canceled but not removed.'readonly=Truestring='Auto-generated' -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>readonly=Truestates={'draft': [('readonly', False)]}string='Company' -
dateDatetimecopy=Falsedefault=fields.Datetime.nowreadonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Date' -
external_notesTextstates={'success': [('readonly', True)], 'failed': [('readonly', True)]}string='External notes' -
inspection_linesOne2many → qc.inspection.linecomodel_name='qc.inspection.line'inverse_name='inspection_id'readonly=Truestates={'ready': [('readonly', False)]}string='Inspection lines' -
internal_notesTextstring='Internal notes' -
nameCharcopy=Falsedefault='/'readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Inspection number' -
object_idReferenceondelete='set null'readonly=Trueselection=<expr>states={'draft': [('readonly', False)]}string='Reference' -
product_idMany2one → product.productcomodel_name='product.product'compute='_compute_product_id'help='Product associated with the inspection'oldname='product'store=True -
qtyFloatdefault=1.0string='Quantity' -
stateSelectiondefault='draft'readonly=Truestring='State'track_visibility='onchange' args: [('draft', 'Draft'), ('ready', 'Ready'), ('waiting', 'Waiting supervisor approval'), ('success', 'Quality success'), ('failed', 'Quality failed'), ('canceled', 'Canceled')] -
successBooleancompute='_compute_success'help='This field will be marked if all tests have succeeded.'store=Truestring='Success' -
testMany2one → qc.testcomodel_name='qc.test'readonly=Truestring='Test' -
userMany2one → res.userscomodel_name='res.users'default=<expr>string='Responsible'track_visibility='always'
-
action_approve(self)@api.multi -
action_cancel(self)@api.multi -
action_confirm(self)@api.multi -
action_draft(self)@api.multi -
action_todo(self)@api.multi -
create(self, val_list)@api.model_create_multi -
object_selection_values(self)@api.multiOverridable method for adding more object models to an inspection. :return: A list with the selection's possible values. -
set_test(self, trigger_line, force_fill=False)@api.multi -
unlink(self)@api.multi
New fields (16)
-
inspection_idMany2one → qc.inspectioncomodel_name='qc.inspection'ondelete='cascade'string='Inspection' -
max_valueFloatdigits=dp.get_precision('Quality Control')help='Maximum valid value for a quantitative question.'readonly=Truestring='Max' -
min_valueFloatdigits=dp.get_precision('Quality Control')help='Minimum valid value for a quantitative question.'readonly=Truestring='Min' -
nameCharreadonly=Truestring='Question' -
notesTextstring='Notes' -
possible_ql_valuesMany2many → qc.test.question.valuecomodel_name='qc.test.question.value'string='Answers' -
product_idMany2one → product.productcomodel_name='product.product'oldname='product'related='inspection_id.product_id'store=True -
qualitative_valueMany2one → qc.test.question.valuecomodel_name='qc.test.question.value'domain="[('id', 'in', possible_ql_values)]"help='Value of the result for a qualitative question.'string='Qualitative value' -
quantitative_valueFloatdigits=dp.get_precision('Quality Control')help='Value of the result for a quantitative question.' args: 'Quantitative value' -
question_typeSelectionreadonly=Truestring='Question type' args: [('qualitative', 'Qualitative'), ('quantitative', 'Quantitative')] -
successBooleancompute='_compute_quality_test_check'store=Truestring='Success?' -
test_lineMany2one → qc.test.questioncomodel_name='qc.test.question'readonly=Truestring='Test question' -
test_uom_categoryMany2one → uom.categorycomodel_name='uom.category'related='test_uom_id.category_id'store=True -
test_uom_idMany2one → uom.uomcomodel_name='uom.uom'help='UoM for minimum and maximum values for a quantitative question.'readonly=Truestring='Test UoM' -
uom_idMany2one → uom.uomcomodel_name='uom.uom'domain="[('category_id', '=', test_uom_category)]"help='UoM of the inspection value for a quantitative question.'string='UoM' -
valid_valuesCharcompute='_compute_valid_values'store=Truestring='Valid values'
No public methods.
New fields (1)
-
testMany2one → qc.testcomodel_name='qc.test'string='Test'
-
action_create_test(self)@api.multi
New fields (8)
-
activeBooleandefault=True args: 'Active' -
categoryMany2one → qc.test.categorycomodel_name='qc.test.category'string='Category' -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>string='Company' -
fill_correct_valuesBooleanstring='Pre-fill with correct values' -
nameCharrequired=Truestring='Name'translate=True -
object_idReferenceselection=object_selection_valuesstring='Reference object' -
test_linesOne2many → qc.test.questioncomodel_name='qc.test.question'copy=Trueinverse_name='test'string='Questions' -
typeSelectiondefault='generic'required=Truestring='Type' args: [('generic', 'Generic'), ('related', 'Related')]
-
object_selection_values(self)@api.multi -
onchange_type(self)@api.onchange('type')
New fields (5)
-
activeBooleandefault=Truehelp='This field allows you to hide the category without removing it.'string='Active' -
child_idsOne2many → qc.test.categorycomodel_name='qc.test.category'inverse_name='parent_id'string='Child categories' -
complete_nameCharcompute='_compute_get_complete_name'string='Full name' -
nameCharrequired=Truetranslate=True args: 'Name' -
parent_idMany2one → qc.test.categorycomodel_name='qc.test.category'string='Parent category'
No public methods.
New fields (9)
-
max_valueFloatdigits=dp.get_precision('Quality Control')string='Max' -
min_valueFloatdigits=dp.get_precision('Quality Control')string='Min' -
nameCharrequired=Truestring='Name'translate=True -
notesTextstring='Notes' -
ql_valuesOne2many → qc.test.question.valuecomodel_name='qc.test.question.value'copy=Trueinverse_name='test_line'string='Qualitative values' -
sequenceIntegerdefault='10'required=Truestring='Sequence' -
testMany2one → qc.testcomodel_name='qc.test'string='Test' -
typeSelectionrequired=Truestring='Type' args: [('qualitative', 'Qualitative'), ('quantitative', 'Quantitative')] -
uom_idMany2one → uom.uomcomodel_name='uom.uom'string='Uom'
No public methods.
New fields (3)
-
nameCharrequired=Truestring='Name'translate=True -
okBooleanhelp='When this field is marked, the answer is considered correct.'string='Correct answer?' -
test_lineMany2one → qc.test.questioncomodel_name='qc.test.question'string='Test question'
No public methods.
New fields (4)
-
activeBooleandefault=Truestring='Active' -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>string='Company' -
nameCharrequired=Truestring='Name'translate=True -
partner_selectableBooleandefault=Falsehelp='This technical field is to allow to filter by partner in triggers'readonly=Truestring='Selectable by partner'
No public methods.
New fields (4)
-
partnersMany2many → res.partnercomodel_name='res.partner'domain="[('parent_id', '=', False)]"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.'string='Partners' -
testMany2one → qc.testcomodel_name='qc.test'required=True -
triggerMany2one → qc.triggercomodel_name='qc.trigger'required=True -
userMany2one → res.userscomodel_name='res.users'default=<expr>string='Responsible'track_visibility='always'
-
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.
New fields (1)
-
product_categoryMany2one → product.categorycomodel_name='product.category'
-
get_trigger_line_for_product(self, trigger, product, partner=False)
New fields (1)
-
productMany2one → product.productcomodel_name='product.product'
-
get_trigger_line_for_product(self, trigger, product, partner=False)
New fields (1)
-
product_templateMany2one → product.templatecomodel_name='product.template'
-
get_trigger_line_for_product(self, trigger, product, partner=False)
Loading…
Loading…
Loading…
Loading…