51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
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_sidebar_section(self):
|
|
return 'admin_{}'.format(self.get_form_class().slug)
|
|
|
|
def get_success_url(self):
|
|
return ''
|
|
|
|
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()
|
|
|
|
def form_valid(self, form):
|
|
form.save()
|
|
return super(AdminConfigView, self).form_valid(form)
|