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

        issue5757
        review361251002
diffstat:

 journal.py   |   3 +--
 statement.py |  24 +++++++++++++++++-------
 2 files changed, 18 insertions(+), 9 deletions(-)

diffs (75 lines):

diff -r 04b857ac0c35 -r aa78d2c53e82 journal.py
--- a/journal.py        Sun Sep 11 17:46:09 2022 +0200
+++ b/journal.py        Tue Oct 11 00:44:49 2022 +0200
@@ -21,8 +21,7 @@
             },
         depends={'company'})
     currency = fields.Many2One('currency.currency', 'Currency', required=True)
-    company = fields.Many2One('company.company', 'Company', required=True,
-            select=True)
+    company = fields.Many2One('company.company', "Company", required=True)
     company_party = fields.Function(
         fields.Many2One(
             'party.party', "Company Party",
diff -r 04b857ac0c35 -r aa78d2c53e82 statement.py
--- a/statement.py      Sun Sep 11 17:46:09 2022 +0200
+++ b/statement.py      Tue Oct 11 00:44:49 2022 +0200
@@ -12,7 +12,7 @@
 from trytond.config import config
 from trytond.i18n import gettext
 from trytond.model import (
-    Check, DictSchemaMixin, ModelSQL, ModelView, Workflow, fields,
+    Check, DictSchemaMixin, Index, ModelSQL, ModelView, Workflow, fields,
     sequence_ordered)
 from trytond.model.exceptions import AccessError
 from trytond.modules.company import CompanyReport
@@ -71,10 +71,9 @@
 
     name = fields.Char('Name', required=True)
     company = fields.Many2One(
-        'company.company', "Company", required=True, select=True,
-        states=_states)
-    journal = fields.Many2One('account.statement.journal', 'Journal',
-        required=True, select=True,
+        'company.company', "Company", required=True, states=_states)
+    journal = fields.Many2One(
+        'account.statement.journal', "Journal", required=True,
         domain=[
             ('company', '=', Eval('company', -1)),
             ],
@@ -83,7 +82,7 @@
             })
     currency = fields.Function(fields.Many2One(
             'currency.currency', "Currency"), 'on_change_with_currency')
-    date = fields.Date('Date', required=True, select=True)
+    date = fields.Date("Date", required=True)
     start_balance = Monetary(
         "Start Balance", currency='currency', digits='currency',
         states=_balance_states)
@@ -116,7 +115,7 @@
             ('validated', "Validated"),
             ('cancelled', "Cancelled"),
             ('posted', "Posted"),
-            ], "State", readonly=True, select=True, sort=False)
+            ], "State", readonly=True, sort=False)
     validation = fields.Function(fields.Char('Validation'),
         'on_change_with_validation')
     to_reconcile = fields.Function(
@@ -130,6 +129,17 @@
     @classmethod
     def __setup__(cls):
         super(Statement, cls).__setup__()
+        t = cls.__table__()
+        cls._sql_indexes.update({
+                Index(
+                    t,
+                    (t.journal, Index.Equality()),
+                    (t.date, Index.Range(order='DESC'))),
+                Index(
+                    t,
+                    (t.state, Index.Equality()),
+                    where=t.state.in_(['draft', 'validated'])),
+                })
         cls._order[0] = ('id', 'DESC')
         cls._transitions |= set((
                 ('draft', 'validated'),

Reply via email to