from collections import OrderedDict
import random
import re
+from urllib.parse import quote_plus
from django.conf import settings
from django.template.loader import render_to_string
from django.urls import reverse
from django.db.models import Q, QuerySet
from django.contrib.auth.decorators import login_required, user_passes_test
-from django.utils.http import urlquote_plus
from django.utils import translation
from django.utils.translation import gettext as _, gettext_lazy
from django.views.decorators.cache import never_cache
def collection(request, slug):
coll = get_object_or_404(Collection, slug=slug)
- return render(request, 'catalogue/collection.html', {
+ if request.EXPERIMENTS['layout'].value:
+ template_name = 'catalogue/2022/collection.html'
+ else:
+ template_name = 'catalogue/collection.html'
+ return render(request, template_name, {
'collection': coll,
'active_menu_item': 'collections',
})
result.update(extra)
is_author = len(tags) == 1 and tags[0].category == 'author'
+ is_set = len(tags) == 1 and tags[0].category == 'set'
is_theme = len(tags) == 1 and tags[0].category == 'theme'
new_layout = request.EXPERIMENTS['layout']
if is_author and new_layout.value:
template = 'catalogue/2022/author_detail.html'
+ elif is_set and new_layout.value:
+ template = 'catalogue/2022/set_detail.html'
elif is_theme and new_layout.value:
template = 'catalogue/2022/theme_detail.html'
else:
url = book.zip_audiobooks(media_format)
else:
raise Http404('No format specified for zip package')
- return HttpResponseRedirect(urlquote_plus(settings.MEDIA_URL + url, safe='/?='))
+ return HttpResponseRedirect(quote_plus(settings.MEDIA_URL + url, safe='/?='))
class CustomPDFFormView(AjaxableFormView):
else:
best = objects
- return render(request, 'catalogue/collections.html', {
+ if request.EXPERIMENTS['layout'].value:
+ template_name = 'catalogue/2022/collections.html'
+ else:
+ template_name = 'catalogue/collections.html'
+
+ return render(request, template_name, {
'objects': objects,
'best': best,
'active_menu_item': 'collections'