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

        issue5757
        review361251002
diffstat:

 purchase.py |  21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diffs (55 lines):

diff -r e5a666841eff -r e54866b2727b purchase.py
--- a/purchase.py       Wed Sep 14 19:27:28 2022 +0200
+++ b/purchase.py       Tue Oct 11 00:44:50 2022 +0200
@@ -8,7 +8,7 @@
 from sql.functions import CharLength
 
 from trytond.i18n import gettext
-from trytond.model import ModelSQL, ModelView, Workflow, fields
+from trytond.model import Index, ModelSQL, ModelView, Workflow, fields
 from trytond.modules.company import CompanyReport
 from trytond.modules.currency.fields import Monetary
 from trytond.modules.product import price_digits
@@ -95,11 +95,11 @@
         help="The unique identifier of the quotation.")
     revision = fields.Integer('Revision', readonly=True,
         help="Number incremented each time the quotation is sent.")
-    reference = fields.Char('Reference', select=True,
+    reference = fields.Char(
+        "Reference",
         help="The reference used by the supplier.")
     company = fields.Many2One(
-        'company.company', "Company",
-        required=True, select=True,
+        'company.company', "Company", required=True,
         states={
             'readonly': Eval('state') != 'draft',
             })
@@ -132,7 +132,16 @@
 
     @classmethod
     def __setup__(cls):
+        cls.number.search_unaccented = False
+        cls.reference.search_unaccented = False
         super(Quotation, 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', 'sent'])),
+                })
         cls._transitions |= set((
                 ('draft', 'cancelled'),
                 ('cancelled', 'draft'),
@@ -293,8 +302,8 @@
         states={
             'required': Bool(Eval('unit_price')),
             })
-    request = fields.Many2One('purchase.request', 'Request',
-        ondelete='CASCADE', select=True, required=True,
+    request = fields.Many2One(
+        'purchase.request', "Request", ondelete='CASCADE', required=True,
         domain=[
             If(Eval('quotation_state') == 'draft',
                 ('state', 'in', ['draft', 'quotation', 'received']), (), ),

Reply via email to