Add new examination model
This commit is contained in:
parent
4fbacd3d93
commit
ad3b9bd936
5 changed files with 223 additions and 97 deletions
32
stages/migrations/0026_examination.py
Normal file
32
stages/migrations/0026_examination.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('stages', '0025_section_has_stages'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Examination',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('date_exam', models.DateTimeField(blank=True, null=True)),
|
||||
('room', models.CharField(blank=True, max_length=15, verbose_name='Salle')),
|
||||
('mark', models.DecimalField(blank=True, decimal_places=2, max_digits=3, null=True, verbose_name='Note')),
|
||||
('mark_acq', models.CharField(blank=True, choices=[('non', 'Non acquis'), ('part', 'Partiellement acquis'), ('acq', 'Acquis')], max_length=5, verbose_name='Note')),
|
||||
('date_soutenance_mailed', models.DateTimeField(blank=True, null=True, verbose_name='Convoc. env.')),
|
||||
('date_confirm_received', models.DateTimeField(blank=True, null=True, verbose_name='Récept. confirm')),
|
||||
('external_expert', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='Expert externe')),
|
||||
('internal_expert', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Teacher', verbose_name='Expert interne')),
|
||||
('session', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.ExamEDESession', verbose_name='Session')),
|
||||
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='stages.Student')),
|
||||
('type_exam', models.CharField(choices=[('exam', 'Examen qualification'), ('entr', 'Entretien professionnel')], default='', max_length=10, verbose_name='Type')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Examen',
|
||||
},
|
||||
),
|
||||
]
|
||||
35
stages/migrations/0027_migrate_exams.py
Normal file
35
stages/migrations/0027_migrate_exams.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
from django.db import migrations
|
||||
|
||||
|
||||
def migrate_exams(apps, schema_editor):
|
||||
Student = apps.get_model('stages', 'Student')
|
||||
Examination = apps.get_model('stages', 'Examination')
|
||||
|
||||
for student in Student.objects.all():
|
||||
if student.session or student.date_exam:
|
||||
Examination.objects.create(
|
||||
student=student, type_exam='exam',
|
||||
session=student.session, date_exam=student.date_exam,
|
||||
room=student.room, mark=student.mark, mark_acq=student.mark_acq,
|
||||
internal_expert=student.internal_expert, external_expert=student.expert,
|
||||
date_soutenance_mailed=student.date_soutenance_mailed,
|
||||
date_confirm_received=student.date_confirm_received,
|
||||
)
|
||||
if student.session_ep or student.date_exam_ep:
|
||||
Examination.objects.create(
|
||||
student=student, type_exam='entre',
|
||||
session=student.session_ep, date_exam=student.date_exam_ep,
|
||||
room=student.room_ep, mark=student.mark_ep, mark_acq=student.mark_ep_acq,
|
||||
internal_expert=student.internal_expert_ep, external_expert=student.expert_ep,
|
||||
date_soutenance_mailed=student.date_soutenance_ep_mailed,
|
||||
date_confirm_received=student.date_confirm_ep_received,
|
||||
)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('stages', '0026_examination'),
|
||||
]
|
||||
|
||||
operations = [migrations.RunPython(migrate_exams)]
|
||||
Loading…
Add table
Add a link
Reference in a new issue