Jury BUT: complète logs étudiants. + cosmetic
This commit is contained in:
parent
acc1ecf906
commit
ec632dd43c
@ -356,9 +356,9 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
dec_ue.compute_codes()
|
||||
|
||||
# Reste à attribuer ADM, ADJ, PASD, PAS1NCI, RED, NAR
|
||||
expl_rcues = (
|
||||
f"{self.nb_validables} niveau validable(s) sur {self.nb_competences}"
|
||||
)
|
||||
plural = self.nb_validables > 1
|
||||
expl_rcues = f"""{self.nb_validables} niveau{"x" if plural else ""} validable{
|
||||
"s" if plural else ""} sur {self.nb_competences}"""
|
||||
if self.admis:
|
||||
self.codes = [sco_codes.ADM] + self.codes
|
||||
self.explanation = expl_rcues
|
||||
@ -778,6 +778,11 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
||||
ordre=self.annee_but,
|
||||
)
|
||||
for validation in validations:
|
||||
Scolog.logdb(
|
||||
"jury_but",
|
||||
etudid=self.etud.id,
|
||||
msg=f"Validation année BUT{self.annee_but}: effacée",
|
||||
)
|
||||
db.session.delete(validation)
|
||||
db.session.flush()
|
||||
self.invalidate_formsemestre_cache()
|
||||
@ -933,7 +938,7 @@ class DecisionsProposeesRCUE(DecisionsProposees):
|
||||
Scolog.logdb(
|
||||
method="jury_but",
|
||||
etudid=self.etud.id,
|
||||
msg=f"Validation RCUE {repr(self.rcue)}",
|
||||
msg=f"Validation {self.rcue}: {code}",
|
||||
)
|
||||
db.session.add(self.validation)
|
||||
if self.rcue.formsemestre_1 is not None:
|
||||
@ -1088,6 +1093,11 @@ class DecisionsProposeesUE(DecisionsProposees):
|
||||
self.erase()
|
||||
if code is None:
|
||||
self.validation = None
|
||||
Scolog.logdb(
|
||||
method="jury_but",
|
||||
etudid=self.etud.id,
|
||||
msg=f"Validation UE {self.ue.id} {self.ue.acronyme}: effacée",
|
||||
)
|
||||
else:
|
||||
self.validation = ScolarFormSemestreValidation(
|
||||
etudid=self.etud.id,
|
||||
@ -1099,7 +1109,7 @@ class DecisionsProposeesUE(DecisionsProposees):
|
||||
Scolog.logdb(
|
||||
method="jury_but",
|
||||
etudid=self.etud.id,
|
||||
msg=f"Validation UE {self.ue.id}",
|
||||
msg=f"Validation UE {self.ue.id} {self.ue.acronyme}({self.moy_ue}): {code}",
|
||||
)
|
||||
db.session.add(self.validation)
|
||||
log(f"DecisionsProposeesUE: recording {self.validation}")
|
||||
@ -1115,6 +1125,11 @@ class DecisionsProposeesUE(DecisionsProposees):
|
||||
)
|
||||
for validation in validations:
|
||||
log(f"DecisionsProposeesUE: deleting {validation}")
|
||||
Scolog.logdb(
|
||||
method="jury_but",
|
||||
etudid=self.etud.id,
|
||||
msg=f"Validation UE {validation.ue.id} {validation.ue.acronyme}: effacée",
|
||||
)
|
||||
db.session.delete(validation)
|
||||
db.session.flush()
|
||||
|
||||
|
@ -61,11 +61,12 @@ def show_etud(deca: DecisionsProposeesAnnee, read_only: bool = True) -> str:
|
||||
<span>({'non ' if deca.code_valide is None else ''}enregistrée)</span>
|
||||
<span>{erase_span}</span>
|
||||
</div>
|
||||
<div class="but_explanation">{deca.explanation}</div>
|
||||
"""
|
||||
)
|
||||
div_explanation = f"""<div class="but_explanation">{deca.explanation}</div>"""
|
||||
else:
|
||||
H.append("""<div><em>Pas de décision annuelle (sem. impair).</em></div>""")
|
||||
div_explanation = ""
|
||||
H.append("""</div>""")
|
||||
|
||||
formsemestre_1 = deca.formsemestre_impair
|
||||
@ -80,8 +81,10 @@ def show_etud(deca: DecisionsProposeesAnnee, read_only: bool = True) -> str:
|
||||
formsemestre_1, formsemestre_2 = formsemestre_2, formsemestre_1
|
||||
H.append(
|
||||
f"""
|
||||
<div class="titre_niveaux"><b>Niveaux de compétences et unités d'enseignement du BUT{
|
||||
deca.annee_but}</b></div>
|
||||
<div class="titre_niveaux">
|
||||
<b>Niveaux de compétences et unités d'enseignement du BUT{deca.annee_but}</b>
|
||||
</div>
|
||||
{div_explanation}
|
||||
<div class="but_annee">
|
||||
<div class="titre"></div>
|
||||
<div class="titre">{"S" +str(formsemestre_1.semestre_id)
|
||||
|
@ -145,6 +145,11 @@ class RegroupementCoherentUE:
|
||||
self.ue_1.acronyme}({self.moy_ue_1}) {
|
||||
self.ue_2.acronyme}({self.moy_ue_2})>"""
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"""RCUE {
|
||||
self.ue_1.acronyme}({self.moy_ue_1}) + {
|
||||
self.ue_2.acronyme}({self.moy_ue_2})"""
|
||||
|
||||
def query_validations(
|
||||
self,
|
||||
) -> flask_sqlalchemy.BaseQuery: # list[ApcValidationRCUE]
|
||||
|
@ -116,7 +116,9 @@ class ScolarAutorisationInscription(db.Model):
|
||||
semestre_id=semestre_id,
|
||||
)
|
||||
db.session.add(autorisation)
|
||||
Scolog.logdb("autorise_etud", etudid=etudid, msg=f"passage vers S{semestre_id}")
|
||||
Scolog.logdb(
|
||||
"autorise_etud", etudid=etudid, msg=f"Passage vers S{semestre_id}: autorisé"
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def delete_autorisation_etud(
|
||||
@ -133,7 +135,7 @@ class ScolarAutorisationInscription(db.Model):
|
||||
Scolog.logdb(
|
||||
"autorise_etud",
|
||||
etudid=etudid,
|
||||
msg=f"annule passage vers S{autorisation.semestre_id}",
|
||||
msg=f"Passage vers S{autorisation.semestre_id}: effacé",
|
||||
)
|
||||
db.session.flush()
|
||||
|
||||
|
@ -39,7 +39,7 @@ from app import db, log
|
||||
|
||||
from app.comp import res_sem
|
||||
from app.comp.res_compat import NotesTableCompat
|
||||
from app.models import FormSemestre
|
||||
from app.models import FormSemestre, UniteEns
|
||||
from app.models.notes import etud_has_notes_attente
|
||||
from app.models.validations import (
|
||||
ScolarAutorisationInscription,
|
||||
@ -1171,8 +1171,8 @@ def do_formsemestre_validate_previous_ue(
|
||||
"""
|
||||
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||
nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
|
||||
ue: UniteEns = UniteEns.query.get_or_404(ue_id)
|
||||
|
||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
||||
cnx = ndb.GetDBConnexion()
|
||||
if ue_coefficient != None:
|
||||
sco_formsemestre.do_formsemestre_uecoef_edit_or_create(
|
||||
@ -1197,10 +1197,10 @@ def do_formsemestre_validate_previous_ue(
|
||||
cnx,
|
||||
method="formsemestre_validate_previous_ue",
|
||||
etudid=etudid,
|
||||
msg="Validation UE %s" % ue_id,
|
||||
msg=f"Validation UE prec. {ue_id} {ue.acronyme}: {code}",
|
||||
commit=False,
|
||||
)
|
||||
_invalidate_etud_formation_caches(etudid, sem["formation_id"])
|
||||
_invalidate_etud_formation_caches(etudid, formsemestre.formation_id)
|
||||
cnx.commit()
|
||||
|
||||
|
||||
|
@ -1,18 +1,17 @@
|
||||
/* Saisie décision de jury BUT */
|
||||
|
||||
.jury_but form {
|
||||
.jury_but {
|
||||
font-family: Verdana, Geneva, Tahoma, sans-serif;
|
||||
}
|
||||
|
||||
.jury_but .titre_parcours {
|
||||
.jury_but .titre_parcours,
|
||||
.jury_but .nom_etud {
|
||||
font-size: 130%;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.jury_but .nom_etud {
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
.but_annee {
|
||||
@ -111,7 +110,9 @@ div.but_settings {
|
||||
.but_explanation {
|
||||
color: blueviolet;
|
||||
font-style: italic;
|
||||
padding-top: 12px;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 12px;
|
||||
;
|
||||
}
|
||||
|
||||
select:disabled {
|
||||
|
@ -2,7 +2,7 @@
|
||||
<p><em>Ci-dessous la signification de chaque code est expliquée,
|
||||
ainsi que la correspondance avec certains codes préconisés par
|
||||
l'AMUE et l'ADIUT pour Apogée.
|
||||
</em>
|
||||
</em><br />
|
||||
On distingue les codes ScoDoc (utilisés ci-dessus et dans les différentes
|
||||
tables générées par ScoDoc) et leur transcription vers Apogée lors des exports
|
||||
(transcription paramétrable par votre administrateur ScoDoc).
|
||||
|
Loading…
Reference in New Issue
Block a user