OdooWiki OCA HUB

Quality control

quality_control folder_open OCA/manufacture open_in_new
Quality control License: AGPL-3

This module provides a generic infrastructure for quality tests. The idea is that it can be later reused for doing quality inspections on production lots or any other area of the company.

auto_awesome What this module does

AI-generated from the code · Odoo 12.0

Create quality control tests with questions and valid answers, then run inspections on products to record whether they pass or fail. Inspections can be started manually or triggered automatically from product, product template or product category settings.

This module adds a complete quality control area to Odoo, available from the new "Quality control" menu.

  • Under Tests (for quality managers) you define tests: a name, a category, a type (generic or related to a specific record), and a list of questions. Each question is either qualitative (a list of possible answers, at least one marked as correct) or quantitative (a minimum and maximum value with a unit of measure). The system refuses to save a qualitative question without a correct answer, or a quantitative question whose minimum is higher than its maximum.
  • Inspections are the actual checks. You can create one manually, choose the test with the "Set test" button, and the questions are copied into the inspection lines. You then enter the measured value or pick an answer; each line is automatically marked as successful or not, and the inspection as a whole succeeds only when every line succeeds.
  • The inspection follows a workflow: Draft, Ready, Waiting supervisor approval, Quality success, Quality failed or Canceled. A manager approves a waiting inspection. Inspections that were generated automatically cannot be deleted, and only draft inspections can be deleted.
  • Triggers can be configured on a product, a product template or a product category, optionally limited to certain partners, so that inspections are created automatically for the right products.
  • Inspections and inspection lines have their own list and search screens with filters for correct/incorrect results and grouping by product, test, responsible, state and more.

Depends on

product

Menus it adds

InspectionsInspection linesQuality controlInspectionsTestsConfigurationTest categoriesTestsTriggers
Models and fields (15)
  • qc.test · new modelname (Name), type (Type), active (Active), category (Category), object_id (Reference object), company_id (Company), test_lines (Questions), fill_correct_values (Pre-fill with correct values)
  • qc.trigger · new modelname (Name), active (Active), company_id (Company), partner_selectable (Selectable by partner)
  • qc.inspection · new modelqty (Quantity), date (Date), name (Inspection number), test (Test), user (Responsible), state (State), success (Success), object_id (Reference), company_id (Company), product_id, auto_generated (Auto-generated), external_notes (External notes), internal_notes (Internal notes), inspection_lines (Inspection lines)
  • product.product · extends an existing modelqc_triggers (Quality control triggers)
  • qc.trigger.line · new modeltest, user (Responsible), trigger, partners (Partners)
  • product.category · extends an existing modelqc_triggers (Quality control triggers)
  • product.template · extends an existing modelqc_triggers (Quality control triggers)
  • qc.test.category · new modelname (Name), active (Active), child_ids (Child categories), parent_id (Parent category), complete_name (Full name)
  • qc.test.question · new modelname (Name), test (Test), type (Type), notes (Notes), uom_id (Uom), sequence (Sequence), max_value (Max), min_value (Min), ql_values (Qualitative values)
  • qc.inspection.line · new modelname (Question), notes (Notes), uom_id (UoM), success (Success?), max_value (Max), min_value (Min), test_line (Test question), product_id, test_uom_id (Test UoM), valid_values (Valid values), inspection_id (Inspection), question_type (Question type), qualitative_value (Qualitative value), test_uom_category, possible_ql_values (Answers), quantitative_value (Quantitative value)
  • qc.inspection.set.test · new modeltest (Test)
  • qc.test.question.value · new modelok (Correct answer?), name (Name), test_line (Test question)
  • qc.trigger.product_line · new modelproduct
  • qc.trigger.product_category_line · new modelproduct_category
  • qc.trigger.product_template_line · new modelproduct_template

Text generated by AI (DeepSeek) from reading the Odoo 12.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/manufacture.

terminal Installation and usage

OCA documentation · Odoo 12.0
  • Question: The thing to be checked. We have two types of questions:
  • Qualitative: The result is a description, color, yes, no...
  • Quantitative: The result must be within a range.
  • Possible values: The values chosen in qualitative questions.
  • Test: The set of questions to be used in inspections.
  • Once these values are set, we define the inspection.

We have a generic test that can be applied to any model: shipments, invoices or product, or a test related, making it specific to a particular product and that eg apply whenever food is sold or when creating a batch.

Once these parameters are set, we can just pass the test. We create a new inspection, selecting a relationship with the model (sale, stock move...), and pressing "Select test" button to choose the test to pass. Then, you must fill the lines depending on the chosen test.

The complete inspection workflow is:

Draft -> Confirmed -> Success | | -> Failure (Pending approval) -> Approved

Based on the nan_quality_control_* modules from NaN·tic.

No verified information in OCA: Installation, Usage.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.