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 %} -