Matrice ACs vs ressources

This commit is contained in:
Cléo Baras 2021-03-29 22:11:17 +02:00
parent 83dfc1cb49
commit 5ed495fcf5
3 changed files with 27 additions and 9 deletions

View File

@ -170,9 +170,11 @@ for r in liste_ressources:
# 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])
__LOGGER.warning(f"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
acs = r.apprentissages
if len(acs) != 3:
@ -223,12 +225,25 @@ for sem in ressources:
if len(ressem) != nbre_ressources_semestre:
__LOGGER.warning(f"Pb => il manque des ressources au {sem}")
matrices[sem] = [[False]*nbre_ressources_semestre]*nbre_acs
matrices[sem] = [ [False]*nbre_ressources_semestre for i in range(nbre_acs)]
for (i, r) in enumerate(ressem): # pour chaque ressource
for comp in r.apprentissages: # pour chaque comp
for comp in range(len(r.apprentissages)): # pour chaque comp
for (j, ac) in enumerate(les_codes_acs): # pour chaque ac
if ac in r.apprentissages[comp]: # si l'ac est prévue dans la ressource
matrices[r.semestre][j][i] = True
print(matrices["S1"])
print("Matrice du semestre " + sem)
ligne = "{:20s} | " + "{:4s} | "*nbre_ressources_semestre
valeurs = ("" for i in range(nbre_ressources_semestre+1))
trait = "-"*len(ligne.format(*valeurs))
# print(matrices["S1"])
valeurs = [""] + [r.code if r.code else "????" for r in ressem] + [""]*(nbre_ressources_semestre-len(ressem))
valeurs = tuple(valeurs)
print(ligne.format(*valeurs), trait, sep="\n")
for (j, ac) in enumerate(les_codes_acs):
valeurs = [ac] + [("X" if matrices[sem][j][i] == True else "") for i in range(nbre_ressources_semestre)]
valeurs = tuple(valeurs)
print(ligne.format(*valeurs))

View File

@ -16,7 +16,7 @@ S1:
R115: "Gestion de projet"
S2:
R201: "Technologie de l'Internet"
R202: "Administration système"
R202: "Administration système et fondamentaux de la virtualisation"
R203: "Bases des services réseaux"
R204: "Initiation à la téléphonie d'entreprise"
R205: "Signaux et Systèmes pour les transmissions"
@ -25,7 +25,7 @@ S2:
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"
R211: "Expression-Culture-Communication Professionnelles (ECC2)"
R212: "PPP: Formalisation du projet"
R213: "Mathématiques des systèmes numériques"
R214: "Analyse des signaux"

View File

@ -14,6 +14,7 @@ with open("pn/acs.yml", 'r', encoding="utf8") as fid:
DATA_ACS = yaml.load(fid.read(), Loader=yaml.Loader)
class Ressource():
"""Classe modélisant les ressources"""
def __init__(self, nom, brute):
self.nom = nom
self.brute = brute # les données brutes de la ressource
@ -36,7 +37,9 @@ 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"""
"""Nettoie le champ (horaire) (de la forme 46h ou 33...) pour en extraire la valeur numérique :
le champ peut contenir 2 volumes (heures formation puis heures tp), auquel cas les 2 valeurs sont renvoyées
dans un tuple"""
try: # champ contenant uniquement un nbre d'heure
volumes = int(champ)
return volumes
@ -47,8 +50,8 @@ def nettoie_heure(champ):
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")
#else:
#__LOGGER.warning("Heures non détectées")
def nettoie_code(champ):
"""Recherche les codes ressources de la forme RXXX dans champ"""