From 0c75f32c5f4b658a8df2be0959007daa2d9e77e8 Mon Sep 17 00:00:00 2001 From: Klafyvel Date: Fri, 2 Mar 2018 09:33:37 +0100 Subject: [PATCH] =?UTF-8?q?Num=C3=A9ro=20de=20t=C3=A9l=C3=A9phone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- settings/templates/settings/settings.html | 4 +++- users/migrations/0006_schoolprofile_phone.py | 18 +++++++++++++++ users/models.py | 12 ++++++++++ users/templates/users/school.html | 7 +++++- users/urls.py | 14 ++++++++---- users/views.py | 24 ++++++++++++++++++-- 6 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 users/migrations/0006_schoolprofile_phone.py diff --git a/settings/templates/settings/settings.html b/settings/templates/settings/settings.html index 73c11ee..267058d 100644 --- a/settings/templates/settings/settings.html +++ b/settings/templates/settings/settings.html @@ -43,12 +43,14 @@ Nom Nombre de membres + Numéro de téléphone {% for school in schools %} {{school.group.name}} {{school.group.user_set.count}} - + {{school.phone}} + Éditer diff --git a/users/migrations/0006_schoolprofile_phone.py b/users/migrations/0006_schoolprofile_phone.py new file mode 100644 index 0000000..d9bd723 --- /dev/null +++ b/users/migrations/0006_schoolprofile_phone.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.1 on 2018-03-01 23:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0005_auto_20180301_1029'), + ] + + operations = [ + migrations.AddField( + model_name='schoolprofile', + name='phone', + field=models.CharField(help_text='Visible uniquement des administrateurs', max_length=10, null=True, verbose_name='Numéro de téléphone pour contacter le responsable des productions'), + ), + ] diff --git a/users/models.py b/users/models.py index 28bead3..45b251b 100644 --- a/users/models.py +++ b/users/models.py @@ -4,6 +4,7 @@ from django.contrib.contenttypes.models import ContentType from django.db.models.signals import post_save from django.urls import reverse from django.dispatch import receiver +from django.core import validators class SchoolProfile(models.Model): @@ -19,6 +20,17 @@ class SchoolProfile(models.Model): related_name="admin_of", null=True ) + phone = models.CharField( + max_length=10, + help_text="Visible uniquement des administrateurs", + verbose_name="Numéro de téléphone pour contacter le responsable des productions", + blank=False, + null=True, + validators=[ + validators.RegexValidator('^[0-9]{10}$', + "Veuillez entrer un numéro à 10 chiffres."), + ] + ) def __str__(self): return self.group.name diff --git a/users/templates/users/school.html b/users/templates/users/school.html index 0c65b40..79d7a88 100644 --- a/users/templates/users/school.html +++ b/users/templates/users/school.html @@ -3,7 +3,12 @@ {% block content %}

{{object.name}}

- +{% if manager_right in perms %} +Numéro de téléphone : +{% if object.school.phone %}{{object.school.phone}}{%else%} +Non indiqué{%endif%}
+{%endif%} +
Éditer diff --git a/users/urls.py b/users/urls.py index 415e64a..d52bfa3 100644 --- a/users/urls.py +++ b/users/urls.py @@ -3,7 +3,8 @@ from .views import ( CreateUser, CreateUserProfile, CreateSchool, - EditSchool, + EditSchoolName, + EditSchoolPhone, DeleteSchool, Login, Logout, @@ -67,9 +68,14 @@ urlpatterns = [ name='promote-user' ), path( - 'school//edit', - EditSchool.as_view(), - name='edit-school' + 'school//edit_name', + EditSchoolName.as_view(), + name='edit-school-name' + ), + path( + 'school//edit_phone', + EditSchoolPhone.as_view(), + name='edit-school-phone' ), path( 'school//delete', diff --git a/users/views.py b/users/views.py index 121c219..b9ad3f9 100644 --- a/users/views.py +++ b/users/views.py @@ -103,14 +103,14 @@ class CreateSchool(LoginRequiredMixin, PermissionRequiredMixin, CreateView): return response -class EditSchool(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): +class EditSchoolName(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): model = Group fields = ['name'] template_name = 'edit.html' queryset = Group.objects.filter(school__isnull=False) def get_success_url(self): - return reverse('users:school', kwargs={'pk':self.object.pk}) + return reverse('users:edit-school-phone', kwargs={'pk':self.object.school.pk}) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) @@ -127,14 +127,34 @@ class EditSchool(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): return r +class EditSchoolPhone(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): + model = SchoolProfile + fields = ['phone'] + template_name = 'edit.html' + + def get_success_url(self): + return reverse('users:school', kwargs={'pk':self.object.group.pk}) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['title'] = "Édition de l'école" + context['validate'] = "Modifier" + return context + + def has_permission(self): + return self.request.user.has_perm('users.manage_'+str(self.kwargs['pk'])) + + class DeleteSchool(LoginRequiredMixin, PermissionRequiredMixin, DeleteView): model = Group permission_required = 'users.delete_schoolprofile' + queryset = Group.objects.filter(school__isnull=False) class School(LoginRequiredMixin, PermissionRequiredMixin, DetailView): model = Group template_name = "users/school.html" + queryset = Group.objects.filter(school__isnull=False) def get_context_data(self, **kwargs): context = super().get_context_data()