forked from ScoDoc/ScoDoc
PV jury: indique démission en BUT (oubli) et nouvelle pref. pour signature de gauche
This commit is contained in:
parent
0d5d6e7e3b
commit
851f64f38a
@ -198,7 +198,15 @@ def pvjury_table_but(
|
|||||||
"niveaux": (
|
"niveaux": (
|
||||||
deca.descr_niveaux_validation(line_sep=line_sep) if deca else "-"
|
deca.descr_niveaux_validation(line_sep=line_sep) if deca else "-"
|
||||||
),
|
),
|
||||||
"decision_but": deca.code_valide if deca else "",
|
"decision_but": (
|
||||||
|
(
|
||||||
|
scu.ETATS_INSCRIPTION_SHORT.get(deca.inscription_etat)
|
||||||
|
if deca.inscription_etat != scu.INSCRIT
|
||||||
|
else deca.code_valide
|
||||||
|
)
|
||||||
|
if deca
|
||||||
|
else ""
|
||||||
|
),
|
||||||
"devenir": (
|
"devenir": (
|
||||||
"Diplôme obtenu"
|
"Diplôme obtenu"
|
||||||
if has_diplome
|
if has_diplome
|
||||||
|
@ -1031,6 +1031,19 @@ class BasePreferences:
|
|||||||
"category": "pvpdf",
|
"category": "pvpdf",
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
"PV_SIGNATURE_LEFT",
|
||||||
|
{
|
||||||
|
"initvalue": "",
|
||||||
|
"title": "Texte signature PV gauche",
|
||||||
|
"explanation": """texte optionnel placé sous la table
|
||||||
|
du PV de jury, à gauche de la signature""",
|
||||||
|
"input_type": "textarea",
|
||||||
|
"rows": 1,
|
||||||
|
"cols": 64,
|
||||||
|
"category": "pvpdf",
|
||||||
|
},
|
||||||
|
),
|
||||||
(
|
(
|
||||||
"ChiefDeptName",
|
"ChiefDeptName",
|
||||||
{
|
{
|
||||||
|
@ -31,13 +31,8 @@ import io
|
|||||||
|
|
||||||
import reportlab
|
import reportlab
|
||||||
from reportlab.lib.units import cm, mm
|
from reportlab.lib.units import cm, mm
|
||||||
from reportlab.lib.enums import TA_JUSTIFY
|
from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT, TA_RIGHT
|
||||||
from reportlab.platypus import (
|
from reportlab.platypus import Paragraph, Spacer, PageBreak, Table, TableStyle
|
||||||
Paragraph,
|
|
||||||
Spacer,
|
|
||||||
PageBreak,
|
|
||||||
Table,
|
|
||||||
)
|
|
||||||
from reportlab.platypus.doctemplate import BaseDocTemplate
|
from reportlab.platypus.doctemplate import BaseDocTemplate
|
||||||
from reportlab.lib.pagesizes import A4, landscape
|
from reportlab.lib.pagesizes import A4, landscape
|
||||||
from reportlab.lib import styles
|
from reportlab.lib import styles
|
||||||
@ -179,7 +174,7 @@ def _pvjury_pdf_type(
|
|||||||
) -> tuple[list, bool]:
|
) -> tuple[list, bool]:
|
||||||
"""Objets platypus PDF récapitulant les décisions de jury
|
"""Objets platypus PDF récapitulant les décisions de jury
|
||||||
pour un type de jury (passage ou delivrance).
|
pour un type de jury (passage ou delivrance).
|
||||||
Ramene: liste d'onj platypus, et un boolen indiquant si au moins un étudiant est diplômé.
|
Ramene: liste d'obj platypus, et un booléen indiquant si au moins un étudiant est diplômé.
|
||||||
"""
|
"""
|
||||||
from app.scodoc import sco_pv_forms
|
from app.scodoc import sco_pv_forms
|
||||||
from app.but import jury_but_pv
|
from app.but import jury_but_pv
|
||||||
@ -325,15 +320,39 @@ def _pvjury_pdf_type(
|
|||||||
Table(table_cells, repeatRows=1, colWidths=widths, style=table_style)
|
Table(table_cells, repeatRows=1, colWidths=widths, style=table_style)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Signature du directeur
|
# Table sous la table avec signatures
|
||||||
objects += sco_pdf.make_paras(
|
# Create paragraphs
|
||||||
f"""<para spaceBefore="10mm" align="right">{
|
left_para = sco_pdf.make_paras(
|
||||||
sco_preferences.get_preference("DirectorName", formsemestre.id) or ""
|
f"""<para align="left">{
|
||||||
}, {
|
sco_preferences.get_preference("PV_SIGNATURE_LEFT", formsemestre.id) or ""
|
||||||
sco_preferences.get_preference("DirectorTitle", formsemestre.id) or ""
|
}</para>""",
|
||||||
}</para>""",
|
|
||||||
style,
|
style,
|
||||||
)
|
)
|
||||||
|
# Signature du directeur
|
||||||
|
right_para = sco_pdf.make_paras(
|
||||||
|
f"""<para spaceBefore="10mm" align="right">{
|
||||||
|
sco_preferences.get_preference("DirectorName", formsemestre.id) or ""
|
||||||
|
}, {
|
||||||
|
sco_preferences.get_preference("DirectorTitle", formsemestre.id) or ""
|
||||||
|
}</para>""",
|
||||||
|
style,
|
||||||
|
)
|
||||||
|
# Create a table with two cells
|
||||||
|
data = [[left_para, right_para]]
|
||||||
|
# Create the table
|
||||||
|
table_signatures = Table(data)
|
||||||
|
# Apply table style to remove borders
|
||||||
|
table_signatures.setStyle(
|
||||||
|
TableStyle(
|
||||||
|
[
|
||||||
|
("BOX", (0, 0), (-1, -1), 0, "white"), # No border for the table
|
||||||
|
("INNERGRID", (0, 0), (-1, -1), 0, "white"), # No inner grid lines
|
||||||
|
("VALIGN", (0, 0), (-1, -1), "TOP"), # Align content to the top
|
||||||
|
]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
objects.append(Spacer(0, 6 * mm))
|
||||||
|
objects.append(table_signatures)
|
||||||
|
|
||||||
# Légende des codes
|
# Légende des codes
|
||||||
codes = list(codes_cursus.CODES_EXPL.keys())
|
codes = list(codes_cursus.CODES_EXPL.keys())
|
||||||
|
@ -109,6 +109,11 @@ ETATS_INSCRIPTION = {
|
|||||||
DEMISSION: "Démission",
|
DEMISSION: "Démission",
|
||||||
DEF: "Défaillant",
|
DEF: "Défaillant",
|
||||||
}
|
}
|
||||||
|
ETATS_INSCRIPTION_SHORT = {
|
||||||
|
INSCRIT: "I",
|
||||||
|
DEMISSION: "DEM",
|
||||||
|
DEF: "DEF",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def convert_fr_date(
|
def convert_fr_date(
|
||||||
|
Loading…
Reference in New Issue
Block a user