Browse Source

Tlačítko neodhlašovat

okenkove_obalky
Jonas Havelka 2 years ago
parent
commit
3663e04452
  1. 16
      various/autentizace/forms.py
  2. 13
      various/autentizace/views.py

16
various/autentizace/forms.py

@ -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)

13
various/autentizace/views.py

@ -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):

Loading…
Cancel
Save