fmartingr
/
shelfzilla
Archived
1
0
Fork 0
This repository has been archived on 2021-06-29. You can view files and clone it, but cannot push or open issues or pull requests.
shelfzilla/shelfzilla/apps/homepage/views.py

41 lines
1.4 KiB
Python

from django.views.generic import View
from django.template import RequestContext
from django.shortcuts import render_to_response
from django.db.models import Count
from shelfzilla.apps.users.models import User
from shelfzilla.apps.manga.models import Volume, Series
class HomepageView(View):
template = 'homepage/home.html'
def get(self, request):
data = {}
from datetime import datetime
# TOP 5
data['TOP_5_COLLECTORS'] = User.objects.filter(pk__gt=1)\
.annotate(num_volumes=Count('have_volumes'))\
.order_by('-num_volumes')[:5]
# Latest manga
data['LATEST_MANGA_ADDED'] = Volume.objects\
.filter(release_date__lte=datetime.now())\
.order_by('-release_date')[:6]
# Future releases
data['FUTURE_RELEASES'] = Volume.objects\
.filter(release_date__gt=datetime.now())\
.order_by('release_date')[:6]
# Stats
data['STATS'] = {
'users': User.objects.count() - 1,
'series': Series.objects.count(),
'series_review': Series.objects.filter(for_review=True).count(),
'volumes': Volume.objects.count(),
'volumes_review': Volume.objects.filter(for_review=True).count(),
}
ctx = RequestContext(request, data)
return render_to_response(self.template, context_instance=ctx)