Améliore la détection des heures (de formation encadrées et de TP)

This commit is contained in:
Cléo Baras 2021-03-29 21:47:42 +02:00
parent 9d137e1d66
commit 83dfc1cb49
3 changed files with 28 additions and 11 deletions

View File

@ -132,9 +132,19 @@ ressources = {"S1" : [], "S2": []}
for r in liste_ressources:
# Nettoie le champ heures_encadrees
if r.heures_encadrees:
r.heures_encadrees = nettoie_heure(r.heures_encadrees)
volumes = nettoie_heure(r.heures_encadrees)
if r.tp:
r.tp = nettoie_heure(r.tp)
if isinstance(volumes, int):
r.heures_encadrees = volumes
elif isinstance(volumes, tuple):
r.heures_encadrees = volumes[0]
if not r.tp:
r.tp = volumes[1]
elif r.tp != volumes[1]:
__LOGGER.warning(r"Dans {r.nom}, pb dans les heures tp/td")
else:
r.heures_encadrees = None
# Nettoie les codes
if r.code:
@ -159,6 +169,8 @@ for r in liste_ressources:
r.semestre = "S2"
# Remet en forme le titre
if r.code:
if supprime_accent_espace(r.nom) != supprime_accent_espace(DATA_RESSOURCES[r.semestre][r.code]):
__LOGGER.warning(r"Dans {r.nom}, pb dans le nom de la ressource : devient " + DATA_RESSOURCES[r.semestre][r.code])
r.nom = DATA_RESSOURCES[r.semestre][r.code]
# Remet en forme les ACs
@ -187,7 +199,7 @@ trait = "-"*len(ligne.format("", "", "", ""))
for sem in ressources: # parcours des semestres
ressem = ressources[sem] # les ressources du semestre
print(f"Semestre {sem}")
print(trait, ligne.format("Code", "Ressource", "CM/TD", "TP"), trait, sep="\n")
print(trait, ligne.format("Code", "Ressource", "Form.", "dont TP"), trait, sep="\n")
for r in ressem:
print(ligne.format(r.code if r.code else "MANQUANT",
# r.nom[:30] + ("..." if len(r.nom) > 30 else "") ,

View File

@ -9,7 +9,7 @@ S1:
R108: "Bases des systèmes d'exploitation"
R109: "Introduction aux technologies Web"
R110: "Anglais de communication et initiation au vocabulaire technique"
R111: "Expression-Culture-Communication Professionnelles 1"
R111: "Expression-Culture-Communication Professionnelles (ECC1)"
R112: "PPP: Connaître son champ d'activité"
R113: "Mathématiques du signal"
R114: "Mathématiques des transmissions"
@ -22,7 +22,7 @@ S2:
R205: "Signaux et Systèmes pour les transmissions"
R206: "Numérisation de l'information"
R207: "Sources de données"
R208: "Traitement de données en programmation"
R208: "Analyse et traitement de données structurées"
R209: "Initiation au développement Web"
R210: "Développement de l'anglais technique"
R211: "Expression-Culture-Communication Professionnelles 2"

View File

@ -37,13 +37,18 @@ class Ressource():
def nettoie_heure(champ):
"""Nettoie le champ (horaire) (de la forme 46h ou 33...) pour n'en extraire que la valeur numérique"""
temp = champ.rstrip().lower()
champs = temp.split(" ")
if champs[0][0] not in string.digits:
__LOGGER.warning("champ heure non analysable/analyse")
try: # champ contenant uniquement un nbre d'heure
volumes = int(champ)
return volumes
except:
volumes = re.findall("(\d{2}\D|\d{1}\D)", champ)
if len(volumes) == 1:
return int(volumes[0][:-1])
elif len(volumes) == 2:
volumes = sorted(volumes, reverse=True)
return (int(volumes[0][:-1]), int(volumes[1][:-1]))
else:
heure = champs[0].split("h")[0]
return int(heure)
__LOGGER.warning("Heures non détectées")
def nettoie_code(champ):
"""Recherche les codes ressources de la forme RXXX dans champ"""