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

        issue5757
        review361251002
diffstat:

 product.py |   2 +-
 sale.py    |  19 +++++++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

diffs (82 lines):

diff -r 938e3a6615d2 -r 6f21f145a0f6 product.py
--- a/product.py        Sat Oct 01 15:12:38 2022 +0200
+++ b/product.py        Tue Oct 11 00:44:50 2022 +0200
@@ -49,5 +49,5 @@
     "Product Gross Price"
     __name__ = 'product.gross_price'
     template = fields.Many2One(
-        'product.template', "Template", ondelete='CASCADE', select=True)
+        'product.template', "Template", ondelete='CASCADE')
     gross_price = fields.Numeric("Gross Price", digits=price_digits)
diff -r 938e3a6615d2 -r 6f21f145a0f6 sale.py
--- a/sale.py   Sat Oct 01 15:12:38 2022 +0200
+++ b/sale.py   Tue Oct 11 00:44:50 2022 +0200
@@ -11,7 +11,7 @@
 
 from trytond.i18n import gettext
 from trytond.model import (
-    DeactivableMixin, Exclude, ModelSQL, ModelView, Workflow, fields)
+    DeactivableMixin, Exclude, Index, ModelSQL, ModelView, Workflow, fields)
 from trytond.model.exceptions import AccessError
 from trytond.modules.account.tax import TaxableMixin
 from trytond.modules.currency.fields import Monetary
@@ -28,7 +28,7 @@
 class POS(ModelSQL, ModelView):
     "Point of Sale"
     __name__ = 'sale.point'
-    name = fields.Char("Name", required=True, select=True)
+    name = fields.Char("Name", required=True)
     company = fields.Many2One('company.company', "Company", required=True)
     tax_included = fields.Boolean(
         "Tax Included",
@@ -120,7 +120,7 @@
             ('company', '=', Eval('company', -1)),
             ])
     number = fields.Char(
-        "Number", readonly=True, select=True,
+        "Number", readonly=True,
         states={
             'required': Eval('state').in_(['done', 'posted']),
             })
@@ -150,7 +150,7 @@
             ('done', "Done"),
             ('posted', "Posted"),
             ('cancelled', "Cancelled"),
-            ], "State", readonly=True, select=True, sort=False)
+            ], "State", readonly=True, sort=False)
 
     move = fields.Many2One(
         'account.move', "Move", readonly=True,
@@ -165,7 +165,13 @@
 
     @classmethod
     def __setup__(cls):
+        cls.number.search_unaccented = False
         super().__setup__()
+        t = cls.__table__()
+        cls._sql_indexes.add(
+            Index(
+                t, (t.state, Index.Equality()),
+                where=t.state.in_(['open', 'done'])))
         cls._transitions |= {
             ('open', 'done'),
             ('done', 'posted'),
@@ -771,6 +777,8 @@
                 Exclude(t, (Coalesce(t.previous_session, -t.point), Equal)),
                 'sale_point.msg_cash_session_previous_unique'),
             ]
+        cls._sql_indexes.add(
+            Index(t, (t.state, Index.Equality()), where=t.state == 'open'))
         cls._transitions |= {
             ('open', 'closed'),
             ('closed', 'open'),
@@ -1215,6 +1223,9 @@
     @classmethod
     def __setup__(cls):
         super().__setup__()
+        t = cls.__table__()
+        cls._sql_indexes.add(
+            Index(t, (t.state, Index.Equality()), where=t.state == 'draft'))
         cls._transitions |= {
             ('draft', 'posted'),
             }

Reply via email to