changeset 676141321e07 in modules/currency:default
details: https://hg.tryton.org/modules/currency?cmd=changeset&node=676141321e07
description:
Use declarative index definition for ModelSQL
issue5757
review361251002
diffstat:
currency.py | 15 +++++++++++----
fields.py | 6 +++---
2 files changed, 14 insertions(+), 7 deletions(-)
diffs (69 lines):
diff -r c3c7cf3e6ba5 -r 676141321e07 currency.py
--- a/currency.py Mon Sep 19 21:25:55 2022 +0200
+++ b/currency.py Tue Oct 11 00:44:49 2022 +0200
@@ -16,8 +16,8 @@
from trytond.i18n import gettext
from trytond.model import (
- Check, DeactivableMixin, DigitsMixin, ModelSQL, ModelView, SymbolMixin,
- Unique, fields)
+ Check, DeactivableMixin, DigitsMixin, Index, ModelSQL, ModelView,
+ SymbolMixin, Unique, fields)
from trytond.pool import Pool
from trytond.pyson import Eval, If
from trytond.rpc import RPC
@@ -256,7 +256,8 @@
class CurrencyRate(ModelSQL, ModelView):
"Currency Rate"
__name__ = 'currency.currency.rate'
- date = fields.Date('Date', required=True, select=True,
+ date = fields.Date(
+ "Date", required=True,
help="From when the rate applies.")
rate = fields.Numeric(
"Rate", digits=(rate_decimal * 2, rate_decimal), required=1,
@@ -276,6 +277,12 @@
('check_currency_rate', Check(t, t.rate >= 0),
'currency.msg_currency_rate_positive'),
]
+ cls._sql_indexes.add(
+ Index(
+ t,
+ (t.currency, Index.Equality()),
+ (t.date, Index.Range()),
+ order='DESC'))
cls._order.insert(0, ('date', 'DESC'))
@staticmethod
@@ -451,7 +458,7 @@
cron = fields.Many2One(
'currency.cron', "Cron",
- required=True, select=True, ondelete='CASCADE')
+ required=True, ondelete='CASCADE')
currency = fields.Many2One(
'currency.currency', "Currency",
required=True, ondelete='CASCADE')
diff -r c3c7cf3e6ba5 -r 676141321e07 fields.py
--- a/fields.py Mon Sep 19 21:25:55 2022 +0200
+++ b/fields.py Tue Oct 11 00:44:49 2022 +0200
@@ -11,8 +11,8 @@
"""
def __init__(self, string='', currency=None, digits=None, help='',
required=False, readonly=False, domain=None, states=None,
- select=False, on_change=None, on_change_with=None, depends=None,
- context=None, loading='eager'):
+ on_change=None, on_change_with=None, depends=None, context=None,
+ loading='eager'):
'''
:param currency: the name of the Many2One field which stores
the currency
@@ -25,7 +25,7 @@
depends.add(currency)
super().__init__(string=string, digits=digits, help=help,
required=required, readonly=readonly, domain=domain, states=states,
- select=select, on_change=on_change, on_change_with=on_change_with,
+ on_change=on_change, on_change_with=on_change_with,
depends=depends, context=context, loading=loading)
self.currency = currency