Add new examEDEsession model and more Student fields

This commit is contained in:
alazo 2018-03-19 18:36:28 +01:00 committed by Claude Paroz
parent 0a9ecd8c96
commit 041bc6cdab
3 changed files with 112 additions and 2 deletions

View file

@ -11,7 +11,7 @@ from django.http import HttpResponse
from .models import (
Teacher, Option, Student, Section, Level, Klass, Corporation,
CorpContact, Domain, Period, Availability, Training, Course,
LogBookReason, LogBook,
LogBookReason, LogBook, ExamEDESession
)
from .pdf import ChargeSheetPDF
@ -273,3 +273,4 @@ admin.site.register(Availability, AvailabilityAdmin)
admin.site.register(Training, TrainingAdmin)
admin.site.register(LogBookReason)
admin.site.register(LogBook)
admin.site.register(ExamEDESession)

View file

@ -0,0 +1,83 @@
# Generated by Django 2.0.1 on 2018-03-19 18:35
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('stages', '0009_corpcontact_corp_nullable'),
]
operations = [
migrations.CreateModel(
name='ExamEDESession',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('year', models.PositiveIntegerField()),
('season', models.CharField(max_length=10, verbose_name='saison')),
],
options={'verbose_name': 'Session dexamen EDE'},
),
migrations.AddField(
model_name='student',
name='date_exam',
field=models.DateTimeField(blank=True, null=True),
),
migrations.AddField(
model_name='student',
name='internal_expert',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rel_internal_expert', to='stages.Teacher', verbose_name='Expert interne'),
),
migrations.AddField(
model_name='student',
name='last_appointment',
field=models.DateField(blank=True, null=True),
),
migrations.AddField(
model_name='student',
name='mark',
field=models.DecimalField(blank=True, decimal_places=2, max_digits=3, null=True, verbose_name='Note'),
),
migrations.AddField(
model_name='student',
name='referent',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rel_referent', to='stages.Teacher', verbose_name='Référent avant-projet'),
),
migrations.AddField(
model_name='student',
name='room',
field=models.CharField(blank=True, max_length=15, verbose_name='Salle'),
),
migrations.AddField(
model_name='student',
name='subject',
field=models.TextField(blank=True, verbose_name='Résumé TD'),
),
migrations.AddField(
model_name='student',
name='title',
field=models.TextField(blank=True, verbose_name='Titre du TD'),
),
migrations.AddField(
model_name='student',
name='training_referent',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rel_training_referent', to='stages.Teacher', verbose_name='Référent de stage'),
),
migrations.AlterField(
model_name='period',
name='section',
field=models.ForeignKey(limit_choices_to={'name__startswith': 'MP'}, on_delete=django.db.models.deletion.PROTECT, to='stages.Section', verbose_name='Filière'),
),
migrations.AlterField(
model_name='student',
name='expert',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rel_expert', to='stages.CorpContact', verbose_name='Expert externe'),
),
migrations.AddField(
model_name='student',
name='session',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.ExamEDESession'),
),
]

View file

@ -182,6 +182,17 @@ class Option(models.Model):
return self.name
class ExamEDESession(models.Model):
year = models.PositiveIntegerField()
season = models.CharField('saison', max_length=10)
class Meta:
verbose_name = "Session dexamen EDE"
def __str__(self):
return '{0} {1}'.format(self.year, self.season)
GENDER_CHOICES = (
('M', 'Masculin'),
('F', 'Féminin'),
@ -213,7 +224,7 @@ class Student(models.Model):
null=True, blank=True, on_delete=models.SET_NULL)
mentor = models.ForeignKey('CorpContact', related_name='rel_mentor', verbose_name='Mentor',
null=True, blank=True, on_delete=models.SET_NULL)
expert = models.ForeignKey('CorpContact', related_name='rel_expert', verbose_name='Expert',
expert = models.ForeignKey('CorpContact', related_name='rel_expert', verbose_name='Expert externe',
null=True, blank=True, on_delete=models.SET_NULL)
klass = models.ForeignKey(Klass, verbose_name='Classe', blank=True, null=True,
on_delete=models.PROTECT)
@ -223,6 +234,21 @@ class Student(models.Model):
report_sem2_sent = models.DateTimeField('Date envoi bull. sem 2', null=True, blank=True)
archived = models.BooleanField(default=False, verbose_name='Archivé')
archived_text = models.TextField(blank=True)
# ============== Fields for examination ======================
subject = models.TextField('Résumé TD', blank=True)
title = models.TextField('Titre du TD', blank=True)
training_referent = models.ForeignKey(Teacher, null=True, blank=True, related_name='rel_training_referent',
on_delete=models.SET_NULL, verbose_name='Référent de stage')
referent = models.ForeignKey(Teacher, null=True, blank=True, related_name='rel_referent',
on_delete=models.SET_NULL, verbose_name='Référent avant-projet')
internal_expert = models.ForeignKey(Teacher, related_name='rel_internal_expert', verbose_name='Expert interne',
null=True, blank=True, on_delete=models.SET_NULL)
session = models.ForeignKey(ExamEDESession, null=True, blank=True, on_delete=models.SET_NULL)
date_exam = models.DateTimeField(blank=True, null=True)
last_appointment = models.DateField(blank=True, null=True)
room = models.CharField('Salle', max_length=15, blank=True)
mark = models.DecimalField('Note', max_digits=3, decimal_places=2, blank=True, null=True)
# ============== Fields for examination ======================
support_tabimport = True