From 07e893992585bc0f2fd2b488b6ec6b17c3cfcd6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 26 Jan 2010 12:15:35 +0100 Subject: [PATCH] Raise exception when search function is missing on Function fields for issue1378 --- CHANGELOG | 1 + trytond/ir/translation.py | 1 + trytond/ir/translation.xml | 9 +++++++++ trytond/model/fields/function.py | 4 +++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 108181ad6e..c1cbe7fa65 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Raise exception when search function is missing on Function fields * Add LRU memoization, use it to cache compiled code for safe_eval. * Add PySON to replace python string evaluation on client side * Add JSON-RPC diff --git a/trytond/ir/translation.py b/trytond/ir/translation.py index f7d17d6123..a970ce7752 100644 --- a/trytond/ir/translation.py +++ b/trytond/ir/translation.py @@ -901,6 +901,7 @@ class TranslationClean(Wizard): 'required_field', 'foreign_model_missing', 'foreign_model_exist', + 'search_function_missing', ): continue if model_name in self.pool.object_name_list(): diff --git a/trytond/ir/translation.xml b/trytond/ir/translation.xml index 9a95fd10ba..a639a7d206 100644 --- a/trytond/ir/translation.xml +++ b/trytond/ir/translation.xml @@ -193,6 +193,15 @@ this repository contains the full copyright notices and license terms. --> ir + + search_function_missing + en_US + error + Missing search function on field "%s". + Missing search function on field "%s". + ir + + ir.translation.set_report.init diff --git a/trytond/model/fields/function.py b/trytond/model/fields/function.py index 16b911f173..2d3320df25 100644 --- a/trytond/model/fields/function.py +++ b/trytond/model/fields/function.py @@ -92,12 +92,14 @@ class Function(Field): :param cursor: The database cursor. :param user: The user id. :param model: The model. + :param name: The name of the field. :param args: The search domain. See ModelStorage.search :param context: The context. :return: New list of domain. ''' if not self.fnct_search: - return [] + model.raise_user_error(cursor, 'search_function_missing', + name, context=context) return getattr(model, self.fnct_search)(cursor, user, name, args, context=context)