diff --git a/bookwyrm/templates/settings/dashboard.html b/bookwyrm/templates/settings/dashboard.html index e8c77602d..81ed28f8a 100644 --- a/bookwyrm/templates/settings/dashboard.html +++ b/bookwyrm/templates/settings/dashboard.html @@ -77,63 +77,10 @@ - - - - {% endblock %} {% block scripts %} - + +{% include 'settings/dashboard_user_chart.html' %} +{% include 'settings/dashboard_status_chart.html' %} {% endblock %} diff --git a/bookwyrm/templates/settings/dashboard_status_chart.html b/bookwyrm/templates/settings/dashboard_status_chart.html new file mode 100644 index 000000000..bbacf3f46 --- /dev/null +++ b/bookwyrm/templates/settings/dashboard_status_chart.html @@ -0,0 +1,26 @@ +{% load i18n %} + + diff --git a/bookwyrm/templates/settings/dashboard_user_chart.html b/bookwyrm/templates/settings/dashboard_user_chart.html new file mode 100644 index 000000000..33be28f7e --- /dev/null +++ b/bookwyrm/templates/settings/dashboard_user_chart.html @@ -0,0 +1,29 @@ +{% load i18n %} + diff --git a/bookwyrm/views/admin/dashboard.py b/bookwyrm/views/admin/dashboard.py index 2ad7718a7..2d7e8bdb4 100644 --- a/bookwyrm/views/admin/dashboard.py +++ b/bookwyrm/views/admin/dashboard.py @@ -30,34 +30,33 @@ class Dashboard(View): user_stats = {"labels": [], "total": [], "active": []} interval_end = now - timedelta(days=buckets * bucket_size) while interval_end < timezone.now(): - user_stats["total"].append(user_queryset.filter( - created_date__lte=interval_end - ).count()) - user_stats["active"].append(user_queryset.filter( - local=True, - is_active=True, - last_active_date__gte=interval_end - timedelta(days=31), - created_date__lte=interval_end - ).count()) - user_stats["labels"].append(interval_end.strftime("%Y-%m-%d")) + user_stats["total"].append( + user_queryset.filter(created_date__day__lte=interval_end.day).count() + ) + user_stats["active"].append( + user_queryset.filter( + last_active_date__gt=interval_end - timedelta(days=31), + created_date__day__lte=interval_end.day, + ).count() + ) + user_stats["labels"].append(interval_end.strftime("%b %d")) interval_end += timedelta(days=bucket_size) - status_queryset = models.Status.objects.filter( - user__local=True, deleted=False - ) + status_queryset = models.Status.objects.filter(user__local=True, deleted=False) status_stats = {"labels": [], "total": []} interval_start = now - timedelta(days=buckets * bucket_size) interval_end = interval_start + timedelta(days=bucket_size) while interval_end < timezone.now(): - status_stats["total"].append(status_queryset.filter( - created_date__gte=interval_start, - created_date__lte=interval_end, - ).count()) - status_stats["labels"].append(interval_start.strftime("%Y-%m-%d")) + status_stats["total"].append( + status_queryset.filter( + created_date__day__gt=interval_start.day, + created_date__day__lte=interval_end.day, + ).count() + ) + status_stats["labels"].append(interval_end.strftime("%b %d")) interval_start = interval_end interval_end += timedelta(days=bucket_size) - data = { "users": user_queryset.count(), "active_users": user_queryset.filter(