From ad2611858466bf0f7e8b58a93fb04bbe753aecda Mon Sep 17 00:00:00 2001 From: Luan Date: Tue, 10 Dec 2013 10:57:06 -0200 Subject: [PATCH] minor changes and caching home chart - closes #84 --- src/home/views.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/home/views.py b/src/home/views.py index cc5d803..3a82695 100644 --- a/src/home/views.py +++ b/src/home/views.py @@ -1,11 +1,13 @@ from collections import OrderedDict +from django.core.cache import cache from django.shortcuts import render from search.utils import trans from haystack.query import SearchQuerySet +from proxy.models import WikiCollabCount, TicketCollabCount from super_archives.models import Thread @@ -16,11 +18,22 @@ def index(request): latest_threads = Thread.objects.all()[:6] hottest_threads = Thread.highest_score.from_haystack()[:6] - count_types = OrderedDict() - for type in ['thread', 'ticket', 'wiki', 'changeset', 'attachment']: - count_types[trans(type)] = SearchQuerySet().filter( - type=type, - ).count() + count_types = cache.get('home_chart') + if count_types is None: + count_types = OrderedDict() + for type in ['thread', 'changeset', 'attachment']: + count_types[trans(type)] = SearchQuerySet().filter( + type=type, + ).count() + + count_types[trans('ticket')] = sum([ + ticket.count for ticket in TicketCollabCount.objects.all() + ]) + + count_types[trans('wiki')] = sum([ + wiki.count for wiki in WikiCollabCount.objects.all() + ]) + cache.set('home_chart', count_types, 60) context = { 'hottest_threads': hottest_threads[:6], -- libgit2 0.21.2