Stats: Add ability to select date range

This commit is contained in:
rubenwardy
2023-06-14 22:47:08 +01:00
parent 516361345e
commit 80c42637df
9 changed files with 102 additions and 22 deletions

View File

@@ -30,6 +30,20 @@
{% endmacro %}
{% macro render_daterange_selector(options) %}
<nav class="dropdown d-inline-block">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownDateRange" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ _("Date range...") }}
</button>
<div class="dropdown-menu" aria-labelledby="dropdownDateRange">
{% for option in options %}
<a class="dropdown-item" href="{{ option[1] }}">{{ option[0] }}</a>
{% endfor %}
</div>
</nav>
{% endmacro %}
{% macro render_package_stats(source, downloads) %}
<noscript>
<p class="alert alert-danger">

View File

@@ -4,7 +4,8 @@
{{ _("Statistics") }} - {{ package.title }}
{% endblock %}
{% from "macros/stats.html" import render_package_stats, render_package_stats_js, render_package_selector %}
{% from "macros/stats.html" import render_package_stats, render_package_stats_js,
render_package_selector, render_daterange_selector with context %}
{% block scriptextra %}
{{ render_package_stats_js() }}
@@ -16,8 +17,9 @@
<i class="fas fa-download mr-1"></i>
{{ _("Download (.csv)") }}
</a>
{{ render_daterange_selector(options) }}
{{ render_package_selector(package.author, package=package) }}
</div>
<h2 class="mt-0">{{ _("Statistics") }}</h2>
{{ render_package_stats(package.getURL('api.package_stats'), package.downloads) }}
{{ render_package_stats(package.getURL('api.package_stats', start=start, end=end), package.downloads) }}
{% endblock %}

View File

@@ -4,7 +4,8 @@
{{ _("Statistics for %(display_name)s's packages", display_name=user.display_name) }}
{% endblock %}
{% from "macros/stats.html" import render_package_stats, render_package_stats_js, render_package_selector %}
{% from "macros/stats.html" import render_package_stats, render_package_stats_js,
render_package_selector, render_daterange_selector with context %}
{% block scriptextra %}
{{ render_package_stats_js() }}
@@ -12,8 +13,9 @@
{% block content %}
<div class="float-right">
{{ render_daterange_selector(options) }}
{{ render_package_selector(user, package=None) }}
</div>
<h2 class="mt-0">{{ self.title() }}</h2>
{{ render_package_stats(url_for("api.user_stats", username=user.username), downloads) }}
{{ render_package_stats(url_for("api.user_stats", username=user.username, start=start, end=end), downloads) }}
{% endblock %}