X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/9c5d9a4e77a10b4e60d89d3890e49002bd7f3993..4e290186955957b103282f78036b344e7e38d279:/apps/catalogue/views.py diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 47abe637d..102b38ee5 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -105,8 +105,9 @@ def tagged_object_list(request, tags=''): raise Http404 theme_is_set = [tag for tag in tags if tag.category == 'theme'] - shelf_is_set = len(tags) == 1 and tags[0].category == 'set' - my_shelf_is_set = shelf_is_set and request.user.is_authenticated() and request.user == tags[0].user + shelf_is_set = [tag for tag in tags if tag.category == 'set'] + only_shelf = shelf_is_set and len(tags) == 1 + only_my_shelf = only_shelf and request.user.is_authenticated() and request.user == tags[0].user objects = only_author = pd_counter = None categories = {} @@ -136,11 +137,12 @@ def tagged_object_list(request, tags=''): else: # get relevant books and their tags objects = models.Book.tagged.with_all(tags).order_by() - l_tags = [book.book_tag() for book in objects] - # eliminate descendants - descendants_keys = [book.pk for book in models.Book.tagged.with_any(l_tags)] - if descendants_keys: - objects = objects.exclude(pk__in=descendants_keys) + if not shelf_is_set: + # eliminate descendants + l_tags = [book.book_tag() for book in objects] + descendants_keys = [book.pk for book in models.Book.tagged.with_any(l_tags)] + if descendants_keys: + objects = objects.exclude(pk__in=descendants_keys) # get related tags from `tag_counter` and `theme_counter` related_counts = {} @@ -169,10 +171,10 @@ def tagged_object_list(request, tags=''): template_name='catalogue/tagged_object_list.html', extra_context={ 'categories': categories, - 'shelf_is_set': shelf_is_set, + 'only_shelf': only_shelf, 'only_author': only_author, 'pd_counter': pd_counter, - 'user_is_owner': my_shelf_is_set, + 'only_my_shelf': only_my_shelf, 'formats_form': forms.DownloadFormatsForm(), 'tags': tags,