From 673f88e2325b20b660f3c7fd75e034d9b0886114 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Tue, 11 Jul 2017 23:15:00 +0200 Subject: [PATCH] Completed Student/Referent fields --- stages/admin.py | 9 ++- .../migrations/0012_added_student_fields.py | 61 +++++++++++++++++++ stages/models.py | 15 ++++- 3 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 stages/migrations/0012_added_student_fields.py diff --git a/stages/admin.py b/stages/admin.py index eff3e1c..5bd870e 100644 --- a/stages/admin.py +++ b/stages/admin.py @@ -28,8 +28,9 @@ class ArchivedListFilter(admin.BooleanFieldListFilter): class KlassAdmin(admin.ModelAdmin): - list_display = ('name', 'section', 'level') + list_display = ('name', 'section') ordering = ('name',) + list_filter = ('section', 'level',) class TeacherAdmin(admin.ModelAdmin): @@ -41,8 +42,10 @@ class StudentAdmin(admin.ModelAdmin): ordering = ('last_name', 'first_name') list_filter = (('archived', ArchivedListFilter), 'klass') search_fields = ('last_name', 'first_name', 'pcode', 'city', 'klass__name') - fields = (('last_name', 'first_name'), 'street', ('pcode', 'city'), 'email', - ('tel', 'mobile'), ('birth_date', 'ext_id'), 'klass', 'archived') + fields = (('last_name', 'first_name', 'ext_id'), ('street', 'pcode', 'city', 'district'), + ('email', 'tel', 'mobile'), ('avs', 'birth_date'), + ('dispense_ecg', 'dispense_eps', 'soutien_dys'), ('klass', 'archived'), + ('corporation', 'instructor')) readonly_fields = ('ext_id',) actions = ['archive'] diff --git a/stages/migrations/0012_added_student_fields.py b/stages/migrations/0012_added_student_fields.py new file mode 100644 index 0000000..dafd2c5 --- /dev/null +++ b/stages/migrations/0012_added_student_fields.py @@ -0,0 +1,61 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stages', '0011_add_teacher_model'), + ] + + operations = [ + migrations.AddField( + model_name='corporation', + name='district', + field=models.CharField(blank=True, max_length=20, verbose_name='Canton'), + ), + migrations.AddField( + model_name='student', + name='avs', + field=models.CharField(blank=True, max_length=15, verbose_name='No AVS'), + ), + migrations.AddField( + model_name='student', + name='corporation', + field=models.ForeignKey(blank=True, null=True, on_delete=models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur'), + ), + migrations.AddField( + model_name='student', + name='dispense_ecg', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='student', + name='dispense_eps', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='student', + name='district', + field=models.CharField(blank=True, max_length=20, verbose_name='Canton'), + ), + migrations.AddField( + model_name='student', + name='gender', + field=models.CharField(blank=True, max_length=3, verbose_name='Genre'), + ), + migrations.AddField( + model_name='student', + name='instructor', + field=models.ForeignKey(blank=True, null=True, on_delete=models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP'), + ), + migrations.AddField( + model_name='student', + name='soutien_dys', + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name='student', + name='birth_date', + field=models.DateField(blank=True, verbose_name='Date de naissance'), + ), + ] diff --git a/stages/models.py b/stages/models.py index 2c21b69..2fcb0a6 100644 --- a/stages/models.py +++ b/stages/models.py @@ -83,13 +83,23 @@ class Student(models.Model): ext_id = models.IntegerField(null=True, unique=True, verbose_name='ID externe') first_name = models.CharField(max_length=40, verbose_name='Prénom') last_name = models.CharField(max_length=40, verbose_name='Nom') - birth_date = models.DateField(verbose_name='Date de naissance') + gender = models.CharField(max_length=3, blank=True, verbose_name='Genre') + birth_date = models.DateField(blank=True, verbose_name='Date de naissance') street = models.CharField(max_length=150, blank=True, verbose_name='Rue') pcode = models.CharField(max_length=4, verbose_name='Code postal') city = models.CharField(max_length=40, verbose_name='Localité') + district = models.CharField(max_length=20, blank=True, verbose_name='Canton') tel = models.CharField(max_length=40, blank=True, verbose_name='Téléphone') mobile = models.CharField(max_length=40, blank=True, verbose_name='Portable') email = models.EmailField(verbose_name='Courriel', blank=True) + avs = models.CharField(max_length=15, blank=True, verbose_name='No AVS') + dispense_ecg = models.BooleanField(default=False) + dispense_eps = models.BooleanField(default=False) + soutien_dys = models.BooleanField(default=False) + corporation = models.ForeignKey('Corporation', null=True, blank=True, + on_delete=models.SET_NULL, verbose_name='Employeur') + instructor = models.ForeignKey('CorpContact', null=True, blank=True, + on_delete=models.SET_NULL, verbose_name='FEE/FPP') klass = models.ForeignKey(Klass, verbose_name='Classe', blank=True, null=True, on_delete=models.SET_NULL) archived = models.BooleanField(default=False, verbose_name='Archivé') @@ -158,6 +168,7 @@ class Corporation(models.Model): ext_id = models.IntegerField(null=True, blank=True, verbose_name='ID externe') name = models.CharField(max_length=100, verbose_name='Nom', unique=True) short_name = models.CharField(max_length=40, blank=True, verbose_name='Nom court') + district = models.CharField(max_length=20, blank=True, verbose_name='Canton') parent = models.ForeignKey('self', null=True, blank=True, verbose_name='Institution mère', on_delete=models.SET_NULL) sector = models.CharField(max_length=40, blank=True, verbose_name='Secteur') @@ -187,7 +198,7 @@ class CorpContact(models.Model): title = models.CharField(max_length=40, blank=True, verbose_name='Civilité') first_name = models.CharField(max_length=40, blank=True, verbose_name='Prénom') last_name = models.CharField(max_length=40, verbose_name='Nom') - role = models.CharField(max_length=40, verbose_name='Fonction', blank=True) + role = models.CharField(max_length=40, blank=True, verbose_name='Fonction') tel = models.CharField(max_length=20, blank=True, verbose_name='Téléphone') email = models.CharField(max_length=100, blank=True, verbose_name='Courriel') archived = models.BooleanField(default=False, verbose_name='Archivé')