Source code for xadmin.views.website

from __future__ import absolute_import
from django.utils.translation import ugettext as _
from django.contrib.auth import REDIRECT_FIELD_NAME
from django.views.decorators.cache import never_cache
from django.contrib.auth.views import LoginView as login
from django.contrib.auth.views import LogoutView as logout
from django.http import HttpResponse

from .base import BaseAdminView, filter_hook
from .dashboard import Dashboard
from xadmin.forms import AdminAuthenticationForm
from xadmin.models import UserSettings
from xadmin.layout import FormHelper


[docs]class IndexView(Dashboard): title = _("Main Dashboard") icon = "fa fa-dashboard" def get_page_id(self): return 'home'
class UserSettingView(BaseAdminView): @never_cache def post(self, request): key = request.POST['key'] val = request.POST['value'] us, created = UserSettings.objects.get_or_create( user=self.user, key=key) us.value = val us.save() return HttpResponse('')
[docs]class LoginView(BaseAdminView): title = _("Please Login") login_form = None login_template = None
[docs] @filter_hook def update_params(self, defaults): pass
@never_cache def get(self, request, *args, **kwargs): context = self.get_context() helper = FormHelper() helper.form_tag = False helper.include_media = False context.update({ 'title': self.title, 'helper': helper, 'app_path': request.get_full_path(), REDIRECT_FIELD_NAME: request.get_full_path(), }) defaults = { 'extra_context': context, # 'current_app': self.admin_site.name, 'authentication_form': self.login_form or AdminAuthenticationForm, 'template_name': self.login_template or 'xadmin/views/login.html', } self.update_params(defaults) # return login(request, **defaults) return login.as_view(**defaults)(request) @never_cache def post(self, request, *args, **kwargs): return self.get(request)
[docs]class LogoutView(BaseAdminView): logout_template = None need_site_permission = False
[docs] @filter_hook def update_params(self, defaults): pass
@never_cache def get(self, request, *args, **kwargs): context = self.get_context() defaults = { 'extra_context': context, # 'current_app': self.admin_site.name, 'template_name': self.logout_template or 'xadmin/views/logged_out.html', } if self.logout_template is not None: defaults['template_name'] = self.logout_template self.update_params(defaults) # return logout(request, **defaults) return logout.as_view(**defaults)(request) @never_cache def post(self, request, *args, **kwargs): return self.get(request)