From 0d33c347cf3d49ea102db83419d76e8b486cd16b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 11 Oct 2022 00:44:49 +0200 Subject: [PATCH] Use declarative index definition for ModelSQL issue5757 review361251002 --- journal.py | 3 +-- statement.py | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/journal.py b/journal.py index f864f72dec..148b111573 100644 --- a/journal.py +++ b/journal.py @@ -21,8 +21,7 @@ class Journal(DeactivableMixin, ModelSQL, ModelView): }, 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 --git a/statement.py b/statement.py index ad913f3f74..a453f0fb44 100644 --- a/statement.py +++ b/statement.py @@ -12,7 +12,7 @@ from sql.operators import Concat 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 @@ class Statement(Workflow, ModelSQL, ModelView): 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 @@ class Statement(Workflow, ModelSQL, ModelView): }) 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 @@ class Statement(Workflow, ModelSQL, ModelView): ('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 @@ class Statement(Workflow, ModelSQL, ModelView): @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'),