changeset 53f68e5978bd in modules/account_payment_sepa:default
details:
https://hg.tryton.org/modules/account_payment_sepa?cmd=changeset&node=53f68e5978bd
description:
Use declarative index definition for ModelSQL
issue5757
review361251002
diffstat:
payment.py | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
diffs (73 lines):
diff -r fc8e9d9cb870 -r 53f68e5978bd payment.py
--- a/payment.py Mon Oct 03 00:13:39 2022 +0200
+++ b/payment.py Tue Oct 11 00:44:49 2022 +0200
@@ -18,7 +18,7 @@
from trytond.config import config
from trytond.i18n import gettext
from trytond.model import (
- ModelSQL, ModelView, Unique, Workflow, dualmethod, fields)
+ Index, ModelSQL, ModelView, Unique, Workflow, dualmethod, fields)
from trytond.model.exceptions import AccessError
from trytond.modules.account_payment.exceptions import ProcessError
from trytond.modules.company import CompanyReport
@@ -465,7 +465,8 @@
class Mandate(Workflow, ModelSQL, ModelView):
'SEPA Mandate'
__name__ = 'account.payment.sepa.mandate'
- party = fields.Many2One('party.party', 'Party', required=True, select=True,
+ party = fields.Many2One(
+ 'party.party', "Party", required=True,
states={
'readonly': Eval('state').in_(
['requested', 'validated', 'cancelled']),
@@ -494,7 +495,7 @@
identification_readonly = fields.Function(fields.Boolean(
'Identification Readonly'), 'get_identification_readonly')
company = fields.Many2One(
- 'company.company', "Company", required=True, select=True,
+ 'company.company', "Company", required=True,
states={
'readonly': Eval('state') != 'draft',
})
@@ -569,6 +570,10 @@
('identification_unique', Unique(t, t.company, t.identification),
'account_payment_sepa.msg_mandate_unique_id'),
]
+ cls._sql_indexes.add(
+ Index(
+ t, (t.state, Index.Equality()),
+ where=t.state.in_(['draft', 'requested'])))
@classmethod
def __register__(cls, module_name):
@@ -801,22 +806,26 @@
('out', 'OUT'),
], 'Type', required=True, states=_states)
company = fields.Many2One(
- 'company.company', "Company", required=True, select=True,
+ 'company.company', "Company", required=True,
states={
'readonly': Eval('state') != 'draft',
})
- origin = fields.Reference('Origin', selection='get_origin', select=True,
- states=_states)
+ origin = fields.Reference("Origin", selection='get_origin', states=_states)
state = fields.Selection([
('draft', 'Draft'),
('waiting', 'Waiting'),
('done', 'Done'),
('cancelled', 'Cancelled'),
- ], "State", readonly=True, select=True, sort=False)
+ ], "State", readonly=True, sort=False)
@classmethod
def __setup__(cls):
super(Message, cls).__setup__()
+ t = cls.__table__()
+ cls._sql_indexes.add(
+ Index(
+ t, (t.state, Index.Equality()),
+ where=t.state.in_(['draft', 'waiting'])))
cls._transitions |= {
('draft', 'waiting'),
('waiting', 'done'),