changeset 955cc110ac8c in modules/purchase_blanket_agreement:default
details:
https://hg.tryton.org/modules/purchase_blanket_agreement?cmd=changeset&node=955cc110ac8c
description:
Use declarative index definition for ModelSQL
issue5757
review361251002
diffstat:
purchase.py | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diffs (65 lines):
diff -r 469640216dbf -r 955cc110ac8c purchase.py
--- a/purchase.py Mon Oct 10 19:16:59 2022 +0200
+++ b/purchase.py Tue Oct 11 00:44:50 2022 +0200
@@ -6,7 +6,7 @@
from itertools import groupby
from trytond.i18n import gettext
-from trytond.model import ModelSQL, ModelView, Workflow, fields
+from trytond.model import Index, ModelSQL, ModelView, Workflow, fields
from trytond.modules.currency.fields import Monetary
from trytond.modules.product import price_digits, round_price
from trytond.modules.product.exceptions import UOMValidationError
@@ -111,22 +111,22 @@
_rec_name = 'number'
company = fields.Many2One(
- 'company.company', "Company", required=True, select=True,
+ 'company.company', "Company", required=True,
states={
'readonly': (
(Eval('state') != 'draft')
| Eval('lines', [0])
| Eval('supplier', True)),
})
- number = fields.Char("Number", readonly=True, select=True)
- reference = fields.Char("Reference", select=True)
+ number = fields.Char("Number", readonly=True)
+ reference = fields.Char("Reference")
description = fields.Char(
"Description",
states={
'readonly': Eval('state') != 'draft',
})
supplier = fields.Many2One(
- 'party.party', "Supplier", required=True, select=True,
+ 'party.party', "Supplier", required=True,
states={
'readonly': (
(Eval('state') != 'draft')
@@ -186,7 +186,16 @@
@classmethod
def __setup__(cls):
+ cls.number.search_unaccented = False
+ cls.reference.search_unaccented = False
super().__setup__()
+ t = cls.__table__()
+ cls._sql_indexes.update({
+ Index(t, (t.reference, Index.Similarity())),
+ Index(
+ t, (t.state, Index.Equality()),
+ where=t.state.in_(['draft', 'running'])),
+ })
cls._order = [
('from_date', 'DESC NULLS FIRST'),
('id', 'DESC'),
@@ -404,7 +413,7 @@
blanket_agreement = fields.Many2One(
'purchase.blanket_agreement', "Blanket Agreement",
- ondelete='CASCADE', select=True, required=True,
+ ondelete='CASCADE', required=True,
states={
'readonly': (
_states['readonly'] & Bool(Eval('blanket_agreement'))),