############################################################################## # ScoDoc # Copyright (c) 1999 - 2022 Emmanuel Viennet. All rights reserved. # See LICENSE ############################################################################## """ Edition associations UE <-> Ref. Compétence """ from flask import g, url_for from app.models import ApcReferentielCompetences, Formation, UniteEns from app.scodoc import sco_codes_parcours def form_ue_choix_niveau(ue: UniteEns) -> str: """Form. HTML pour associer une UE à un niveau de compétence. Le menu select lui meême est vide et rempli en JS par appel à get_ue_niveaux_options_html """ if ue.type != sco_codes_parcours.UE_STANDARD: return "" ref_comp = ue.formation.referentiel_competence if ref_comp is None: return f"""
Pas de référentiel de compétence associé à cette formation !
associer un référentiel de compétence
""" # Les parcours: parcours_options = [] for parcour in ref_comp.parcours: parcours_options.append( f"""""" ) newline = "\n" return f"""
Parcours :
Niveau de compétence :
""" def get_ue_niveaux_options_html(ue: UniteEns) -> str: """fragment html avec les options du menu de sélection du niveau de compétences associé à une UE. Si l'UE n'a pas de parcours associé: présente les niveaux de tous les parcours. Si l'UE a un parcours: seulement les niveaux de ce parcours. """ ref_comp: ApcReferentielCompetences = ue.formation.referentiel_competence if ref_comp is None: return "" # Les niveaux: annee = ue.annee() # 1, 2, 3 parcours, niveaux_by_parcours = ref_comp.get_niveaux_by_parcours( annee, parcour=ue.parcour ) # Les niveaux déjà associés à d'autres UE du même semestre autres_ues = ue.formation.ues.filter_by(semestre_idx=ue.semestre_idx) niveaux_autres_ues = { oue.niveau_competence_id for oue in autres_ues if oue.id != ue.id } options = [] if niveaux_by_parcours["TC"]: # TC pour Tronc Commun options.append("""""") for n in niveaux_by_parcours["TC"]: if n.id in niveaux_autres_ues: disabled = "disabled" else: disabled = "" options.append( f"""""" ) options.append("""""") for parcour in parcours: if len(niveaux_by_parcours[parcour.id]): options.append(f"""""") for n in niveaux_by_parcours[parcour.id]: if n.id in niveaux_autres_ues: disabled = "disabled" else: disabled = "" options.append( f"""""" ) options.append("""""") return ( f"""""" + "\n".join(options) )