changeset 4abc73ff5b0d in modules/sale_blanket_agreement:default
details:
https://hg.tryton.org/modules/sale_blanket_agreement?cmd=changeset&node=4abc73ff5b0d
description:
Use declarative index definition for ModelSQL
issue5757
review361251002
diffstat:
sale.py | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
diffs (66 lines):
diff -r 6bd40c834527 -r 4abc73ff5b0d sale.py
--- a/sale.py Mon Oct 10 19:16:59 2022 +0200
+++ b/sale.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('customer', 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',
})
customer = fields.Many2One(
- 'party.party', "Customer", required=True, select=True,
+ 'party.party', "Customer", required=True,
states={
'readonly': (
(Eval('state') != 'draft')
@@ -186,7 +186,17 @@
@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 +414,7 @@
blanket_agreement = fields.Many2One(
'sale.blanket_agreement', "Blanket Agreement",
- ondelete='CASCADE', select=True, required=True,
+ ondelete='CASCADE', required=True,
states={
'readonly': (
_states['readonly'] & Bool(Eval('blanket_agreement'))),