Update web/core/views.py
This commit is contained in:
parent
3c282d86ec
commit
3a931926cf
@ -427,59 +427,59 @@ def export_csv(request):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
#@login_required
|
||||||
def stats_page(request):
|
#def stats_page(request):
|
||||||
total = Entry.objects.count()
|
# total = Entry.objects.count()
|
||||||
today = date.today()
|
# today = date.today()
|
||||||
last30 = Entry.objects.filter(date_added__gte=today - timedelta(days=30)).count()
|
# last30 = Entry.objects.filter(date_added__gte=today - timedelta(days=30)).count()
|
||||||
last365 = Entry.objects.filter(date_added__gte=today - timedelta(days=365)).count()
|
# last365 = Entry.objects.filter(date_added__gte=today - timedelta(days=365)).count()
|
||||||
|
#
|
||||||
from collections import Counter
|
# from collections import Counter
|
||||||
|
#
|
||||||
months = []
|
# months = []
|
||||||
y = today.year
|
# y = today.year
|
||||||
m = today.month
|
# m = today.month
|
||||||
for i in range(12):
|
# for i in range(12):
|
||||||
mm = m - i
|
# mm = m - i
|
||||||
yy = y
|
# yy = y
|
||||||
while mm <= 0:
|
# while mm <= 0:
|
||||||
mm += 12
|
# mm += 12
|
||||||
yy -= 1
|
# yy -= 1
|
||||||
from datetime import date as _d
|
# from datetime import date as _d
|
||||||
start = _d(yy, mm, 1)
|
# start = _d(yy, mm, 1)
|
||||||
end = _d(yy + 1, 1, 1) if mm == 12 else _d(yy, mm + 1, 1)
|
# end = _d(yy + 1, 1, 1) if mm == 12 else _d(yy, mm + 1, 1)
|
||||||
label = f"{yy}-{mm:02d}"
|
# label = f"{yy}-{mm:02d}"
|
||||||
months.append((label, start, end))
|
# months.append((label, start, end))
|
||||||
months = list(reversed(months))
|
# months = list(reversed(months))
|
||||||
|
#
|
||||||
series = [
|
# series = [
|
||||||
(label, Entry.objects.filter(date_added__gte=start, date_added__lt=end).count())
|
# (label, Entry.objects.filter(date_added__gte=start, date_added__lt=end).count())
|
||||||
for label, start, end in months
|
# for label, start, end in months
|
||||||
]
|
# ]
|
||||||
peak = max((v for _, v in series), default=1)
|
# peak = max((v for _, v in series), default=1)
|
||||||
heights = [
|
# heights = [
|
||||||
(label, value, 8 + int((value / peak) * 100) if peak else 8)
|
# (label, value, 8 + int((value / peak) * 100) if peak else 8)
|
||||||
for label, value in series
|
# for label, value in series
|
||||||
]
|
# ]
|
||||||
|
#
|
||||||
counts = Counter()
|
# counts = Counter()
|
||||||
for subj in Entry.objects.exclude(subject="").values_list("subject", flat=True):
|
# 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()]:
|
# for tag in [t.strip() for t in subj.split(",") if t.strip()]:
|
||||||
counts[tag.lower()] += 1
|
# counts[tag.lower()] += 1
|
||||||
top_subjects = [{"name": n.title(), "count": c} for n, c in counts.most_common(20)]
|
# top_subjects = [{"name": n.title(), "count": c} for n, c in counts.most_common(20)]
|
||||||
|
#
|
||||||
return render(
|
# return render(
|
||||||
request,
|
# request,
|
||||||
"stats.html",
|
# "stats.html",
|
||||||
{
|
# {
|
||||||
"total": total,
|
# "total": total,
|
||||||
"last30": last30,
|
# "last30": last30,
|
||||||
"last365": last365,
|
# "last365": last365,
|
||||||
"series": series,
|
# "series": series,
|
||||||
"heights": heights,
|
# "heights": heights,
|
||||||
"top_subjects": top_subjects,
|
# "top_subjects": top_subjects,
|
||||||
},
|
# },
|
||||||
)
|
# )
|
||||||
|
|
||||||
|
|
||||||
# ========= Scripture Normalizer =========
|
# ========= Scripture Normalizer =========
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user