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'),