From 3a931926cf2cfc3c4802fa9896881a17ef05b201 Mon Sep 17 00:00:00 2001 From: Joshua Laymon Date: Fri, 22 Aug 2025 00:44:18 +0000 Subject: [PATCH] Update web/core/views.py --- web/core/views.py | 106 +++++++++++++++++++++++----------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/web/core/views.py b/web/core/views.py index 112f9eb..e6b8873 100644 --- a/web/core/views.py +++ b/web/core/views.py @@ -427,59 +427,59 @@ def export_csv(request): return response -@login_required -def stats_page(request): - total = Entry.objects.count() - today = date.today() - last30 = Entry.objects.filter(date_added__gte=today - timedelta(days=30)).count() - last365 = Entry.objects.filter(date_added__gte=today - timedelta(days=365)).count() - - from collections import Counter - - months = [] - y = today.year - m = today.month - for i in range(12): - mm = m - i - yy = y - while mm <= 0: - mm += 12 - yy -= 1 - from datetime import date as _d - start = _d(yy, mm, 1) - end = _d(yy + 1, 1, 1) if mm == 12 else _d(yy, mm + 1, 1) - label = f"{yy}-{mm:02d}" - months.append((label, start, end)) - months = list(reversed(months)) - - series = [ - (label, Entry.objects.filter(date_added__gte=start, date_added__lt=end).count()) - for label, start, end in months - ] - peak = max((v for _, v in series), default=1) - heights = [ - (label, value, 8 + int((value / peak) * 100) if peak else 8) - for label, value in series - ] - - counts = Counter() - for subj in Entry.objects.exclude(subject="").values_list("subject", flat=True): - for tag in [t.strip() for t in subj.split(",") if t.strip()]: - counts[tag.lower()] += 1 - top_subjects = [{"name": n.title(), "count": c} for n, c in counts.most_common(20)] - - return render( - request, - "stats.html", - { - "total": total, - "last30": last30, - "last365": last365, - "series": series, - "heights": heights, - "top_subjects": top_subjects, - }, - ) +#@login_required +#def stats_page(request): +# total = Entry.objects.count() +# today = date.today() +# last30 = Entry.objects.filter(date_added__gte=today - timedelta(days=30)).count() +# last365 = Entry.objects.filter(date_added__gte=today - timedelta(days=365)).count() +# +# from collections import Counter +# +# months = [] +# y = today.year +# m = today.month +# for i in range(12): +# mm = m - i +# yy = y +# while mm <= 0: +# mm += 12 +# yy -= 1 +# from datetime import date as _d +# start = _d(yy, mm, 1) +# end = _d(yy + 1, 1, 1) if mm == 12 else _d(yy, mm + 1, 1) +# label = f"{yy}-{mm:02d}" +# months.append((label, start, end)) +# months = list(reversed(months)) +# +# series = [ +# (label, Entry.objects.filter(date_added__gte=start, date_added__lt=end).count()) +# for label, start, end in months + # ] +# peak = max((v for _, v in series), default=1) +# heights = [ +# (label, value, 8 + int((value / peak) * 100) if peak else 8) +# for label, value in series +# ] +# +# counts = Counter() +# for subj in Entry.objects.exclude(subject="").values_list("subject", flat=True): +# for tag in [t.strip() for t in subj.split(",") if t.strip()]: +# counts[tag.lower()] += 1 +# top_subjects = [{"name": n.title(), "count": c} for n, c in counts.most_common(20)] +# +# return render( +# request, +# "stats.html", +# { +# "total": total, +# "last30": last30, +# "last365": last365, +# "series": series, +# "heights": heights, +# "top_subjects": top_subjects, +# }, +# ) # ========= Scripture Normalizer =========