Add new student fields for Entretien professionnel

This commit is contained in:
Claude Paroz 2019-10-03 15:13:34 +02:00
parent 7f3c0d6c3f
commit 35e5c84933
3 changed files with 91 additions and 7 deletions

View file

@ -106,7 +106,10 @@ class StudentAdmin(admin.ModelAdmin):
list_filter = (('archived', ArchivedListFilter), ('klass', KlassRelatedListFilter))
search_fields = ('last_name', 'first_name', 'pcode', 'city', 'klass__name')
autocomplete_fields = ('corporation', 'instructor', 'supervisor', 'mentor', 'expert')
readonly_fields = ('report_sem1_sent', 'report_sem2_sent', 'examination_actions', 'date_soutenance_mailed')
readonly_fields = (
'report_sem1_sent', 'report_sem2_sent', 'examination_actions',
'date_soutenance_mailed', 'date_soutenance_ep_mailed'
)
fieldsets = (
(None, {
'fields': (('last_name', 'first_name', 'ext_id'), ('street', 'pcode', 'city', 'district'),
@ -122,18 +125,22 @@ class StudentAdmin(admin.ModelAdmin):
("Examen Qualification ES", {
'classes': ('collapse',),
'fields': (
('session', 'date_exam', 'room', 'mark'),
('supervisor', 'supervision_attest_received'),
('subject', 'title'),
('training_referent', 'referent', 'mentor'),
('internal_expert', 'expert'),
('date_soutenance_mailed', 'date_confirm_received'),
('examination_actions',)
)
}),
("Entretien professionnel ES", {
'classes': ('collapse',),
'fields': (
('session', 'date_exam', 'room', 'mark'),
('internal_expert', 'expert'),
('date_soutenance_mailed', 'date_confirm_received'),
('examination_actions',)
('session_ep', 'date_exam_ep', 'room_ep', 'mark_ep'),
('internal_expert_ep', 'expert_ep'),
('date_soutenance_ep_mailed', 'date_confirm_ep_received'),
#('examination_actions',)
)
}),
)

View file

@ -0,0 +1,57 @@
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('stages', '0021_teacher_can_examinate'),
]
operations = [
migrations.AddField(
model_name='student',
name='date_confirm_ep_received',
field=models.DateTimeField(blank=True, null=True, verbose_name='Récept. confirm'),
),
migrations.AddField(
model_name='student',
name='date_exam_ep',
field=models.DateTimeField(blank=True, null=True, verbose_name='Date exam. EP'),
),
migrations.AddField(
model_name='student',
name='date_soutenance_ep_mailed',
field=models.DateTimeField(blank=True, null=True, verbose_name='Convoc. env.'),
),
migrations.AddField(
model_name='student',
name='expert_ep',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rel_expert_ep', to='stages.CorpContact', verbose_name='Expert externe EP'),
),
migrations.AddField(
model_name='student',
name='internal_expert_ep',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rel_internal_expert_ep', to='stages.Teacher', verbose_name='Expert interne EP'),
),
migrations.AddField(
model_name='student',
name='mark_ep',
field=models.DecimalField(blank=True, decimal_places=2, max_digits=3, null=True, verbose_name='Note EP'),
),
migrations.AddField(
model_name='student',
name='room_ep',
field=models.CharField(blank=True, max_length=15, verbose_name='Salle EP'),
),
migrations.AddField(
model_name='student',
name='session_ep',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='students_ep', to='stages.ExamEDESession', verbose_name='Session EP'),
),
migrations.AlterField(
model_name='student',
name='session',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='students_es', to='stages.ExamEDESession'),
),
]

View file

@ -310,14 +310,34 @@ class Student(models.Model):
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)
session = models.ForeignKey(
ExamEDESession, null=True, blank=True, on_delete=models.SET_NULL, related_name='students_es',
)
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)
date_soutenance_mailed = models.DateTimeField("Convoc. env.", blank=True, null=True)
date_confirm_received = models.DateTimeField("Récept. confirm", blank=True, null=True)
# ============== Fields for examination ======================
# ============== Fields for Entretien professionnel =========
session_ep = models.ForeignKey(
ExamEDESession, null=True, blank=True, on_delete=models.SET_NULL, verbose_name='Session EP',
related_name='students_ep',
)
date_exam_ep = models.DateTimeField("Date exam. EP", blank=True, null=True)
room_ep = models.CharField('Salle EP', max_length=15, blank=True)
mark_ep = models.DecimalField('Note EP', max_digits=3, decimal_places=2, blank=True, null=True)
internal_expert_ep = models.ForeignKey(
Teacher, related_name='rel_internal_expert_ep', verbose_name='Expert interne EP',
null=True, blank=True, on_delete=models.SET_NULL
)
expert_ep = models.ForeignKey(
'CorpContact', related_name='rel_expert_ep', verbose_name='Expert externe EP',
null=True, blank=True, on_delete=models.SET_NULL
)
date_soutenance_ep_mailed = models.DateTimeField("Convoc. env.", blank=True, null=True)
date_confirm_ep_received = models.DateTimeField("Récept. confirm", blank=True, null=True)
# ===============
mc_comment = models.TextField("Commentaires", blank=True)
support_tabimport = True