Commit ad2611858466bf0f7e8b58a93fb04bbe753aecda
1 parent
6c7f0db8
Exists in
master
and in
39 other branches
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 | from collections import OrderedDict | 2 | from collections import OrderedDict |
3 | 3 | ||
4 | +from django.core.cache import cache | ||
4 | from django.shortcuts import render | 5 | from django.shortcuts import render |
5 | 6 | ||
6 | from search.utils import trans | 7 | from search.utils import trans |
7 | from haystack.query import SearchQuerySet | 8 | from haystack.query import SearchQuerySet |
8 | 9 | ||
10 | +from proxy.models import WikiCollabCount, TicketCollabCount | ||
9 | from super_archives.models import Thread | 11 | from super_archives.models import Thread |
10 | 12 | ||
11 | 13 | ||
@@ -16,11 +18,22 @@ def index(request): | @@ -16,11 +18,22 @@ def index(request): | ||
16 | latest_threads = Thread.objects.all()[:6] | 18 | latest_threads = Thread.objects.all()[:6] |
17 | hottest_threads = Thread.highest_score.from_haystack()[:6] | 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 | context = { | 38 | context = { |
26 | 'hottest_threads': hottest_threads[:6], | 39 | 'hottest_threads': hottest_threads[:6], |