Commit ad2611858466bf0f7e8b58a93fb04bbe753aecda

Authored by Luan
1 parent 6c7f0db8

minor changes and caching home chart - closes #84

Showing 1 changed file with 18 additions and 5 deletions   Show diff stats
src/home/views.py
1 1  
2 2 from collections import OrderedDict
3 3  
  4 +from django.core.cache import cache
4 5 from django.shortcuts import render
5 6  
6 7 from search.utils import trans
7 8 from haystack.query import SearchQuerySet
8 9  
  10 +from proxy.models import WikiCollabCount, TicketCollabCount
9 11 from super_archives.models import Thread
10 12  
11 13  
... ... @@ -16,11 +18,22 @@ def index(request):
16 18 latest_threads = Thread.objects.all()[:6]
17 19 hottest_threads = Thread.highest_score.from_haystack()[:6]
18 20  
19   - count_types = OrderedDict()
20   - for type in ['thread', 'ticket', 'wiki', 'changeset', 'attachment']:
21   - count_types[trans(type)] = SearchQuerySet().filter(
22   - type=type,
23   - ).count()
  21 + count_types = cache.get('home_chart')
  22 + if count_types is None:
  23 + count_types = OrderedDict()
  24 + for type in ['thread', 'changeset', 'attachment']:
  25 + count_types[trans(type)] = SearchQuerySet().filter(
  26 + type=type,
  27 + ).count()
  28 +
  29 + count_types[trans('ticket')] = sum([
  30 + ticket.count for ticket in TicketCollabCount.objects.all()
  31 + ])
  32 +
  33 + count_types[trans('wiki')] = sum([
  34 + wiki.count for wiki in WikiCollabCount.objects.all()
  35 + ])
  36 + cache.set('home_chart', count_types, 60)
24 37  
25 38 context = {
26 39 'hottest_threads': hottest_threads[:6],
... ...