You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.2 KiB

import djconfig
from django.contrib.auth.views import LoginView as BaseLoginView
from django.http import Http404
from django.views.generic import TemplateView, FormView
from cabinet.utils import CabinetViewMixin
class CabinetIndexView(CabinetViewMixin, TemplateView):
template_name = 'cabinet/index.html'
title = 'Cabinet home'
class LoginView(BaseLoginView):
template_name = 'cabinet/login.html'
redirect_authenticated_user = True
def get_context_data(self, **kwargs):
ctx = super(LoginView, self).get_context_data(**kwargs)
ctx['title'] = 'Login'
return ctx
def form_valid(self, form):
res = super(LoginView, self).form_valid(form)
if not self.request.POST.get('remember'):
self.request.session.set_expiry(0)
return res
class AdminConfigView(CabinetViewMixin, FormView):
template_name = 'cabinet/admin_config.html'
def get_title(self):
return '{} config'.format(self.get_form_class().title)
def get_form_class(self):
for form in djconfig.config._registry:
if form.slug == self.kwargs.get('slug'):
return form
raise Http404()