Matrice ACs vs ressources
This commit is contained in:
parent
83dfc1cb49
commit
5ed495fcf5
@ -170,9 +170,11 @@ for r in liste_ressources:
|
|||||||
# Remet en forme le titre
|
# Remet en forme le titre
|
||||||
if r.code:
|
if r.code:
|
||||||
if supprime_accent_espace(r.nom) != supprime_accent_espace(DATA_RESSOURCES[r.semestre][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]
|
r.nom = DATA_RESSOURCES[r.semestre][r.code]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Remet en forme les ACs
|
# Remet en forme les ACs
|
||||||
acs = r.apprentissages
|
acs = r.apprentissages
|
||||||
if len(acs) != 3:
|
if len(acs) != 3:
|
||||||
@ -223,12 +225,25 @@ for sem in ressources:
|
|||||||
if len(ressem) != nbre_ressources_semestre:
|
if len(ressem) != nbre_ressources_semestre:
|
||||||
__LOGGER.warning(f"Pb => il manque des ressources au {sem}")
|
__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 (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
|
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
|
if ac in r.apprentissages[comp]: # si l'ac est prévue dans la ressource
|
||||||
matrices[r.semestre][j][i] = True
|
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))
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ S1:
|
|||||||
R115: "Gestion de projet"
|
R115: "Gestion de projet"
|
||||||
S2:
|
S2:
|
||||||
R201: "Technologie de l'Internet"
|
R201: "Technologie de l'Internet"
|
||||||
R202: "Administration système"
|
R202: "Administration système et fondamentaux de la virtualisation"
|
||||||
R203: "Bases des services réseaux"
|
R203: "Bases des services réseaux"
|
||||||
R204: "Initiation à la téléphonie d'entreprise"
|
R204: "Initiation à la téléphonie d'entreprise"
|
||||||
R205: "Signaux et Systèmes pour les transmissions"
|
R205: "Signaux et Systèmes pour les transmissions"
|
||||||
@ -25,7 +25,7 @@ S2:
|
|||||||
R208: "Analyse et traitement de données structurées"
|
R208: "Analyse et traitement de données structurées"
|
||||||
R209: "Initiation au développement Web"
|
R209: "Initiation au développement Web"
|
||||||
R210: "Développement de l'anglais technique"
|
R210: "Développement de l'anglais technique"
|
||||||
R211: "Expression-Culture-Communication Professionnelles 2"
|
R211: "Expression-Culture-Communication Professionnelles (ECC2)"
|
||||||
R212: "PPP: Formalisation du projet"
|
R212: "PPP: Formalisation du projet"
|
||||||
R213: "Mathématiques des systèmes numériques"
|
R213: "Mathématiques des systèmes numériques"
|
||||||
R214: "Analyse des signaux"
|
R214: "Analyse des signaux"
|
||||||
|
@ -14,6 +14,7 @@ with open("pn/acs.yml", 'r', encoding="utf8") as fid:
|
|||||||
DATA_ACS = yaml.load(fid.read(), Loader=yaml.Loader)
|
DATA_ACS = yaml.load(fid.read(), Loader=yaml.Loader)
|
||||||
|
|
||||||
class Ressource():
|
class Ressource():
|
||||||
|
"""Classe modélisant les ressources"""
|
||||||
def __init__(self, nom, brute):
|
def __init__(self, nom, brute):
|
||||||
self.nom = nom
|
self.nom = nom
|
||||||
self.brute = brute # les données brutes de la ressource
|
self.brute = brute # les données brutes de la ressource
|
||||||
@ -36,7 +37,9 @@ class Ressource():
|
|||||||
|
|
||||||
|
|
||||||
def nettoie_heure(champ):
|
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
|
try: # champ contenant uniquement un nbre d'heure
|
||||||
volumes = int(champ)
|
volumes = int(champ)
|
||||||
return volumes
|
return volumes
|
||||||
@ -47,8 +50,8 @@ def nettoie_heure(champ):
|
|||||||
elif len(volumes) == 2:
|
elif len(volumes) == 2:
|
||||||
volumes = sorted(volumes, reverse=True)
|
volumes = sorted(volumes, reverse=True)
|
||||||
return (int(volumes[0][:-1]), int(volumes[1][:-1]))
|
return (int(volumes[0][:-1]), int(volumes[1][:-1]))
|
||||||
else:
|
#else:
|
||||||
__LOGGER.warning("Heures non détectées")
|
#__LOGGER.warning("Heures non détectées")
|
||||||
|
|
||||||
def nettoie_code(champ):
|
def nettoie_code(champ):
|
||||||
"""Recherche les codes ressources de la forme RXXX dans champ"""
|
"""Recherche les codes ressources de la forme RXXX dans champ"""
|
||||||
|
Loading…
Reference in New Issue
Block a user