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)