details:   https://code.tryton.org/tryton/commit/58a5087e215a
branch:    default
user:      Alex Alias Montserrar <[email protected]>
date:      Fri Mar 27 18:10:21 2026 +0100
description:
        Add a reference field to the quality inspections

        Closes #12436
diffstat:

 modules/quality/CHANGELOG                        |   1 +
 modules/quality/quality.py                       |  29 ++++++++++++++++++++++-
 modules/quality/view/quality_inspection_form.xml |   2 +
 modules/quality/view/quality_inspection_list.xml |   1 +
 4 files changed, 31 insertions(+), 2 deletions(-)

diffs (92 lines):

diff -r c0625ed0d3bb -r 58a5087e215a modules/quality/CHANGELOG
--- a/modules/quality/CHANGELOG Fri Mar 06 10:50:48 2026 +0100
+++ b/modules/quality/CHANGELOG Fri Mar 27 18:10:21 2026 +0100
@@ -1,3 +1,4 @@
+* Add a reference to the inspections
 * Add support for Python 3.14
 * Remove support for Python 3.9
 
diff -r c0625ed0d3bb -r 58a5087e215a modules/quality/quality.py
--- a/modules/quality/quality.py        Fri Mar 06 10:50:48 2026 +0100
+++ b/modules/quality/quality.py        Fri Mar 27 18:10:21 2026 +0100
@@ -9,8 +9,9 @@
 
 from trytond.i18n import gettext, lazy_gettext
 from trytond.model import (
-    ChatMixin, DeactivableMixin, DictSchemaMixin, MatchMixin, ModelSingleton,
-    ModelSQL, ModelStorage, ModelView, Unique, Workflow, dualmethod, fields)
+    ChatMixin, DeactivableMixin, DictSchemaMixin, Index, MatchMixin,
+    ModelSingleton, ModelSQL, ModelStorage, ModelView, Unique, Workflow,
+    dualmethod, fields)
 from trytond.model.exceptions import AccessError, ButtonActionException
 from trytond.modules.company.model import (
     CompanyMultiValueMixin, CompanyValueMixin, employee_field, reset_employee,
@@ -350,6 +351,7 @@
         }
 
     number = fields.Char("Number", required=True, readonly=True)
+    reference = fields.Char("Reference")
     company = fields.Many2One(
         'company.company', "Company", required=True, states=_states)
     origin = fields.Reference(
@@ -406,7 +408,12 @@
     @classmethod
     def __setup__(cls):
         cls.number.search_unaccented = False
+        cls.reference.search_unaccented = False
         super().__setup__()
+        t = cls.__table__()
+        cls._sql_indexes.update({
+                Index(t, (t.reference, Index.Similarity())),
+                })
         cls._transitions |= {
             ('pending', 'passed'),
             ('pending', 'failed'),
@@ -511,6 +518,24 @@
 
         return attributes
 
+    def get_rec_name(self, name):
+        items = [self.number]
+        if self.reference:
+            items.append('[%s]' % self.reference)
+        return ' '.join(items)
+
+    @classmethod
+    def search_rec_name(cls, name, clause):
+        _, operator, value = clause
+        if operator.startswith('!') or operator.startswith('not'):
+            bool_op = 'AND'
+        else:
+            bool_op = 'OR'
+        return [bool_op,
+            ('number', operator, value),
+            ('reference', operator, value),
+            ]
+
     @classmethod
     @ModelView.button
     @Workflow.transition('pending')
diff -r c0625ed0d3bb -r 58a5087e215a 
modules/quality/view/quality_inspection_form.xml
--- a/modules/quality/view/quality_inspection_form.xml  Fri Mar 06 10:50:48 
2026 +0100
+++ b/modules/quality/view/quality_inspection_form.xml  Fri Mar 27 18:10:21 
2026 +0100
@@ -9,6 +9,8 @@
 
     <label name="origin"/>
     <field name="origin"/>
+    <label name="reference"/>
+    <field name="reference"/>
 
     <notebook>
         <page name="points">
diff -r c0625ed0d3bb -r 58a5087e215a 
modules/quality/view/quality_inspection_list.xml
--- a/modules/quality/view/quality_inspection_list.xml  Fri Mar 06 10:50:48 
2026 +0100
+++ b/modules/quality/view/quality_inspection_list.xml  Fri Mar 27 18:10:21 
2026 +0100
@@ -5,6 +5,7 @@
     <field name="company" expand="1" optional="1"/>
     <field name="number" expand="1"/>
     <field name="control" expand="1" optional="0"/>
+    <field name="reference" expand="1" optional="1"/>
     <field name="origin" expand="1" optional="0"/>
     <field name="state"/>
 </tree>

Reply via email to