diff --git a/common/settings.py b/common/settings.py index 256b9d3..0d2915c 100644 --- a/common/settings.py +++ b/common/settings.py @@ -133,7 +133,6 @@ INSTRUCTOR_IMPORT_MAPPING = { } CHARGE_SHEET_TITLE = "Feuille de charge pour l'année scolaire 2018-2019" -PDF_FOOTER_TEXT = 'Ecole Santé-social Pierre-Coullery | Prévoyance 82 - 2300 La Chaux-de-Fonds | 032 886 33 00 | cifom-epc@rpn.ch' # Maximum numbers of periods per teacher per year MAX_ENS_PERIODS = 1900 diff --git a/stages/pdf.py b/stages/pdf.py index 08be45a..b253577 100644 --- a/stages/pdf.py +++ b/stages/pdf.py @@ -14,22 +14,24 @@ from reportlab.platypus import ( SimpleDocTemplate, Spacer, Table, TableStyle, Preformatted ) -style_normal = PS(name='CORPS', fontName='Helvetica', fontSize=8, alignment=TA_LEFT) -style_normal_center = PS(name='CORPS', fontName='Helvetica', fontSize=8, alignment=TA_CENTER) -style_bold = PS(name='CORPS', fontName='Helvetica-Bold', fontSize=8, spaceBefore=0.3 * cm, alignment=TA_LEFT) -style_bold_italic = PS(name='CORPS', fontName='Helvetica-BoldOblique', fontSize=8, spaceBefore=0.3 * cm, alignment=TA_LEFT) -style_title = PS(name='CORPS', fontName='Helvetica-Bold', fontSize=12, alignment=TA_LEFT, spaceBefore=1 * cm) -style_adress = PS(name='CORPS', fontName='Helvetica', fontSize=8, alignment=TA_LEFT, leftIndent=10 * cm) -style_normal_right = PS(name='CORPS', fontName='Helvetica', fontSize=8, alignment=TA_RIGHT) -style_bold_center = PS(name="CORPS", fontName="Helvetica-Bold", fontSize=9, alignment=TA_CENTER) -style_footer = PS(name='CORPS', fontName='Helvetica', fontSize=7, alignment=TA_CENTER) -style_bold_title = PS(name="CORPS", fontName="Helvetica-Bold", fontSize=12, alignment=TA_LEFT) -style_smallx = PS(name='CORPS', fontName="Helvetica-BoldOblique", fontSize=6, alignment=TA_LEFT) +font_size_base = 10 +style_normal = PS(name='CORPS', fontName='Helvetica', fontSize=font_size_base, alignment=TA_LEFT) +style_normal_center = PS(name='CORPS', fontName='Helvetica', fontSize=font_size_base, alignment=TA_CENTER) +style_bold = PS(name='CORPS', fontName='Helvetica-Bold', fontSize=font_size_base, spaceBefore=0.3 * cm, alignment=TA_LEFT) +style_bold_italic = PS(name='CORPS', fontName='Helvetica-BoldOblique', fontSize=font_size_base, spaceBefore=0.3 * cm, alignment=TA_LEFT) +style_title = PS(name='CORPS', fontName='Helvetica-Bold', fontSize=font_size_base + 4, alignment=TA_LEFT, spaceBefore=1 * cm) +style_adress = PS(name='CORPS', fontName='Helvetica', fontSize=font_size_base, alignment=TA_LEFT, leftIndent=9 * cm) +style_normal_right = PS(name='CORPS', fontName='Helvetica', fontSize=font_size_base, alignment=TA_RIGHT) +style_bold_center = PS(name="CORPS", fontName="Helvetica-Bold", fontSize=font_size_base, alignment=TA_CENTER) +style_footer = PS(name='CORPS', fontName='Helvetica', fontSize=font_size_base - 1, alignment=TA_CENTER) +style_bold_title = PS(name="CORPS", fontName="Helvetica-Bold", fontSize=font_size_base + 4, alignment=TA_LEFT) +style_smallx = PS(name='CORPS', fontName="Helvetica-BoldOblique", fontSize=font_size_base - 2, alignment=TA_LEFT) LOGO_EPC = find('img/logo_EPC.png') LOGO_ESNE = find('img/logo_ESNE.png') LOGO_EPC_LONG = find('img/header.gif') LOGO_CPNE = find('img/logo_CPNE.jpg') +LOGO_CPNE_ADR = find('img/logo_CPNE_avec_adr.png') class HorLine(Flowable): @@ -65,17 +67,16 @@ class EpcBaseDocTemplate(SimpleDocTemplate): def header(self, canvas, doc): canvas.saveState() canvas.drawImage( - LOGO_EPC, doc.leftMargin, doc.height - 1.5 * cm, 5 * cm, 3 * cm, preserveAspectRatio=True - ) - canvas.drawImage( - LOGO_ESNE, doc.width - 2.5 * cm, doc.height - 1.2 * cm, 5 * cm, 3.3 * cm, preserveAspectRatio=True + LOGO_CPNE_ADR, doc.leftMargin, doc.height - 3.5 * cm, 7 * cm, 3 * cm, preserveAspectRatio=True ) # Footer - canvas.line(doc.leftMargin, 1 * cm, doc.width + doc.leftMargin, 1 * cm) - footer = Paragraph(settings.PDF_FOOTER_TEXT, style_footer) - w, h = footer.wrap(doc.width, doc.bottomMargin) - footer.drawOn(canvas, doc.leftMargin, h) + canvas.setFont('Helvetica', 9) + canvas.drawString(doc.leftMargin, doc.bottomMargin, "032 886 33 00") + canvas.drawCentredString(doc.leftMargin + doc.width / 2, doc.bottomMargin, "cpne-2s@rpn.ch") + canvas.setFont('Helvetica-Bold', 9) + canvas.drawRightString(doc.width + doc.leftMargin, doc.bottomMargin, "www.cpne.ch") + canvas.restoreState() def header_cpne(self, canvas, doc): @@ -283,8 +284,8 @@ class CompensationForm: MENTOR_MANDAT = 'MENTOR' EXPERT_ACCOUNT = '30 490 002' MENTOR_ACCOUNT = "30 490 002" - OTP_EDE_PS_OTP = "CIFO01.03.02.07.02.01" - OTP_EDE_PE_OTP = "CIFO01.03.02.07.01.01" + OTP_EDE_PE_OTP = "CPNE01.08.01.07.01.01" + OTP_EDE_PS_OTP = "CPNE01.08.01.07.02.01" def add_private_data(self, person): self.story.append(Spacer(0, 0.5 * cm)) @@ -293,7 +294,7 @@ class CompensationForm: self.story.append(Spacer(0, 0.2 * cm)) quest_url = 'https://edus2.rpn.ch/DocumentsRHPersonnelEcolesPro/Formulaire%20imp%C3%B4t%20%C3%A0%20la%20source%202021.pdf' data = [ - [self.formating('PÔLE :', style=style_normal), 'École Santé-social Pierre-Coullery', '', ''], + [self.formating('PÔLE :', style=style_normal), 'Santé et Social', '', ''], [Paragraph('COORDONNÉES PERSONNELLES :', style=style_bold_italic), '', '', ''], [self.formating('Nom : '), person.last_name or self.points, self.formating('N° de téléphone :'), person.tel or ''], [self.formating('Prénom :'), person.first_name or self.points, self.formating('N° AVS :'), person.avs or ''], @@ -393,7 +394,7 @@ class CompensationForm: class ExpertEdeLetterPdf(CompensationForm, EpcBaseDocTemplate): - reference = 'ASH/val' + reference = 'BAH/val' title = 'Travail de diplôme' resp_filiere, resp_genre = settings.RESP_FILIERE_EDE part1_text = """ @@ -401,14 +402,14 @@ class ExpertEdeLetterPdf(CompensationForm, EpcBaseDocTemplate): Vous avez accepté de fonctionner comme expert{expert_accord} pour un {title_lower} de l’un-e de nos étudiant-e-s. Nous vous remercions très chaleureusement de votre disponibilité.

En annexe, nous avons l’avantage de vous remettre le travail de {student_civility_full_name}, - ainsi que la grille d’évaluation commune aux deux membres du jury.

+ accompagné des documents usuels à l’évaluation de ce dernier.

La soutenance de ce travail de diplôme se déroulera le:

""" part2_text = """
L’autre membre du jury sera {internal_expert_civility} {internal_expert_full_name}, {internal_expert_role} dans notre école.

- Par ailleurs, nous nous permettons de vous faire parvenir en annexe le formulaire «Indemnisation d’experts aux examens» + Par ailleurs, nous nous permettons de vous faire parvenir en annexe le formulaire «Indemnisation d’experts» que vous voudrez bien compléter au niveau des «données privées / coordonnées de paiement» et nous retourner dans les meilleurs délais.

Restant à votre disposition pour tout complément d’information et en vous remerciant de @@ -439,16 +440,14 @@ class ExpertEdeLetterPdf(CompensationForm, EpcBaseDocTemplate): header_text = """


La Chaux-de-Fonds, le {current_date}
- N/réf.: {ref}
-


- {title} + Réf : {ref}



""" self.story.append(Paragraph(header_text.format( current_date=django_format(date.today(), 'j F Y'), ref=self.reference, title=self.title, - ), style_normal)) + ), style_adress)) self.story.append(Paragraph(self.part1_text.format( title_lower=self.title.lower(), @@ -457,10 +456,13 @@ class ExpertEdeLetterPdf(CompensationForm, EpcBaseDocTemplate): student_civility_full_name=self.exam.student.civility_full_name, ), style_normal)) - date_text = "
{0} à l'Ecole Santé-social Pierre-Coullery, salle {1}

" + date_text = ( + "
{date} en {salle}
" + "CPNE Pôle Santé et Social, rue Sophie-Mairet 29-31 - 2300 La Chaux-de-Fonds

" + ) self.story.append(Paragraph(date_text.format( - django_format(exam_data['date_exam'], 'l j F Y à H\hi'), - exam_data['room'], + date=django_format(exam_data['date_exam'], 'l j F Y à H\hi'), + salle=exam_data['room'], ), style_bold_center)) self.story.append(Paragraph(self.part2_text.format( @@ -471,16 +473,12 @@ class ExpertEdeLetterPdf(CompensationForm, EpcBaseDocTemplate): ), style_normal)) footer_text = """ - {lela} responsable de filière:
-

- {resp_filiere} -


- Annexes: ment. +
Brahim Hemma
+ Directeur adjoint CPNE-2S """ - self.story.append(Paragraph(footer_text.format( - lela='Le' if self.resp_genre == 'M' else 'La', - resp_filiere=self.resp_filiere, - ), style_normal)) + self.story.append(Paragraph(footer_text, style_adress)) + self.story.append(Spacer(0, 1.5 * cm)) + self.story.append(Paragraph("Annexes: ment.", style_normal)) # ISO page self.story.append(NextPageTemplate('ISOPage')) @@ -509,8 +507,8 @@ class ExpertEdsLetterPdf(ExpertEdeLetterPdf): resp_filiere, resp_genre = settings.RESP_FILIERE_EDS part1_text = """ {expert_civility},

- Vous avez accepté de fonctionner comme expert{expert_accord} pour un {title_lower} de l'un-e de nos - étudiant-e-s. Nous vous remercions très chaleureusement de votre disponibilité.

+ Vous avez accepté de fonctionner comme expert{expert_accord} pour un {title_lower} de l'un·e de nos + étudiant·e·s. Nous vous remercions très chaleureusement de votre disponibilité.

En annexe, nous avons l'avantage de vous remettre le travail de {student_civility_full_name}, ainsi que diverses informations sur le cadre de cet examen et la grille d'évaluation commune aux deux membres du jury.

diff --git a/stages/static/img/logo_CPNE_avec_adr.png b/stages/static/img/logo_CPNE_avec_adr.png new file mode 100644 index 0000000..0e75e7a Binary files /dev/null and b/stages/static/img/logo_CPNE_avec_adr.png differ diff --git a/stages/views/export.py b/stages/views/export.py index e2cd332..9359a83 100644 --- a/stages/views/export.py +++ b/stages/views/export.py @@ -243,9 +243,9 @@ def export_sap(request): 'ASAFE': 'CIFO01.03.02.03.01.02 - ASA EE', 'ASEFE': 'CIFO01.03.02.04.01.02 - CFC ASE EE', 'ASSCFE': 'CIFO01.03.02.04.02.02 - CFC ASSC EE', - 'EDEpe': 'CIFO01.03.02.07.01.01 - EDE prat. prof. PT', - 'EDEps': 'CIFO01.03.02.07.02.01 - EDE stages PT', - 'EDS': 'CIFO01.03.02.07.03.02 - EDS EE', + 'EDEpe': 'CPNE01.08.01.07.01.01 - EDE-S-SS', + 'EDEps': 'CPNE01.08.01.07.02.01 - EDE-S-PS', + 'EDS': 'CPNE01.08.01.07.03.02 - EDS EE', 'CAS_FPP': 'CIFO01.03.02.01.03 - Mandats divers (CAS FPP)', 'MPTS' : 'CIFO01.04.03.06.02.01 - MPTS ASE', 'MPS': 'CIFO01.04.03.06.03.01 - MPS Santé',