X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/a98d18bc92d7d28d54c0cc1c1a636c9d79e6a648..9b999d1b69b2f5da8ec2b456240739344cf9e9a9:/src/catalogue/views.py diff --git a/src/catalogue/views.py b/src/catalogue/views.py index 16b66f0fb..b52d7b983 100644 --- a/src/catalogue/views.py +++ b/src/catalogue/views.py @@ -109,13 +109,14 @@ def object_list(request, objects, fragments=None, related_tags=None, tags=None, Tag.objects.usage_for_queryset( objects, counts=True ).exclude(category='set').exclude(pk__in=tag_ids)) - related_tag_lists.append( - Tag.objects.usage_for_queryset( - objects, counts=True - ).filter( - user=request.user - ).exclude(name='').exclude(pk__in=tag_ids) - ) + if request.user.is_authenticated: + related_tag_lists.append( + Tag.objects.usage_for_queryset( + objects, counts=True + ).filter( + user=request.user + ).exclude(name='').exclude(pk__in=tag_ids) + ) if not (extra and extra.get('theme_is_set')): if fragments is None: if list_type == 'gallery': @@ -153,6 +154,7 @@ def object_list(request, objects, fragments=None, related_tags=None, tags=None, 'suggest': suggest, 'list_type': list_type, 'tags': tags, + 'main_tag': tags[0], 'formats_form': forms.DownloadFormatsForm(), 'best': best, @@ -161,14 +163,13 @@ def object_list(request, objects, fragments=None, related_tags=None, tags=None, if extra: result.update(extra) - is_theme = len(tags) == 1 and tags[0].category == 'theme' - has_theme = any((x.category == 'theme' for x in tags)) - new_layout = request.EXPERIMENTS['layout'] - - if is_theme and new_layout.value: - template = 'catalogue/2022/theme_detail.html' - elif new_layout.value and not has_theme: - template = 'catalogue/2022/author_detail.html' + if request.EXPERIMENTS['layout'].value: + has_theme = any(((theme := x).category == 'theme' for x in tags)) + if has_theme: + result['main_tag'] = theme + template = 'catalogue/2022/theme_detail.html' + else: + template = 'catalogue/2022/author_detail.html' else: template = 'catalogue/tagged_object_list.html' @@ -298,9 +299,14 @@ def book_fragments(request, slug, theme_slug): fragments = Fragment.tagged.with_all([theme]).filter( Q(book=book) | Q(book__ancestor=book)) + if request.EXPERIMENTS['layout'].value: + template_name = 'catalogue/2022/book_fragments.html' + else: + template_name = 'catalogue/book_fragments.html' + return render( request, - 'catalogue/book_fragments.html', + template_name, { 'book': book, 'theme': theme,