Added general stats
This commit is contained in:
parent
093c491cde
commit
016d529941
3 changed files with 46 additions and 4 deletions
|
@ -1,7 +1,22 @@
|
|||
{% extends 'base.html' %}
|
||||
{# vim: set ts=2 sw=2 et tw=80: #}
|
||||
|
||||
{% block title %}Home{% endblock %}
|
||||
{% block content %}
|
||||
<h1 class="center">Arrow counter</h1>
|
||||
<h4 class="center">A simple online arrow counter</h4>
|
||||
<h5 class="center" style="margin-bottom: 3rem">A simple online arrow counter</h5>
|
||||
{% if user.is_authenticated %}
|
||||
<div class="card-panel grey lighten-2">
|
||||
<h5 class="center">Arrows shot this year:</h5>
|
||||
<p class="center"><strong style="font-size: 2.7rem">{{ yearArrows }}</strong></p>
|
||||
</div>
|
||||
<div class="card-panel grey lighten-2">
|
||||
<h5 class="center">Arrows shot this month:</h5>
|
||||
<p class="center"><strong style="font-size: 2.7rem">{{ monthArrows }}</strong></p>
|
||||
</div>
|
||||
<div class="card-panel grey lighten-2">
|
||||
<h5 class="center">Arrows shot this week:</h5>
|
||||
<p class="center"><strong style="font-size: 2.7rem">{{ weekArrows }}</strong></p>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
<li><a href="{% url "index" %}">Home</a></li>
|
||||
<li class="divider" tabindex="-1"></li>
|
||||
{% if user.is_authenticated %}
|
||||
<li><a href="{% url "count_list" %}">Counts</a></li>
|
||||
<li><a href="{% url "stats" %}">Weekly stats</a></li>
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# vim: set ts=4 sw=4 et tw=80:
|
||||
|
||||
from django.shortcuts import render
|
||||
from django.http import HttpResponse, JsonResponse
|
||||
from django.views import generic
|
||||
|
@ -24,7 +26,30 @@ def tofirstdayinisoweek(year, week):
|
|||
|
||||
def index(request):
|
||||
template = loader.get_template('index.html')
|
||||
return HttpResponse(template.render({}, request))
|
||||
|
||||
if request.user.is_authenticated:
|
||||
now = datetime.today()
|
||||
|
||||
yearArrows = ArrowCount.objects.filter(user=request.user) \
|
||||
.filter(date__range=(date(now.year, 1, 1), date(now.year, 12, 31))) \
|
||||
.aggregate(s=Sum('count'))
|
||||
|
||||
monthArrows = ArrowCount.objects.filter(user=request.user) \
|
||||
.filter(date__year=now.year, date__month=now.month) \
|
||||
.aggregate(s=Sum('count'))
|
||||
|
||||
weekday = now.isoweekday()
|
||||
weekArrows = ArrowCount.objects.filter(user=request.user) \
|
||||
.filter(date__range=(now - timedelta(days=weekday), now + timedelta(days=6-weekday))) \
|
||||
.aggregate(s=Sum('count'))
|
||||
|
||||
return HttpResponse(template.render({
|
||||
'yearArrows': 0 if yearArrows['s'] is None else yearArrows['s'],
|
||||
'monthArrows': 0 if monthArrows['s'] is None else monthArrows['s'],
|
||||
'weekArrows': 0 if weekArrows['s'] is None else weekArrows['s']
|
||||
}, request))
|
||||
else:
|
||||
return HttpResponse(template.render({}), request)
|
||||
|
||||
def count_stats(request):
|
||||
template = loader.get_template('stats.html')
|
||||
|
|
Loading…
Reference in a new issue