From f4d19fdda2532152c1418f52d0c31b26d5fac2a3 Mon Sep 17 00:00:00 2001 From: Jan Mach <jan.mach@cesnet.cz> Date: Thu, 20 Feb 2020 19:40:56 +0100 Subject: [PATCH] Fix: Fixed error in code flow. (Redmine issue: #6232) --- lib/hawat/base.py | 58 ++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/lib/hawat/base.py b/lib/hawat/base.py index da4e24b0c..5ce49b5fc 100644 --- a/lib/hawat/base.py +++ b/lib/hawat/base.py @@ -1603,6 +1603,36 @@ class BaseSearchView(RenderableView, HawatUtils): label = 'Done searching for "{}", items found: {}'.format(flask.request.full_path, len(items)), log = True ) + + self.response_context.update( + searched = True, + items = items, + items_count = len(items), + form_data = form_data + ) + + # Not all search forms support result paging. + if 'page' in form_data: + self.response_context.update( + pager_index_low = ((form_data['page'] - 1) * form_data['limit']) + 1, + pager_index_high = ((form_data['page'] - 1) * form_data['limit']) + len(items), + pager_index_limit = ((form_data['page'] - 1) * form_data['limit']) + form_data['limit'] + ) + + self.mark_time( + 'postprocess_begin', + tag = 'search', + label = 'Begin postprocessing for "{}"'.format(flask.request.full_path), + log = True + ) + self.do_after_search(items) + self.mark_time( + 'postprocess_end', + tag = 'search', + label = 'Done postprocessing for "{}"'.format(flask.request.full_path), + log = True + ) + except Exception as err: # pylint: disable=locally-disabled,broad-except match = re.match('invalid IP4R value: "([^"]+)"', str(err)) if match: @@ -1618,34 +1648,6 @@ class BaseSearchView(RenderableView, HawatUtils): else: raise - self.response_context.update( - searched = True, - items = items, - items_count = len(items), - form_data = form_data - ) - - # Not all search forms support result paging. - if 'page' in form_data: - self.response_context.update( - pager_index_low = ((form_data['page'] - 1) * form_data['limit']) + 1, - pager_index_high = ((form_data['page'] - 1) * form_data['limit']) + len(items), - pager_index_limit = ((form_data['page'] - 1) * form_data['limit']) + form_data['limit'] - ) - - self.mark_time( - 'postprocess_begin', - tag = 'search', - label = 'Begin postprocessing for "{}"'.format(flask.request.full_path), - log = True - ) - self.do_after_search(items) - self.mark_time( - 'postprocess_end', - tag = 'search', - label = 'Done postprocessing for "{}"'.format(flask.request.full_path), - log = True - ) else: self.response_context.update( form_errors = [(field_name, err) for field_name, error_messages in form.errors.items() for err in error_messages] -- GitLab