From 360d1232faa4515dc03c08ff429e77856d70a92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 17 May 2014 18:41:20 +0200 Subject: [PATCH] Fix joins when ordering on ir.model.field issue3910 review10311002 --- trytond/model/fields/field.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/trytond/model/fields/field.py b/trytond/model/fields/field.py index b20a204984..1404b80629 100644 --- a/trytond/model/fields/field.py +++ b/trytond/model/fields/field.py @@ -346,11 +346,22 @@ class FieldTranslate(Field): model = IrModel.__table__() join = self._get_translation_join(Model, name, translation, model, table) - tables[key] = { - None: (join.right, join.condition), - } + if join.left == table: + tables[key] = { + None: (join.right, join.condition), + } + else: + tables[key] = { + None: (join.left.right, join.left.condition), + 'translation': { + None: (join.right, join.condition), + }, + } else: - translation, _ = tables[key][None] + if 'translation' not in tables[key]: + translation, _ = tables[key][None] + else: + translation, _ = tables[key]['translation'][None] return [Coalesce(NullIf(translation.value, ''), self.sql_column(table))]