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