forked from ScoDoc/ScoDoc
82 lines
2.2 KiB
Python
82 lines
2.2 KiB
Python
##############################################################################
|
|
# Module "Avis de poursuite d'étude"
|
|
# conçu et développé par Cléo Baras (IUT de Grenoble)
|
|
##############################################################################
|
|
|
|
"""Affichages, debug
|
|
"""
|
|
|
|
from flask import g
|
|
from app import log
|
|
|
|
PE_DEBUG = True
|
|
|
|
|
|
# On stocke les logs PE dans g.scodoc_pe_log
|
|
# pour ne pas modifier les nombreux appels à pe_print.
|
|
def pe_start_log() -> list[str]:
|
|
"Initialize log"
|
|
g.scodoc_pe_log = []
|
|
return g.scodoc_pe_log
|
|
|
|
|
|
def pe_print(*a):
|
|
"Log (or print in PE_DEBUG mode) and store in g"
|
|
if PE_DEBUG:
|
|
msg = " ".join(a)
|
|
print(msg)
|
|
else:
|
|
lines = getattr(g, "scodoc_pe_log")
|
|
if lines is None:
|
|
lines = pe_start_log()
|
|
msg = " ".join(a)
|
|
lines.append(msg)
|
|
log(msg)
|
|
|
|
|
|
def pe_get_log() -> str:
|
|
"Renvoie une chaîne avec tous les messages loggués"
|
|
return "\n".join(getattr(g, "scodoc_pe_log", []))
|
|
|
|
|
|
# Affichage dans le tableur pe en cas d'absence de notes
|
|
SANS_NOTE = "-"
|
|
|
|
|
|
def aff_profil_coeffs(matrice_coeffs_moy_gen, with_index=False):
|
|
"""Affiche les différents types de coefficients (appelés profil)
|
|
d'une matrice_coeffs_moy_gen (pour debug)
|
|
"""
|
|
|
|
# Les profils des coeffs d'UE (pour debug)
|
|
profils = []
|
|
index_a_profils = {}
|
|
for i in matrice_coeffs_moy_gen.index:
|
|
val = matrice_coeffs_moy_gen.loc[i].fillna("-")
|
|
val = " | ".join([str(v) for v in val])
|
|
if val not in profils:
|
|
profils += [val]
|
|
index_a_profils[val] = [str(i)]
|
|
else:
|
|
index_a_profils[val] += [str(i)]
|
|
|
|
# L'affichage
|
|
if len(profils) > 1:
|
|
if with_index:
|
|
elmts = [
|
|
" " * 10
|
|
+ prof
|
|
+ " (par ex. "
|
|
+ ", ".join(index_a_profils[prof][:10])
|
|
+ ")"
|
|
for prof in profils
|
|
]
|
|
else:
|
|
elmts = [" " * 10 + prof for prof in profils]
|
|
profils_aff = "\n" + "\n".join(elmts)
|
|
else:
|
|
profils_aff = "\n".join(profils)
|
|
pe_print(
|
|
f" > Moyenne calculée avec pour coeffs (de compétences) : {profils_aff}"
|
|
)
|