headers in tag list
[wolnelektury.git] / src / catalogue / helpers.py
index b48c483..e476079 100644 (file)
@@ -3,20 +3,18 @@
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from django.conf import settings
-from django.contrib.contenttypes.models import ContentType
-from django.db.models import Count
 from .models import Tag, Book
 from os.path import getmtime
 import cPickle
 from collections import defaultdict
 
 
-
 BOOK_CATEGORIES = ('author', 'epoch', 'genre', 'kind')
 
-
 _COUNTERS = None
 _COUNTER_TIME = None
+
+
 def get_top_level_related_tags(tags, categories=None):
     """
     Finds tags related to given tags through books, and counts their usage.
@@ -46,8 +44,6 @@ def get_top_level_related_tags(tags, categories=None):
         tag.count = _COUNTERS['count'][tuple(sorted(tagids + (tag.pk,)))]
         yield tag
 
-    #~ return related
-
 
 def update_counters():
     def combinations(things):
@@ -61,7 +57,7 @@ def update_counters():
     def count_for_book(book, count_by_combination=None, parent_combinations=None):
         if not parent_combinations:
             parent_combinations = set()
-        tags = sorted(tuple(t.pk for t in book.tags.filter(category__in=('author', 'genre', 'epoch', 'kind'))))
+        tags = sorted(book.tags.filter(category__in=('author', 'genre', 'epoch', 'kind')).values_list('pk', flat=True))
         combs = list(combinations(tags))
         for c in combs:
             if c not in parent_combinations: