diff --git a/candidats/migrations/0001_initial.py b/candidats/migrations/0001_initial.py index bd3f605..0b13540 100644 --- a/candidats/migrations/0001_initial.py +++ b/candidats/migrations/0001_initial.py @@ -58,9 +58,9 @@ class Migration(migrations.Migration): ('total_result_mark', models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='Note finale')), ('accepted', models.BooleanField(default=False, verbose_name='Admis')), ('corporation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur')), - ('file_resp', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='stages.Teacher', verbose_name='Exp. dossier')), + ('file_resp', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='stages.Teacher', verbose_name='Exp. dossier')), ('instructor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP')), - ('interview_resp', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='stages.Teacher', verbose_name='Exp. entretien')), + ('interview_resp', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='stages.Teacher', verbose_name='Exp. entretien')), ], options={ 'verbose_name': 'Candidat', diff --git a/candidats/models.py b/candidats/models.py index 83ae97c..fcbf7ab 100644 --- a/candidats/models.py +++ b/candidats/models.py @@ -84,10 +84,12 @@ class Candidate(models.Model): accepted = models.BooleanField('Admis', default=False) interview_resp = models.ForeignKey( - 'stages.Teacher', null=True, blank=True, related_name='+', verbose_name='Exp. entretien' + 'stages.Teacher', null=True, blank=True, related_name='+', verbose_name='Exp. entretien', + on_delete=models.SET_NULL ) file_resp = models.ForeignKey( - 'stages.Teacher', null=True, blank=True, related_name='+', verbose_name='Exp. dossier' + 'stages.Teacher', null=True, blank=True, related_name='+', verbose_name='Exp. dossier', + on_delete=models.SET_NULL ) class Meta: diff --git a/stages/pdf.py b/stages/pdf.py index 2bca1fb..95966f1 100644 --- a/stages/pdf.py +++ b/stages/pdf.py @@ -34,7 +34,8 @@ class ChargeSheetPDF(SimpleDocTemplate): def produce(self, activities): self.story = [] - self.story.append(Image(find('img/header.gif'), width=520, height=75)) + header = open(find('img/header.gif'), 'rb') + self.story.append(Image(header, width=520, height=75)) self.story.append(Spacer(0, 2*cm)) destinataire = '{0}
{1}'.format(self.teacher.civility, str(self.teacher)) self.story.append(Paragraph(destinataire, style_adress)) @@ -80,6 +81,7 @@ class ChargeSheetPDF(SimpleDocTemplate): self.story.append(Paragraph(d, style_normal)) self.story.append(PageBreak()) self.build(self.story) + header.close() class UpdateDataFormPDF(SimpleDocTemplate): @@ -100,8 +102,9 @@ class UpdateDataFormPDF(SimpleDocTemplate): def produce(self, klass): self.story = [] + header = open(find('img/header.gif'), 'rb') for student in klass.student_set.filter(archived=False): - self.story.append(Image(find('img/header.gif'), width=520, height=75)) + self.story.append(Image(header, width=520, height=75)) self.story.append(Spacer(0, 2*cm)) destinataire = '{0}
{1}
{2}'.format(student.civility, student.full_name, student.klass) self.story.append(Paragraph(destinataire, style_adress)) @@ -180,6 +183,7 @@ class UpdateDataFormPDF(SimpleDocTemplate): self.story.append(Paragraph("Pas d'élèves dans cette classe", style_normal)) self.build(self.story) + header.close() def is_corp_required(self, klass_name): return any(el in klass_name for el in ['FE', 'EDS', 'EDEpe'])