@@ -106,7 +106,7 @@ AUTH_PASSWORD_VALIDATORS = [ | |||
LANGUAGE_CODE = 'fr-fr' | |||
TIME_ZONE = 'EUROPE/Brussels' | |||
TIME_ZONE = 'Europe/Brussels' | |||
USE_I18N = True | |||
@@ -5,14 +5,34 @@ from .models import Classe, Eleve, Message, Resultat | |||
class ResultatInline(admin.TabularInline): | |||
model = Resultat | |||
extra = 1 | |||
extra = 0 | |||
classes = ["collapse"] | |||
class MessageInline(admin.TabularInline): | |||
model = Message | |||
extra = 0 | |||
class EleveAdmin(admin.ModelAdmin): | |||
list_display = ['nom_eleve', 'prenom_eleve'] | |||
class ClasseAdmin(admin.ModelAdmin): | |||
fieldsets = ( | |||
(None, { | |||
"fields": ( | |||
[('nom_classe','annee_scolaire'),'code_acces'] | |||
), | |||
}), | |||
('Élèves', { | |||
"fields": ( | |||
['eleves'] | |||
), | |||
"classes": ["collapse"], | |||
}) | |||
) | |||
filter_horizontal = ('eleves',) | |||
inlines = [ResultatInline] | |||
inlines = [ResultatInline, MessageInline] | |||
admin.site.register(Eleve, EleveAdmin) | |||
admin.site.register(Classe, ClasseAdmin) | |||
@@ -0,0 +1,45 @@ | |||
# Generated by Django 3.2.8 on 2021-10-27 08:21 | |||
from django.db import migrations, models | |||
import django.db.models.deletion | |||
class Migration(migrations.Migration): | |||
dependencies = [ | |||
('valves', '0001_initial'), | |||
] | |||
operations = [ | |||
migrations.RemoveField( | |||
model_name='classe', | |||
name='nom_annee', | |||
), | |||
migrations.AddField( | |||
model_name='classe', | |||
name='nom_classe', | |||
field=models.CharField(default='classe exemple', max_length=50, verbose_name='Nom de la classe'), | |||
preserve_default=False, | |||
), | |||
migrations.AddField( | |||
model_name='message', | |||
name='classe', | |||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='valves.classe', verbose_name='classe'), | |||
preserve_default=False, | |||
), | |||
migrations.AlterField( | |||
model_name='classe', | |||
name='annee_scolaire', | |||
field=models.CharField(max_length=10, verbose_name='Année scolaire'), | |||
), | |||
migrations.AlterField( | |||
model_name='eleve', | |||
name='phone', | |||
field=models.CharField(max_length=13, verbose_name='Numéro de GSM'), | |||
), | |||
migrations.AlterField( | |||
model_name='message', | |||
name='contenu_message', | |||
field=models.CharField(max_length=160, verbose_name='Contenu du message'), | |||
), | |||
] |
@@ -1,12 +1,11 @@ | |||
from django.db import models | |||
from django.db.models.deletion import CASCADE | |||
# Create your models here. | |||
class Eleve(models.Model): | |||
nom_eleve = models.CharField("Nom de l'élève", max_length=50) | |||
prenom_eleve = models.CharField("Prénom de l'élève", max_length=100) | |||
phone = models.IntegerField("Numéro de téléphone") | |||
phone = models.CharField("Numéro de GSM", max_length=13) # ex de numéro de GSM = 0032475123432 | |||
def __str__(self) : | |||
return self.nom_eleve | |||
@@ -14,15 +13,15 @@ class Eleve(models.Model): | |||
class Classe(models.Model): | |||
eleves = models.ManyToManyField(Eleve) | |||
nom_annee = models.CharField("Nom de l'année", max_length=50) | |||
annee_scolaire = models.CharField("Année scolaire", max_length=100) | |||
nom_classe = models.CharField("Nom de la classe", max_length=50) | |||
annee_scolaire = models.CharField("Année scolaire", max_length=10) | |||
code_acces = models.CharField("Code d'accès", max_length=10) | |||
def __str__(self): | |||
return self.nom_annee | |||
return self.nom_classe | |||
class Resultat(models.Model): | |||
res_classe = models.ForeignKey(Classe, on_delete=CASCADE) | |||
res_classe = models.ForeignKey(Classe, on_delete=models.CASCADE) | |||
nom_resultat = models.CharField("Nom du résultat", max_length=100) | |||
fichier_resultat = models.FileField("Fichier") | |||
date_resultat = models.DateField() | |||
@@ -33,8 +32,10 @@ class Resultat(models.Model): | |||
class Message(models.Model): | |||
nom_message =models.CharField("Nom du message", max_length=100) | |||
contenu_message = models.CharField("Contenu du message", max_length=200) | |||
contenu_message = models.CharField("Contenu du message", max_length=160) # longueur d'un SMS classique | |||
envoye = models.BooleanField("Envoyé") | |||
# un message appartient à une classe | |||
classe = models.ForeignKey("valves.Classe", verbose_name="classe", on_delete=models.CASCADE) | |||
def __str__(self) : | |||
return self.nom_message |