From ccb76f3601fe59c6e0176f299d31a8a2ff4d062c Mon Sep 17 00:00:00 2001 From: richard-dds Date: Tue, 13 Nov 2018 17:06:29 -0500 Subject: [PATCH] Show relevant pages --- atst/filters.py | 14 ++++++++++ atst/routes/__init__.py | 2 +- templates/audit_log.html | 58 +++++++++++++++++++++++++++++++--------- 3 files changed, 60 insertions(+), 14 deletions(-) diff --git a/atst/filters.py b/atst/filters.py index c9aa682f..03526529 100644 --- a/atst/filters.py +++ b/atst/filters.py @@ -76,6 +76,19 @@ def dateFromString(value, formatter="%m/%Y"): return datetime.datetime.strptime(value, formatter) +def pageWindow(pagination, size=2): + page = pagination.page + num_pages = pagination.pages + + over = max(0, page + size - num_pages) + under = min(0, page - size - 1) + + return ( + max(1, (page - size) - over), + min(num_pages, (page + size) - under) + ) + + def register_filters(app): app.jinja_env.filters["iconSvg"] = iconSvg app.jinja_env.filters["dollars"] = dollars @@ -87,3 +100,4 @@ def register_filters(app): app.jinja_env.filters["renderList"] = renderList app.jinja_env.filters["formattedDate"] = formattedDate app.jinja_env.filters["dateFromString"] = dateFromString + app.jinja_env.filters["pageWindow"] = pageWindow diff --git a/atst/routes/__init__.py b/atst/routes/__init__.py index e6b2b57a..c53c6a88 100644 --- a/atst/routes/__init__.py +++ b/atst/routes/__init__.py @@ -124,7 +124,7 @@ def logout(): def get_pagination_opts(request, default_page=1, default_per_page=50): return { "page": int(request.args.get("page", default_page)), - "per_page": int(request.args.get("per_page", default_per_page)), + "per_page": int(request.args.get("perPage", default_per_page)), } diff --git a/templates/audit_log.html b/templates/audit_log.html index 76afa6e3..696368ff 100644 --- a/templates/audit_log.html +++ b/templates/audit_log.html @@ -40,18 +40,50 @@ - {% set page_route = 'atst.activity_history' %} - {% set pagination = audit_events %} + {% macro Page(pagination, route, i, label=None) -%} + {% set label = label or i %} - + {% if i == pagination.page %} + + {% else %} + {{ label }} + {% endif%} + {%- endmacro %} + + {% macro Pagination(pagination, route) -%} + {% set first %} + {{ Page(pagination, route, 1, label="first") }} + {{ Page(pagination, route, pagination.page - 1, label="prev") }} + {% endset %} + + {% set last %} + {{ Page(pagination, route, pagination.page + 1, label="next") }} + {{ Page(pagination, route, pagination.pages, label="last") }} + {% endset %} + + + {%- endmacro %} + {{ Pagination(audit_events, 'atst.activity_history') }} {% endblock %}