Création d'écoles.
This commit is contained in:
parent
5e594d6b85
commit
4da81b99a0
6 changed files with 82 additions and 4 deletions
|
@ -29,6 +29,31 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<h2>Écoles</h2>
|
||||||
|
<a class="btn btn-primary btn-sm" role="button" href="{% url 'users:new-school' %}">
|
||||||
|
<i class="glyphicon glyphicon-plus"></i>
|
||||||
|
Inscrire une nouvelle école
|
||||||
|
</a>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tr>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th>Nombre de membres</th>
|
||||||
|
<th></th>
|
||||||
|
{% for school in schools %}
|
||||||
|
<tr>
|
||||||
|
<th>{{school.group.name}}</th>
|
||||||
|
<td>{{school.group.user_set.count}}</td>
|
||||||
|
<td><a class="btn btn-primary btn-sm" href="">
|
||||||
|
<i class="glyphicon glyphicon-edit"></i>
|
||||||
|
Éditer
|
||||||
|
</a>
|
||||||
|
<a class="btn btn-danger btn-sm" title="Supprimer" href="">
|
||||||
|
<i class="glyphicon glyphicon-trash"></i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
<h2>Réglages</h2>
|
<h2>Réglages</h2>
|
||||||
<h3>Réglages du site</h3>
|
<h3>Réglages du site</h3>
|
||||||
<a class="btn btn-primary btn-sm" href="">
|
<a class="btn btn-primary btn-sm" href="">
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
from content.models import Category
|
from content.models import Category
|
||||||
|
from users.models import SchoolProfile
|
||||||
from .models import ContentSettings, SiteSettings
|
from .models import ContentSettings, SiteSettings
|
||||||
|
|
||||||
class SettingsView(TemplateView):
|
class SettingsView(TemplateView):
|
||||||
|
@ -9,4 +10,5 @@ class SettingsView(TemplateView):
|
||||||
context['categories'] = Category.objects.all()
|
context['categories'] = Category.objects.all()
|
||||||
context['site_settings'],_ = SiteSettings.objects.get_or_create()
|
context['site_settings'],_ = SiteSettings.objects.get_or_create()
|
||||||
context['content_settings'],_ = ContentSettings.objects.get_or_create()
|
context['content_settings'],_ = ContentSettings.objects.get_or_create()
|
||||||
|
context['schools'] = SchoolProfile.objects.all()
|
||||||
return context
|
return context
|
||||||
|
|
23
users/migrations/0002_auto_20180131_1052.py
Normal file
23
users/migrations/0002_auto_20180131_1052.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 2.0.1 on 2018-01-31 10:52
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('users', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='schoolprofile',
|
||||||
|
name='is_school',
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='userprofile',
|
||||||
|
name='school',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.SchoolProfile'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -6,7 +6,6 @@ from django.dispatch import receiver
|
||||||
|
|
||||||
class SchoolProfile(models.Model):
|
class SchoolProfile(models.Model):
|
||||||
"""Ajoute un champ pour distinguer les groupes écoles des autres."""
|
"""Ajoute un champ pour distinguer les groupes écoles des autres."""
|
||||||
is_school = models.BooleanField()
|
|
||||||
group = models.OneToOneField(Group, on_delete=models.CASCADE)
|
group = models.OneToOneField(Group, on_delete=models.CASCADE)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import CreateUser, CreateUserProfile
|
from .views import (
|
||||||
|
CreateUser,
|
||||||
|
CreateUserProfile,
|
||||||
|
CreateSchool,
|
||||||
|
)
|
||||||
|
|
||||||
app_name = 'users'
|
app_name = 'users'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
@ -12,5 +16,10 @@ urlpatterns = [
|
||||||
'user/<int:pk>/set_school',
|
'user/<int:pk>/set_school',
|
||||||
CreateUserProfile.as_view(),
|
CreateUserProfile.as_view(),
|
||||||
name='create-userprofile'
|
name='create-userprofile'
|
||||||
)
|
),
|
||||||
|
path(
|
||||||
|
'school/new',
|
||||||
|
CreateSchool.as_view(),
|
||||||
|
name='new-school'
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -3,7 +3,7 @@ from django.views.generic import CreateView
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
|
|
||||||
from .models import UserProfile
|
from .models import UserProfile, SchoolProfile
|
||||||
|
|
||||||
|
|
||||||
class CreateUser(CreateView):
|
class CreateUser(CreateView):
|
||||||
|
@ -46,3 +46,23 @@ class CreateUserProfile(CreateView):
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
form.instance.user = get_object_or_404(User, pk=self.kwargs['pk'])
|
form.instance.user = get_object_or_404(User, pk=self.kwargs['pk'])
|
||||||
return super(CreateUserProfile, self).form_valid(form)
|
return super(CreateUserProfile, self).form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
|
class CreateSchool(CreateView):
|
||||||
|
model = Group
|
||||||
|
fields = '__all__'
|
||||||
|
template_name = 'edit.html'
|
||||||
|
success_url = reverse_lazy('home')
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super().get_context_data(**kwargs)
|
||||||
|
context['title'] = "Création de l'école"
|
||||||
|
context['validate'] = "Créer"
|
||||||
|
return context
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
response = super(CreateSchool, self).form_valid(form)
|
||||||
|
profile = SchoolProfile()
|
||||||
|
profile.group = form.instance
|
||||||
|
profile.save()
|
||||||
|
return response
|
||||||
|
|
Loading…
Reference in a new issue