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.
 
 
 

37 lines
1.4 KiB

from django.views.generic import TemplateView, UpdateView
from django.urls import reverse_lazy
from django.contrib.auth.mixins import PermissionRequiredMixin, LoginRequiredMixin
from content.models import Category
from users.models import SchoolProfile
from .models import SiteSettings
class SettingsView(LoginRequiredMixin, PermissionRequiredMixin, TemplateView):
template_name = "settings/settings.html"
permission_required = 'settings.change_sitesettings'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['categories'] = Category.objects.all()
context['site_settings'], _ = SiteSettings.objects.get_or_create()
context['schools'] = SchoolProfile.objects.all()
context['settings'] = True
return context
class EditSiteSettingsView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView):
template_name = "edit.html"
model = SiteSettings
fields = '__all__'
success_url = reverse_lazy('settings:index')
permission_required = 'settings.change_sitesettings'
def get_object(self, queryset=None):
obj,_ = self.model.objects.get_or_create()
return obj
def get_context_data(self, **kwargs):
context = super(UpdateView, self).get_context_data(**kwargs)
context['title'] = "Édition des " + self.object.PRETTY_NAME
return context