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