From 5276c7e114e5387408f927809983bb9fba1c7610 Mon Sep 17 00:00:00 2001 From: Jean Cavallo Date: Thu, 30 May 2024 10:44:58 +0200 Subject: [PATCH] trytond: Correctly override _convert_domain [CUSTOM] Fix PCLAS-901 --- trytond-gis/trytond_gis/fields.py | 2 +- trytond/trytond/model/fields/char.py | 4 ++-- trytond/trytond/model/fields/dict.py | 5 ++--- trytond/trytond/model/fields/field.py | 5 ++--- trytond/trytond/model/fields/many2many.py | 3 +-- trytond/trytond/model/fields/many2one.py | 7 +++---- trytond/trytond/model/fields/multiselection.py | 5 ++--- trytond/trytond/model/fields/one2many.py | 3 +-- trytond/trytond/model/fields/reference.py | 5 ++--- trytond/trytond/model/fields/text.py | 2 +- 10 files changed, 17 insertions(+), 24 deletions(-) diff --git a/trytond-gis/trytond_gis/fields.py b/trytond-gis/trytond_gis/fields.py index 53e873308e4..2bb90d1ca43 100644 --- a/trytond-gis/trytond_gis/fields.py +++ b/trytond-gis/trytond_gis/fields.py @@ -36,7 +36,7 @@ def sql_format(self, value): return _GeoJSON(value) return super(Geometry, self).sql_format(value) - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): table, _ = tables[None] name, operator, value = domain diff --git a/trytond/trytond/model/fields/char.py b/trytond/trytond/model/fields/char.py index 7b0805c2f83..7f2da9c9ec4 100644 --- a/trytond/trytond/model/fields/char.py +++ b/trytond/trytond/model/fields/char.py @@ -127,11 +127,11 @@ def _domain_value(self, operator, value): value = database.unaccent(value) return value - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): transaction = Transaction() context = transaction.context database = transaction.database - expression = super().convert_domain(domain, tables, Model) + expression = super()._convert_domain(domain, tables, Model) name, operator, value = domain if operator.endswith('ilike'): table, _ = tables[None] diff --git a/trytond/trytond/model/fields/dict.py b/trytond/trytond/model/fields/dict.py index 9fc5ab87f2b..6202b69857e 100644 --- a/trytond/trytond/model/fields/dict.py +++ b/trytond/trytond/model/fields/dict.py @@ -116,11 +116,10 @@ def _domain_add_null(self, column, operator, value, expression): expression &= (column != Null) return expression - @domain_method - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): name, operator, value = domain[:3] if '.' not in name: - return super().convert_domain(domain, tables, Model) + return super()._convert_domain(domain, tables, Model) database = Transaction().database table, _ = tables[None] name, key = name.split('.', 1) diff --git a/trytond/trytond/model/fields/field.py b/trytond/trytond/model/fields/field.py index 208375a80b2..a3acfc9be96 100644 --- a/trytond/trytond/model/fields/field.py +++ b/trytond/trytond/model/fields/field.py @@ -685,10 +685,9 @@ def _get_translation_column(self, Model, name, domain=None): language = get_parent_language(language) return table, join, column - @domain_method - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): if not self.translate: - return super(FieldTranslate, self).convert_domain( + return super(FieldTranslate, self)._convert_domain( domain, tables, Model) table, _ = tables[None] name, operator, value = domain diff --git a/trytond/trytond/model/fields/many2many.py b/trytond/trytond/model/fields/many2many.py index a251bfbf5b6..ded078b4087 100644 --- a/trytond/trytond/model/fields/many2many.py +++ b/trytond/trytond/model/fields/many2many.py @@ -363,8 +363,7 @@ def get_parent(ids): return ~expression return expression - @domain_method - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): from ..modelsql import convert_from pool = Pool() Rule = pool.get('ir.rule') diff --git a/trytond/trytond/model/fields/many2one.py b/trytond/trytond/model/fields/many2one.py index 7b1a2354a8d..ef7dd5ccf9b 100644 --- a/trytond/trytond/model/fields/many2one.py +++ b/trytond/trytond/model/fields/many2one.py @@ -197,8 +197,7 @@ def convert_domain_tree(self, domain, tables): return expression @inactive_records - @domain_method - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): pool = Pool() Rule = pool.get('ir.rule') Target = self.get_target() @@ -257,7 +256,7 @@ def convert_domain(self, domain, tables, Model): return expression if not isinstance(value, str): - return super(Many2One, self).convert_domain(domain, tables, + return super(Many2One, self)._convert_domain(domain, tables, Model) else: target_name = 'rec_name' @@ -273,7 +272,7 @@ def convert_domain(self, domain, tables, Model): target_domain = [target_domain, rule_domain] elif target_name == 'id': # No need to join with the target table - return super().convert_domain( + return super()._convert_domain( (self.name, operator, value), tables, Model) target_tables = self._get_target_tables(tables) target_table, _ = target_tables[None] diff --git a/trytond/trytond/model/fields/multiselection.py b/trytond/trytond/model/fields/multiselection.py index fa86be2984d..cf91cf9834f 100644 --- a/trytond/trytond/model/fields/multiselection.py +++ b/trytond/trytond/model/fields/multiselection.py @@ -83,11 +83,10 @@ def _domain_value(self, operator, value): domain_value = database.json_get(domain_value) return domain_value - @domain_method - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): name, operator, value = domain[:3] if operator not in {'in', 'not in'}: - return super().convert_domain(domain, tables, Model) + return super()._convert_domain(domain, tables, Model) database = Transaction().database table, _ = tables[None] raw_column = self.sql_column(table) diff --git a/trytond/trytond/model/fields/one2many.py b/trytond/trytond/model/fields/one2many.py index 8d4f30f3a0a..ca586478aac 100644 --- a/trytond/trytond/model/fields/one2many.py +++ b/trytond/trytond/model/fields/one2many.py @@ -320,8 +320,7 @@ def remove(self, inst, records): inst, self.name, [r for r in getattr(inst, self.name) if r not in records]) - @domain_method - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): from ..modelsql import convert_from pool = Pool() Rule = pool.get('ir.rule') diff --git a/trytond/trytond/model/fields/reference.py b/trytond/trytond/model/fields/reference.py index 3d7a1917555..4c46c0ed14f 100644 --- a/trytond/trytond/model/fields/reference.py +++ b/trytond/trytond/model/fields/reference.py @@ -195,10 +195,9 @@ def sql_id(self, column, Model): Model.id.sql_type().base) @inactive_records - @domain_method - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): if '.' not in domain[0]: - return super(Reference, self).convert_domain(domain, tables, Model) + return super(Reference, self)._convert_domain(domain, tables, Model) pool = Pool() name, operator, value, target = domain[:4] Target = pool.get(target) diff --git a/trytond/trytond/model/fields/text.py b/trytond/trytond/model/fields/text.py index c1e7c019cd6..e255b56aeda 100644 --- a/trytond/trytond/model/fields/text.py +++ b/trytond/trytond/model/fields/text.py @@ -54,7 +54,7 @@ def _rank_column(self, column, name, Model): value, language=transaction.language) return database.rank_full_text(column, value, normalize=['rank']) - def convert_domain(self, domain, tables, Model): + def _convert_domain(self, domain, tables, Model): transaction = Transaction() database = transaction.database table, _ = tables[None]