Tlačítko neodhlašovat

This commit is contained in:
Jonas Havelka 2022-07-07 20:56:44 +02:00
parent 54f16f358f
commit 3663e04452
2 changed files with 29 additions and 0 deletions

View file

@ -0,0 +1,16 @@
"""
Formuláře (:class:`django.forms.Form`) umožňují jednoduchou tvorbu formulářů,
které lze pak jednoduše dát do frontendu i zpracovat na backendu.
Pro přidání políčka do formuláře je potřeba
- mít v modelu tu položku, kterou chci upravovat
- přidat do views (prihlaskaView, resitelEditView)
- přidat do forms
- includovat do html
"""
from django.contrib.auth.forms import AuthenticationForm
from django.forms import BooleanField
class LoginForm(AuthenticationForm):
disable_logout = BooleanField(label="Neodhlašovat", required=False)

View file

@ -1,10 +1,23 @@
from django.http import HttpResponseRedirect
from django.urls import reverse_lazy
from django.contrib.auth import views as auth_views
from django.contrib.auth import login as auth_login
from various.autentizace.forms import LoginForm
class LoginView(auth_views.LoginView):
# Jen vezmeme vestavěný a dáme mu vhodný template a přesměrovací URL
template_name = 'autentizace/login.html'
authentication_form = LoginForm
def form_valid(self, form):
""" Okopírováno z django/contrib/auth/views.py s přidáním nekonečného přihlášení """
auth_login(self.request, form.get_user())
if form.cleaned_data["disable_logout"]:
form.request.session.set_expiry(2**32) # infinity (asi 100 let)...
return HttpResponseRedirect(self.get_success_url())
class LogoutView(auth_views.LogoutView):