forked from ScoDoc/ScoDoc
DUT après jury BUT: ajout sur bulletins et PVs. WIP #577
This commit is contained in:
parent
b14c3938b7
commit
e63cdba1f6
@ -576,7 +576,6 @@ class BulletinBUT:
|
|||||||
show_uevalid=self.prefs["bul_show_uevalid"],
|
show_uevalid=self.prefs["bul_show_uevalid"],
|
||||||
show_mention=self.prefs["bul_show_mention"],
|
show_mention=self.prefs["bul_show_mention"],
|
||||||
)
|
)
|
||||||
|
|
||||||
d.update(infos)
|
d.update(infos)
|
||||||
# --- Rangs
|
# --- Rangs
|
||||||
d["rang_nt"] = (
|
d["rang_nt"] = (
|
||||||
|
@ -39,6 +39,7 @@ from app.scodoc.codes_cursus import UE_STANDARD
|
|||||||
from app.scodoc.sco_exceptions import ScoNoReferentielCompetences, ScoValueError
|
from app.scodoc.sco_exceptions import ScoNoReferentielCompetences, ScoValueError
|
||||||
from app.scodoc.sco_logos import find_logo
|
from app.scodoc.sco_logos import find_logo
|
||||||
from app.scodoc.sco_permissions import Permission
|
from app.scodoc.sco_permissions import Permission
|
||||||
|
from app.scodoc.sco_pv_lettres_inviduelles import add_dut120_infos
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app.views import notes_bp as bp
|
from app.views import notes_bp as bp
|
||||||
from app.views import ScoData
|
from app.views import ScoData
|
||||||
@ -67,7 +68,6 @@ def bulletin_but(formsemestre_id: int, etudid: int = None, fmt="html"):
|
|||||||
raise ScoValueError("formation non BUT")
|
raise ScoValueError("formation non BUT")
|
||||||
|
|
||||||
args = _build_bulletin_but_infos(etud, formsemestre, fmt=fmt)
|
args = _build_bulletin_but_infos(etud, formsemestre, fmt=fmt)
|
||||||
|
|
||||||
if fmt == "pdf":
|
if fmt == "pdf":
|
||||||
filename = scu.bul_filename(formsemestre, etud, prefix="bul-but")
|
filename = scu.bul_filename(formsemestre, etud, prefix="bul-but")
|
||||||
bul_pdf = bulletin_but_court_pdf.make_bulletin_but_court_pdf(args)
|
bul_pdf = bulletin_but_court_pdf.make_bulletin_but_court_pdf(args)
|
||||||
@ -153,4 +153,5 @@ def _build_bulletin_but_infos(
|
|||||||
if ue.type == UE_STANDARD and ue.acronyme in ue_acronyms
|
if ue.type == UE_STANDARD and ue.acronyme in ue_acronyms
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
add_dut120_infos(formsemestre, etud.id, args)
|
||||||
return args
|
return args
|
||||||
|
@ -97,6 +97,8 @@ class BulletinGeneratorBUTCourt(BulletinGeneratorStandard):
|
|||||||
tuple[int, str], ScolarFormSemestreValidation
|
tuple[int, str], ScolarFormSemestreValidation
|
||||||
] = None,
|
] = None,
|
||||||
ues_acronyms: list[str] = None,
|
ues_acronyms: list[str] = None,
|
||||||
|
diplome_dut120: bool = False,
|
||||||
|
diplome_dut120_descr: str = "",
|
||||||
):
|
):
|
||||||
super().__init__(bul, authuser=current_user, filigranne=filigranne)
|
super().__init__(bul, authuser=current_user, filigranne=filigranne)
|
||||||
self.bul = bul
|
self.bul = bul
|
||||||
@ -110,7 +112,8 @@ class BulletinGeneratorBUTCourt(BulletinGeneratorStandard):
|
|||||||
self.title = title
|
self.title = title
|
||||||
self.ue_validation_by_niveau = ue_validation_by_niveau
|
self.ue_validation_by_niveau = ue_validation_by_niveau
|
||||||
self.ues_acronyms = ues_acronyms # sans UEs sport
|
self.ues_acronyms = ues_acronyms # sans UEs sport
|
||||||
|
self.diplome_dut120 = diplome_dut120
|
||||||
|
self.diplome_dut120_descr = diplome_dut120_descr
|
||||||
self.nb_ues = len(self.ues_acronyms)
|
self.nb_ues = len(self.ues_acronyms)
|
||||||
# Styles PDF
|
# Styles PDF
|
||||||
self.style_base = styles.ParagraphStyle("style_base")
|
self.style_base = styles.ParagraphStyle("style_base")
|
||||||
@ -243,13 +246,17 @@ class BulletinGeneratorBUTCourt(BulletinGeneratorStandard):
|
|||||||
)
|
)
|
||||||
table_abs_ues.hAlign = "RIGHT"
|
table_abs_ues.hAlign = "RIGHT"
|
||||||
# Ligne (en bas) avec table cursus et boite jury
|
# Ligne (en bas) avec table cursus et boite jury
|
||||||
|
# table_content = [self.table_cursus_but()]
|
||||||
|
# if self.prefs["bul_show_decision"]:
|
||||||
|
# table_content.append([Spacer(1, 8 * mm), self.boite_decisions_jury()])
|
||||||
|
table_content = [self.table_cursus_but()]
|
||||||
|
table_content.append(
|
||||||
|
[Spacer(1, 8 * mm), self.boite_decisions_jury()]
|
||||||
|
if self.prefs["bul_show_decision"]
|
||||||
|
else []
|
||||||
|
)
|
||||||
table_cursus_jury = Table(
|
table_cursus_jury = Table(
|
||||||
[
|
[table_content],
|
||||||
[
|
|
||||||
self.table_cursus_but(),
|
|
||||||
[Spacer(1, 8 * mm), self.boite_decisions_jury()],
|
|
||||||
]
|
|
||||||
],
|
|
||||||
colWidths=(self.width_page_avail - 84 * mm, 84 * mm),
|
colWidths=(self.width_page_avail - 84 * mm, 84 * mm),
|
||||||
style=style_table_2cols,
|
style=style_table_2cols,
|
||||||
)
|
)
|
||||||
@ -533,6 +540,8 @@ class BulletinGeneratorBUTCourt(BulletinGeneratorStandard):
|
|||||||
<br/>
|
<br/>
|
||||||
{self.bul["diplomation"]}
|
{self.bul["diplomation"]}
|
||||||
"""
|
"""
|
||||||
|
if self.diplome_dut120_descr:
|
||||||
|
txt += f"""<br/>{self.diplome_dut120_descr}."""
|
||||||
|
|
||||||
if self.bul["semestre"].get("autorisation_inscription", None):
|
if self.bul["semestre"].get("autorisation_inscription", None):
|
||||||
txt += (
|
txt += (
|
||||||
|
@ -13,6 +13,7 @@ from openpyxl.styles import Alignment
|
|||||||
from app import log
|
from app import log
|
||||||
from app.but import jury_but
|
from app.but import jury_but
|
||||||
from app.but.cursus_but import but_ects_valides
|
from app.but.cursus_but import but_ects_valides
|
||||||
|
from app.models.but_validations import ValidationDUT120
|
||||||
from app.models.etudiants import Identite
|
from app.models.etudiants import Identite
|
||||||
from app.models.formsemestre import FormSemestre
|
from app.models.formsemestre import FormSemestre
|
||||||
from app.scodoc.gen_tables import GenTable
|
from app.scodoc.gen_tables import GenTable
|
||||||
@ -156,6 +157,13 @@ def pvjury_table_but(
|
|||||||
|
|
||||||
ects_but_valides = but_ects_valides(etud, referentiel_competence_id)
|
ects_but_valides = but_ects_valides(etud, referentiel_competence_id)
|
||||||
has_diplome = deca.valide_diplome()
|
has_diplome = deca.valide_diplome()
|
||||||
|
diplome_lst = ["ADM"] if has_diplome else []
|
||||||
|
validation_dut120 = ValidationDUT120.query.filter_by(
|
||||||
|
etudid=etudid, formsemestre_id=formsemestre.id
|
||||||
|
).first()
|
||||||
|
if validation_dut120:
|
||||||
|
diplome_lst.append("Diplôme de DUT validé.")
|
||||||
|
diplome_str = ". ".join(diplome_lst)
|
||||||
row = {
|
row = {
|
||||||
"nom_pv": (
|
"nom_pv": (
|
||||||
etud.code_ine or etud.code_nip or etud.id
|
etud.code_ine or etud.code_nip or etud.id
|
||||||
@ -190,7 +198,7 @@ def pvjury_table_but(
|
|||||||
else ""
|
else ""
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
"diplome": "ADM" if has_diplome else "",
|
"diplome": diplome_str,
|
||||||
# pour exports excel seulement:
|
# pour exports excel seulement:
|
||||||
"civilite": etud.civilite_etat_civil_str,
|
"civilite": etud.civilite_etat_civil_str,
|
||||||
"nom": etud.nom,
|
"nom": etud.nom,
|
||||||
|
@ -69,6 +69,7 @@ from app.scodoc import sco_formsemestre
|
|||||||
from app.scodoc import sco_groups
|
from app.scodoc import sco_groups
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
from app.scodoc import sco_pv_dict
|
from app.scodoc import sco_pv_dict
|
||||||
|
from app.scodoc import sco_pv_lettres_inviduelles
|
||||||
from app.scodoc import sco_users
|
from app.scodoc import sco_users
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app.scodoc.sco_utils import ModuleType, fmt_note
|
from app.scodoc.sco_utils import ModuleType, fmt_note
|
||||||
@ -711,6 +712,9 @@ def etud_descr_situation_semestre(
|
|||||||
descr_mention : 'Mention Bien', ou vide si pas de mention ou si pas show_mention
|
descr_mention : 'Mention Bien', ou vide si pas de mention ou si pas show_mention
|
||||||
diplomation : "Diplôme obtenu." ou ""
|
diplomation : "Diplôme obtenu." ou ""
|
||||||
parcours_titre, parcours_code, refcomp_specialite, refcomp_specialite_long
|
parcours_titre, parcours_code, refcomp_specialite, refcomp_specialite_long
|
||||||
|
|
||||||
|
diplome_dut120_descr: phrase explicative si DUT enregistré (en BUT)
|
||||||
|
diplome_dut120: booléen, vrai si DUT enregistré (en BUT)
|
||||||
"""
|
"""
|
||||||
# Fonction utilisée par tous les bulletins (APC ou classiques)
|
# Fonction utilisée par tous les bulletins (APC ou classiques)
|
||||||
infos = collections.defaultdict(str)
|
infos = collections.defaultdict(str)
|
||||||
@ -830,12 +834,16 @@ def etud_descr_situation_semestre(
|
|||||||
descr_dec += " Diplôme obtenu."
|
descr_dec += " Diplôme obtenu."
|
||||||
|
|
||||||
infos["diplomation"] = "Diplôme obtenu." if pv["validation_parcours"] else ""
|
infos["diplomation"] = "Diplôme obtenu." if pv["validation_parcours"] else ""
|
||||||
|
# Ajoute diplome_dut120_descr et diplome_dut120
|
||||||
|
sco_pv_lettres_inviduelles.add_dut120_infos(formsemestre, etudid, infos)
|
||||||
|
|
||||||
_format_situation_fields(
|
_format_situation_fields(
|
||||||
infos,
|
infos,
|
||||||
[
|
[
|
||||||
"descr_inscription",
|
"descr_inscription",
|
||||||
"descr_defaillance",
|
"descr_defaillance",
|
||||||
"descr_decisions_ue",
|
"descr_decisions_ue",
|
||||||
|
"diplome_dut120_descr",
|
||||||
"descr_decision_annee",
|
"descr_decision_annee",
|
||||||
],
|
],
|
||||||
[descr_dec, descr_mention, descr_autorisations],
|
[descr_dec, descr_mention, descr_autorisations],
|
||||||
|
@ -447,6 +447,7 @@ def dict_decision_jury(
|
|||||||
'situation': 'Inscrit le 25/06/2021. Décision jury: Validé. UE acquises: '
|
'situation': 'Inscrit le 25/06/2021. Décision jury: Validé. UE acquises: '
|
||||||
'UE31, UE32. Diplôme obtenu.',
|
'UE31, UE32. Diplôme obtenu.',
|
||||||
'diplomation' : 'Diplôme obtenu.' # (ou vide)
|
'diplomation' : 'Diplôme obtenu.' # (ou vide)
|
||||||
|
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
from app.scodoc import sco_bulletins
|
from app.scodoc import sco_bulletins
|
||||||
@ -460,8 +461,10 @@ def dict_decision_jury(
|
|||||||
formsemestre,
|
formsemestre,
|
||||||
show_uevalid=prefs["bul_show_uevalid"],
|
show_uevalid=prefs["bul_show_uevalid"],
|
||||||
)
|
)
|
||||||
d["situation"] = infos["situation"]
|
|
||||||
d["diplomation"] = infos["diplomation"]
|
d["diplomation"] = infos["diplomation"]
|
||||||
|
d["situation"] = infos["situation"]
|
||||||
|
d["diplome_dut120"] = infos["diplome_dut120"]
|
||||||
|
d["diplome_dut120_descr"] = infos["diplome_dut120_descr"]
|
||||||
if dpv:
|
if dpv:
|
||||||
decision = dpv["decisions"][0]
|
decision = dpv["decisions"][0]
|
||||||
etat = decision["etat"]
|
etat = decision["etat"]
|
||||||
|
@ -1350,7 +1350,7 @@ class BasePreferences:
|
|||||||
"bul_show_decision",
|
"bul_show_decision",
|
||||||
{
|
{
|
||||||
"initvalue": 0,
|
"initvalue": 0,
|
||||||
"title": "Faire figurer les décisions sur les bulletins",
|
"title": "Faire figurer les décisions de jury sur les bulletins",
|
||||||
"input_type": "boolcheckbox",
|
"input_type": "boolcheckbox",
|
||||||
"category": "bul",
|
"category": "bul",
|
||||||
"labels": ["non", "oui"],
|
"labels": ["non", "oui"],
|
||||||
|
@ -43,7 +43,7 @@ from reportlab.platypus.doctemplate import BaseDocTemplate
|
|||||||
from reportlab.lib import styles
|
from reportlab.lib import styles
|
||||||
|
|
||||||
from app import db
|
from app import db
|
||||||
from app.models import FormSemestre, Identite
|
from app.models import FormSemestre, Identite, ValidationDUT120
|
||||||
|
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app.scodoc import sco_bulletins_pdf
|
from app.scodoc import sco_bulletins_pdf
|
||||||
@ -347,7 +347,9 @@ def add_classic_infos(formsemestre: FormSemestre, params: dict, decision: dict):
|
|||||||
|
|
||||||
|
|
||||||
def add_apc_infos(formsemestre: FormSemestre, params: dict, decision: dict):
|
def add_apc_infos(formsemestre: FormSemestre, params: dict, decision: dict):
|
||||||
"""Ajoute les champs pour les formations APC (BUT), donc avec codes RCUE et année"""
|
"""Ajoute à params les champs pour les formations APC (BUT), avec codes RCUE et année
|
||||||
|
et diplome_dut120_descr
|
||||||
|
"""
|
||||||
annee_but = (formsemestre.semestre_id + 1) // 2
|
annee_but = (formsemestre.semestre_id + 1) // 2
|
||||||
params["decision_orig"] = f"année BUT{annee_but}"
|
params["decision_orig"] = f"année BUT{annee_but}"
|
||||||
if decision is None:
|
if decision is None:
|
||||||
@ -364,3 +366,24 @@ def add_apc_infos(formsemestre: FormSemestre, params: dict, decision: dict):
|
|||||||
'<br/> - '.join( decision.get("descr_decisions_rcue_list", []) )
|
'<br/> - '.join( decision.get("descr_decisions_rcue_list", []) )
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
add_dut120_infos(formsemestre, decision["identite"]["etudid"], params)
|
||||||
|
|
||||||
|
|
||||||
|
def add_dut120_infos(formsemestre: FormSemestre, etudid: int, params: dict):
|
||||||
|
"""Ajout DUT120:
|
||||||
|
diplome_dut120_descr: phrase explicative si DUT enregistré
|
||||||
|
diplome_dut120: booléen, vrai si DUT enregistré
|
||||||
|
"""
|
||||||
|
validation_dut120 = ValidationDUT120.query.filter_by(
|
||||||
|
etudid=etudid, formsemestre_id=formsemestre.id
|
||||||
|
).first()
|
||||||
|
if validation_dut120:
|
||||||
|
params["diplome_dut120"] = True
|
||||||
|
params["diplome_dut120_descr"] = "Diplôme de DUT (BUT1, BUT2) validé"
|
||||||
|
if "decision_sem_descr" in params:
|
||||||
|
# sur decision_sem_descr afin que cela apparaisse sur les
|
||||||
|
# lettres individuelles sans avoir à modifier le paramétrage
|
||||||
|
params["decision_sem_descr"] += ". " + params["diplome_dut120_descr"]
|
||||||
|
else:
|
||||||
|
params["diplome_dut120"] = False
|
||||||
|
params["diplome_dut120_descr"] = ""
|
||||||
|
@ -133,13 +133,16 @@
|
|||||||
<div>ECTS acquis en BUT : <b>{{"%g"|format(ects_total)}}</b></div>
|
<div>ECTS acquis en BUT : <b>{{"%g"|format(ects_total)}}</b></div>
|
||||||
<div class="descr_jury">
|
<div class="descr_jury">
|
||||||
{% if bul.semestre.decision_annee %}
|
{% if bul.semestre.decision_annee %}
|
||||||
Décision saisie le {{
|
{# Décision saisie le {{
|
||||||
datetime.datetime.fromisoformat(bul.semestre.decision_annee.date).strftime(scu.DATE_FMT)
|
datetime.datetime.fromisoformat(bul.semestre.decision_annee.date).strftime(scu.DATE_FMT)
|
||||||
}},
|
}}, #}
|
||||||
année <b>BUT{{bul.semestre.decision_annee.ordre}}</b>
|
année <b>BUT{{bul.semestre.decision_annee.ordre}}</b>
|
||||||
<b>{{bul.semestre.decision_annee.code}}</b>.
|
<b>{{bul.semestre.decision_annee.code}}</b>.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="diplomation">{{bul.semestre.diplomation}}</div>
|
<div class="diplomation">{{bul.semestre.diplomation}}</div>
|
||||||
|
{% if diplome_dut120_descr %}
|
||||||
|
<div class="diplomation">{{diplome_dut120_descr}}.</div>
|
||||||
|
{% endif %}
|
||||||
{% set virg = joiner(", ") %}
|
{% set virg = joiner(", ") %}
|
||||||
{% for aut in bul.semestre.autorisation_inscription -%}
|
{% for aut in bul.semestre.autorisation_inscription -%}
|
||||||
{% if loop.first %}
|
{% if loop.first %}
|
||||||
|
Loading…
Reference in New Issue
Block a user