changeset ca0cd6fcd41d in modules/party_relationship:default
details:
https://hg.tryton.org/modules/party_relationship?cmd=changeset&node=ca0cd6fcd41d
description:
Use declarative index definition for ModelSQL
issue5757
review361251002
diffstat:
party.py | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diffs (48 lines):
diff -r e3ef2a617aa3 -r ca0cd6fcd41d party.py
--- a/party.py Tue Jun 21 10:23:30 2022 +0200
+++ b/party.py Tue Oct 11 00:44:49 2022 +0200
@@ -9,7 +9,7 @@
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 @@
'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 @@
])
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')