From 83dfc1cb499c6b2ff6427553ced6c9de51dd75cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9o=20Baras?= Date: Mon, 29 Mar 2021 21:47:42 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20la=20d=C3=A9tection=20des=20heu?= =?UTF-8?q?res=20(de=20formation=20encadr=C3=A9es=20et=20de=20TP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/export.py | 16 ++++++++++++++-- python/pn/ressources.yml | 4 ++-- python/ressource.py | 19 ++++++++++++------- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/python/export.py b/python/export.py index 2fe6e94..948414e 100644 --- a/python/export.py +++ b/python/export.py @@ -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 "") , diff --git a/python/pn/ressources.yml b/python/pn/ressources.yml index 1671416..2b66d85 100644 --- a/python/pn/ressources.yml +++ b/python/pn/ressources.yml @@ -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" diff --git a/python/ressource.py b/python/ressource.py index 8ac92eb..e159a82 100644 --- a/python/ressource.py +++ b/python/ressource.py @@ -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") - else: - heure = champs[0].split("h")[0] - return int(heure) + 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: + __LOGGER.warning("Heures non détectées") def nettoie_code(champ): """Recherche les codes ressources de la forme RXXX dans champ"""