changeset 45193366c468 in modules/sale_complaint:default
details: 
https://hg.tryton.org/modules/sale_complaint?cmd=changeset&node=45193366c468
description:
        Use declarative index definition for ModelSQL

        issue5757
        review361251002
diffstat:

 complaint.py |  20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diffs (52 lines):

diff -r 7132c833c6a3 -r 45193366c468 complaint.py
--- a/complaint.py      Sun Oct 09 19:01:25 2022 +0200
+++ b/complaint.py      Tue Oct 11 00:44:50 2022 +0200
@@ -8,7 +8,7 @@
 
 from trytond.i18n import gettext
 from trytond.model import (
-    DeactivableMixin, ModelSQL, ModelView, Workflow, fields)
+    DeactivableMixin, Index, ModelSQL, ModelView, Workflow, fields)
 from trytond.model.exceptions import AccessError
 from trytond.modules.company.model import (
     employee_field, reset_employee, set_employee)
@@ -38,8 +38,8 @@
         'readonly': Eval('state') != 'draft',
         }
 
-    number = fields.Char('Number', readonly=True, select=True)
-    reference = fields.Char('Reference', select=True)
+    number = fields.Char("Number", readonly=True)
+    reference = fields.Char("Reference")
     date = fields.Date('Date', states=_states)
     customer = fields.Many2One(
         'party.party', "Customer", required=True, states=_states,
@@ -129,7 +129,17 @@
 
     @classmethod
     def __setup__(cls):
+        cls.number.search_unaccented = False
+        cls.reference.search_unaccented = False
         super(Complaint, cls).__setup__()
+        t = cls.__table__()
+        cls._sql_indexes.update({
+                Index(t, (t.reference, Index.Similarity())),
+                Index(
+                    t,
+                    (t.state, Index.Equality()),
+                    where=t.state.in_(['draft', 'waiting', 'approved'])),
+                })
         cls._order.insert(0, ('date', 'DESC'))
         cls._transitions |= set((
                 ('draft', 'waiting'),
@@ -646,8 +656,8 @@
             | Bool(Eval('_parent_action.result', True))),
         }
 
-    action = fields.Many2One('sale.complaint.action', 'Action',
-        ondelete='CASCADE', select=True, required=True)
+    action = fields.Many2One(
+        'sale.complaint.action', "Action", ondelete='CASCADE', required=True)
     quantity = fields.Float(
         "Quantity", digits='unit', states=_states)
     unit = fields.Function(

Reply via email to