Add missing constraint.
[wolnelektury.git] / src / wolnelektury / views.py
index 8729216..49110e9 100644 (file)
@@ -21,13 +21,27 @@ from django.views.decorators.cache import never_cache
 from ajaxable.utils import AjaxableFormView
 from ajaxable.utils import placeholdized
 from catalogue.models import Book, Collection, Tag, Fragment
 from ajaxable.utils import AjaxableFormView
 from ajaxable.utils import placeholdized
 from catalogue.models import Book, Collection, Tag, Fragment
-
+import club.models
 from social.utils import get_or_choose_cite
 from wolnelektury.forms import RegistrationForm, SocialSignupForm, WLAuthenticationForm
 
 
 from social.utils import get_or_choose_cite
 from wolnelektury.forms import RegistrationForm, SocialSignupForm, WLAuthenticationForm
 
 
+def main_page_2022(request):
+    ctx = {}
+    ctx['last_published'] = Book.objects.exclude(cover_clean='').filter(findable=True, parent=None).order_by('-created_at')[:10]
+    ctx['recommended_collection'] = Collection.objects.filter(listed=True, role='recommend').order_by('?').first()
+    ctx['ambassadors'] = club.models.Ambassador.objects.all().order_by('?')
+    ctx['widget'] = settings.WIDGETS.get(request.GET.get('w'))
+    return render(request, '2022/main_page.html', ctx)
+
 @never_cache
 def main_page(request):
 @never_cache
 def main_page(request):
+    if request.GET.get('w') in settings.WIDGETS:
+        request.EXPERIMENTS['layout'].override(True)
+
+    if request.EXPERIMENTS['layout'].value:
+        return main_page_2022(request)
+
     ctx = {
         'last_published': Book.objects.exclude(cover_thumb='').filter(findable=True, parent=None).order_by('-created_at')[:6],
         'theme_books': [],
     ctx = {
         'last_published': Book.objects.exclude(cover_thumb='').filter(findable=True, parent=None).order_by('-created_at')[:6],
         'theme_books': [],
@@ -107,6 +121,15 @@ class WLRegisterView(FormView):
     form_class = RegistrationForm
     template_name = 'registration/register.html'
 
     form_class = RegistrationForm
     template_name = 'registration/register.html'
 
+    def form_valid(self, form):
+        form.save()
+        user = auth.authenticate(
+            username=form.cleaned_data['username'],
+            password=form.cleaned_data['password1']
+        )
+        auth.login(self.request, user)
+        return HttpResponseRedirect(quote_plus(self.request.GET.get('next', '/'), safe='/?='))
+
 wl_register_view = WLRegisterView.as_view()
 
 
 wl_register_view = WLRegisterView.as_view()