X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/87e084d47c335cd6f0b3e91d614999f55d148044..e26eab6acc241c451e02f229fe99402675c99f81:/src/catalogue/helpers.py diff --git a/src/catalogue/helpers.py b/src/catalogue/helpers.py index b48c483ea..e47607928 100644 --- a/src/catalogue/helpers.py +++ b/src/catalogue/helpers.py @@ -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: