From fd361383f7471649ede4dc8ee99c06f092c9a60b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 11 Oct 2022 00:44:49 +0200 Subject: [PATCH] Use declarative index definition for ModelSQL issue5757 review361251002 --- party.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/party.py b/party.py index cd14f0518f..a07408fd32 100644 --- a/party.py +++ b/party.py @@ -9,7 +9,7 @@ from sql.aggregate import Min from sql.conditionals import Coalesce from trytond.config import config -from trytond.model import ModelSQL, ModelView, fields +from trytond.model import Index, ModelSQL, ModelView, fields from trytond.pool import Pool, PoolMeta from trytond.pyson import Eval, If from trytond.transaction import Transaction @@ -44,12 +44,12 @@ class Relation(ModelSQL): 'Party Relation' __name__ = 'party.relation' - from_ = fields.Many2One('party.party', 'From', required=True, select=True, - ondelete='CASCADE') - to = fields.Many2One('party.party', 'To', required=True, select=True, - ondelete='CASCADE') - type = fields.Many2One('party.relation.type', 'Type', required=True, - select=True) + from_ = fields.Many2One( + 'party.party', "From", required=True, ondelete='CASCADE') + to = fields.Many2One( + 'party.party', "To", required=True, ondelete='CASCADE') + type = fields.Many2One( + 'party.relation.type', 'Type', required=True) start_date = fields.Date( "Start Date", domain=[ @@ -66,6 +66,16 @@ class Relation(ModelSQL): ]) active = fields.Function(fields.Boolean("Active"), 'get_active') + @classmethod + def __setup__(cls): + super().__setup__() + if not callable(cls.table_query): + t = cls.__table__() + cls._sql_indexes.update({ + Index(t, (t.from_, Index.Equality())), + Index(t, (t.to, Index.Equality())), + }) + def get_active(self, name): pool = Pool() Date = pool.get('ir.date')