Skip to content
Snippets Groups Projects
Commit bc8e81a5 authored by Jan Mach's avatar Jan Mach
Browse files

Added the time window pager to event dashboard and timeline modules.

(Redmine issue: #4321)
parent 861a9b3d
No related branches found
No related tags found
No related merge requests found
......@@ -914,6 +914,14 @@ class AbstractDashboardView(SQLAlchemyViewMixin, HawatSearchView): # pylint: di
)
)
def do_before_response(self, **kwargs):
"""
*Interface implementation* of :py:func:`hawat.base.HawatRenderableView.do_before_response`.
"""
self.response_context.update(
quicksearch_list = self.get_quicksearch_by_time()
)
class DashboardView(HTMLViewMixin, AbstractDashboardView): # pylint: disable=locally-disabled,too-many-ancestors
"""
......
......@@ -330,7 +330,7 @@ class EventDashboardForm(flask_wtf.FlaskForm):
validators = [
wtforms.validators.Optional()
],
format = '%Y-%m-%d %H:%M',
format = '%Y-%m-%d %H:%M:%S',
default = lambda: hawat.forms.default_dt_with_delta(hawat.const.HAWAT_DEFAULT_RESULT_TIMEDELTA)
)
dt_to = hawat.forms.DateTimeLocalField(
......@@ -338,8 +338,8 @@ class EventDashboardForm(flask_wtf.FlaskForm):
validators = [
wtforms.validators.Optional()
],
format = '%Y-%m-%d %H:%M'
format = '%Y-%m-%d %H:%M:%S'
)
submit = wtforms.SubmitField(
lazy_gettext('Calculate')
lazy_gettext('Search')
)
......@@ -12,18 +12,23 @@
<form method="GET" class="form" action="{{ url_for(request.endpoint) }}">
<div class="row">
<div class="col-sm-6">
{{ macros_form.render_form_item_datetime(g.search_form.dt_from, 'datetimepicker-hm-from') }}
{{ macros_form.render_form_item_datetime(g.search_form.dt_from, 'datetimepicker-from') }}
</div>
<div class="col-sm-6">
{{ macros_form.render_form_item_datetime(g.search_form.dt_to, 'datetimepicker-hm-to') }}
{{ macros_form.render_form_item_datetime(g.search_form.dt_to, 'datetimepicker-to') }}
</div>
</div>
<hr>
<div class="btn-group" role="group">
{{ g.search_form.submit(class_='btn btn-primary') }}
<a role="button" class="btn btn-default" href="{{ url_for('events.dashboard') }}">{{ gettext('Clear') }}</a>
<div class="btn-toolbar" role="toolbar" aria-label="{{ gettext('Form submission buttons') }}">
<div class="btn-group" role="group">
{{ g.search_form.submit(class_='btn btn-primary') }}
<a role="button" class="btn btn-default" href="{{ url_for('events.dashboard') }}">
{{ gettext('Clear') }}
</a>
{{ macros_site.render_quicksearch(quicksearch_list) }}
</div>
</div>
</form>
</div> <!-- /.jumbotron -->
......@@ -37,6 +42,10 @@
</div> <!-- /.row -->
{%- if searched %}
{%- if 'tiid' in request.args %}
{{ macros_site.render_timepager(query_params, form_data.dt_from, request.args.tiid) }}
{%- endif %}
{%- if items %}
<!-- Search result dump - BEGIN ----------------------------------->
......@@ -348,24 +357,25 @@
{%- if permission_can('developer') %}
<hr>
{{ macros_site.render_raw_var('form_data', form_data) }}
{{ macros_site.render_raw_var('statistics', statistics) }}
{%- endif %}
{%- else %}
{%- call macros_site.render_alert('warning', False) %}
{{ gettext('No data matches your search criteria.') }}
{{ gettext('No data matches your search criteria.') }}
{%- endcall %}
{%- endif %}
{%- if permission_can('developer') %}
{%- endif %}
{%- if permission_can('developer') %}
<hr>
{{ macros_site.render_raw_var('quicksearch_list', quicksearch_list) }}
{{ macros_site.render_raw_var('form_data', form_data) }}
{{ macros_site.render_raw_var('request_args', request.args) }}
{{ macros_site.render_raw_var('query_params', query_params) }}
{%- endif %}
{%- endif %}
{%- endblock content %}
......@@ -270,7 +270,6 @@
{%- endif %}
{%- endif %}
{%- if permission_can('developer') %}
......
......@@ -229,6 +229,10 @@ class AbstractSearchView(PsycopgViewMixin, HawatSearchView): # pylint: disable=
"""
*Interface implementation* of :py:func:`hawat.base.HawatSearchView.do_after_search`.
"""
self.logger.debug(
"Calculating IDEA event timeline from %d records.",
len(items)
)
if items:
dt_from = self.response_context['form_data'].get('dt_from', None)
if dt_from:
......@@ -252,7 +256,15 @@ class AbstractSearchView(PsycopgViewMixin, HawatSearchView): # pylint: disable=
max_count = flask.current_app.config['HAWAT_CHART_TIMELINE_MAXSTEPS']
)
)
#self.response_context.pop('items', None)
self.response_context.pop('items', None)
def do_before_response(self, **kwargs):
"""
*Interface implementation* of :py:func:`hawat.base.HawatRenderableView.do_before_response`.
"""
self.response_context.update(
quicksearch_list = self.get_quicksearch_by_time()
)
@staticmethod
def get_event_factory():
......
......@@ -36,14 +36,14 @@ class SimpleTimelineSearchForm(flask_wtf.FlaskForm):
validators = [
wtforms.validators.Optional()
],
format = '%Y-%m-%d %H:%M'
format = '%Y-%m-%d %H:%M:%S'
)
dt_to = hawat.forms.DateTimeLocalField(
lazy_gettext('Detection time to:'),
validators = [
wtforms.validators.Optional()
],
format = '%Y-%m-%d %H:%M'
format = '%Y-%m-%d %H:%M:%S'
)
source_addrs = hawat.forms.CommaListField(
lazy_gettext('Source addresses:'),
......
......@@ -17,18 +17,23 @@
{{ macros_form.render_form_item_default(g.search_form.source_addrs) }}
</div>
<div class="col-sm-4">
{{ macros_form.render_form_item_datetime(g.search_form.dt_from, 'datetimepicker-hm-from') }}
{{ macros_form.render_form_item_datetime(g.search_form.dt_from, 'datetimepicker-from') }}
</div>
<div class="col-sm-4">
{{ macros_form.render_form_item_datetime(g.search_form.dt_to, 'datetimepicker-hm-to') }}
{{ macros_form.render_form_item_datetime(g.search_form.dt_to, 'datetimepicker-to') }}
</div>
</div>
<hr>
<div class="btn-group" role="group">
{{ g.search_form.submit(class_='btn btn-primary') }}
<a role="button" class="btn btn-default" href="{{ url_for('timeline.search') }}">{{ gettext('Clear') }}</a>
<div class="btn-toolbar" role="toolbar" aria-label="{{ gettext('Form submission buttons') }}">
<div class="btn-group" role="group">
{{ g.search_form.submit(class_='btn btn-primary') }}
<a role="button" class="btn btn-default" href="{{ url_for('timeline.search') }}">
{{ gettext('Clear') }}
</a>
{{ macros_site.render_quicksearch(quicksearch_list) }}
</div>
</div>
</form>
</div> <!-- /.jumbotron -->
......@@ -48,6 +53,10 @@
{%- endcall %}
{%- endif %}
{%- if 'tiid' in request.args %}
{{ macros_site.render_timepager(query_params, form_data.dt_from, request.args.tiid) }}
{%- endif %}
{%- if items_count %}
<!-- Search result dump - BEGIN ----------------------------------->
......@@ -188,7 +197,6 @@
{%- if permission_can('developer') %}
<hr>
{{ macros_site.render_raw_var('form_data', form_data) }}
{{ macros_site.render_raw_var('statistics', statistics) }}
{%- endif %}
......@@ -200,12 +208,14 @@
{%- endif %}
{%- if permission_can('developer') %}
{%- endif %}
{%- if permission_can('developer') %}
<hr>
{{ macros_site.render_raw_var('quicksearch_list', quicksearch_list) }}
{{ macros_site.render_raw_var('form_data', form_data) }}
{{ macros_site.render_raw_var('request_args', request.args) }}
{{ macros_site.render_raw_var('query_params', query_params) }}
{%- endif %}
{%- endif %}
{%- endblock content %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment