changeset 83f764027415 in trytond:5.8
details: https://hg.tryton.org/trytond?cmd=changeset&node=83f764027415
description:
Use column to order when translation value is empty
issue10094
review331871002
(grafted from da66215e2990963d77efffb59c9aad4543e0161e)
diffstat:
trytond/model/fields/field.py | 2 +-
trytond/tests/test_modelsql.py | 25 +++++++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletions(-)
diffs (47 lines):
diff -r 7ab27a034d8f -r 83f764027415 trytond/model/fields/field.py
--- a/trytond/model/fields/field.py Sat Feb 20 00:48:50 2021 +0100
+++ b/trytond/model/fields/field.py Sat Feb 20 00:58:39 2021 +0100
@@ -605,7 +605,7 @@
column = Coalesce(NullIf(column, ''), translation.value)
language = get_parent_language(language)
- return [Coalesce(column, self.sql_column(table))]
+ return [Coalesce(NullIf(column, ''), self.sql_column(table))]
def definition(self, model, language):
definition = super().definition(model, language)
diff -r 7ab27a034d8f -r 83f764027415 trytond/tests/test_modelsql.py
--- a/trytond/tests/test_modelsql.py Sat Feb 20 00:48:50 2021 +0100
+++ b/trytond/tests/test_modelsql.py Sat Feb 20 00:58:39 2021 +0100
@@ -769,6 +769,31 @@
self.assertEqual(other.name, "Baz")
@with_transaction()
+ def test_order_empty_translation(self):
+ "Test order on empty translation value"
+ pool = Pool()
+ Model = pool.get('test.modelsql.translation')
+ Translation = pool.get('ir.translation')
+
+ with Transaction().set_context(language=self.default_language):
+ records = Model.create(
+ [{'name': "A"}, {'name': "B"}, {'name': "C"}])
+
+ translation, = Translation.search([
+ ('lang', '=', self.default_language),
+ ('name', '=', 'test.modelsql.translation,name'),
+ ('type', '=', 'model'),
+ ('res_id', '=', records[1].id),
+ ])
+ translation.value = ''
+ translation.save()
+
+ with Transaction().set_context(language=self.default_language):
+ self.assertEqual(
+ Model.search([], order=[('name', 'ASC')]),
+ records)
+
+ @with_transaction()
def test_search_unique_result(self):
"Test unique result on search"
pool = Pool()