|
|
@ -1,9 +1,15 @@ |
|
|
from django.views.generic import TemplateView, UpdateView |
|
|
from django.views.generic import TemplateView, UpdateView |
|
|
from django.urls import reverse_lazy |
|
|
from django.urls import reverse_lazy, reverse |
|
|
from django.contrib.auth.mixins import PermissionRequiredMixin, LoginRequiredMixin |
|
|
from django.contrib.auth.mixins import PermissionRequiredMixin, LoginRequiredMixin |
|
|
|
|
|
from django.contrib.auth.decorators import permission_required |
|
|
|
|
|
from django.contrib.auth.models import Group, User |
|
|
|
|
|
from django.shortcuts import get_object_or_404, redirect, render |
|
|
|
|
|
from django.contrib import messages |
|
|
|
|
|
|
|
|
from content.models import Category |
|
|
from content.models import Category |
|
|
from users.models import SchoolProfile |
|
|
from users.models import SchoolProfile |
|
|
from .models import SiteSettings |
|
|
from .models import SiteSettings |
|
|
|
|
|
from .forms import SelectUserForm |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SettingsView(LoginRequiredMixin, PermissionRequiredMixin, TemplateView): |
|
|
class SettingsView(LoginRequiredMixin, PermissionRequiredMixin, TemplateView): |
|
|
@ -16,6 +22,7 @@ class SettingsView(LoginRequiredMixin, PermissionRequiredMixin, TemplateView): |
|
|
context['site_settings'], _ = SiteSettings.objects.get_or_create() |
|
|
context['site_settings'], _ = SiteSettings.objects.get_or_create() |
|
|
context['schools'] = SchoolProfile.objects.all() |
|
|
context['schools'] = SchoolProfile.objects.all() |
|
|
context['settings'] = True |
|
|
context['settings'] = True |
|
|
|
|
|
context['administrators'] = Group.objects.get(name='admins').user_set.all() |
|
|
return context |
|
|
return context |
|
|
|
|
|
|
|
|
class EditSiteSettingsView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): |
|
|
class EditSiteSettingsView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): |
|
|
@ -35,3 +42,29 @@ class EditSiteSettingsView(LoginRequiredMixin, PermissionRequiredMixin, UpdateVi |
|
|
return context |
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@permission_required('auth.change_user') |
|
|
|
|
|
def degrade_user(request, pk): |
|
|
|
|
|
user = get_object_or_404(User, pk=pk) |
|
|
|
|
|
admins,_ = Group.objects.get_or_create(name='admins') |
|
|
|
|
|
user.groups.remove(admins) |
|
|
|
|
|
user.save() |
|
|
|
|
|
messages.success(request, user.username + ' a été enlevé des administrateurs du site') |
|
|
|
|
|
return redirect(reverse('settings:index')) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@permission_required('auth.change_user') |
|
|
|
|
|
def promote_user(request): |
|
|
|
|
|
user_form = SelectUserForm(request.POST or None) |
|
|
|
|
|
user_form.populate() |
|
|
|
|
|
if user_form.is_valid(): |
|
|
|
|
|
user=user_form.get_user() |
|
|
|
|
|
admins,_ = Group.objects.get_or_create(name='admins') |
|
|
|
|
|
user.groups.add(admins) |
|
|
|
|
|
user.save() |
|
|
|
|
|
messages.success(request, user.username + ' a été ajouté des administrateurs du site') |
|
|
|
|
|
return redirect(reverse('settings:index')) |
|
|
|
|
|
return render(request, 'edit.html', { |
|
|
|
|
|
'form' : user_form, |
|
|
|
|
|
'title' : "Ajout d'un administrateur", |
|
|
|
|
|
'validate' : "Ajouter" |
|
|
|
|
|
}) |
|
|
|