diff --git a/app/scodoc/sco_edit_module.py b/app/scodoc/sco_edit_module.py index bb0152aecd..0b76fce32a 100644 --- a/app/scodoc/sco_edit_module.py +++ b/app/scodoc/sco_edit_module.py @@ -29,7 +29,7 @@ (portage from DTML) """ import flask -from flask import url_for, render_template +from flask import flash, url_for, render_template from flask import g, request from flask_login import current_user @@ -915,13 +915,23 @@ def module_count_moduleimpls(module_id): return len(mods) -def formation_add_malus_modules(formation_id, titre=None, redirect=True): +def formation_add_malus_modules( + formation_id: int, semestre_id: int = None, titre=None, redirect=True +): """Création d'un module de "malus" dans chaque UE d'une formation""" formation = Formation.query.get_or_404(formation_id) - for ue in formation.ues: - ue_add_malus_module(ue, titre=titre) + nb = 0 + ues = formation.ues + if semestre_id is not None: + ues = ues.filter_by(semestre_idx=semestre_id) + for ue in ues: + if ue.type == sco_codes_parcours.UE_STANDARD: + if ue_add_malus_module(ue, titre=titre) != None: + nb += 1 + + flash(f"Modules de malus ajoutés dans {nb} UEs du S{semestre_id}") formation.invalidate_cached_sems() @@ -940,9 +950,9 @@ def ue_add_malus_module(ue: UniteEns, titre=None, code=None) -> int: """ modules_malus = [m for m in ue.modules if m.module_type == scu.ModuleType.MALUS] if len(modules_malus) > 0: - return modules_malus[0].id # déjà existant + return None # déjà existant - titre = titre or "" + titre = titre or f"Malus {ue.acronyme}" code = code or f"MALUS{ue.numero}" # Tout module doit avoir un semestre_id (indice 1, 2, ...) @@ -954,7 +964,7 @@ def ue_add_malus_module(ue: UniteEns, titre=None, code=None) -> int: # c'est ennuyeux: dans ce cas, on pourrait demander à indiquer explicitement # le semestre ? ou affecter le malus au semestre 1 ??? raise ScoValueError( - "Impossible d'ajouter un malus s'il n'y a pas d'autres modules" + "Impossible d'ajouter un malus si l'UE n'a pas de numéro de semestre et ne comporte pas d'autres modules" ) else: semestre_id = ue.semestre_idx diff --git a/app/scodoc/sco_edit_ue.py b/app/scodoc/sco_edit_ue.py index 86bc2b9abe..c6837cc67d 100644 --- a/app/scodoc/sco_edit_ue.py +++ b/app/scodoc/sco_edit_ue.py @@ -739,7 +739,8 @@ du programme" (menu "Semestre") si vous avez un semestre en cours); else: descr_refcomp = f"""Référentiel de compétences: + scodoc_dept=g.scodoc_dept, refcomp_id=formation.referentiel_competence.id)}" + class="stdlink"> {formation.referentiel_competence.type_titre} {formation.referentiel_competence.specialite_long}  """ msg_refcomp = "changer" @@ -755,7 +756,7 @@ du programme" (menu "Semestre") si vous avez un semestre en cours); f"""
  • éditer les coefficients des ressources et SAÉs + }">Éditer les coefficients des ressources et SAÉs
  • """ @@ -844,6 +845,7 @@ du programme" (menu "Semestre") si vous avez un semestre en cours); ) }">Créer une nouvelle version (non verrouillée) + """ ) H.append( diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css index 961d789bc4..99158dabf3 100644 --- a/app/static/css/scodoc.css +++ b/app/static/css/scodoc.css @@ -2066,6 +2066,10 @@ span.notes_module_list_buts { margin-right: 5px; } +.formation_apc_infos ul li:not(:last-child) { + margin-bottom: 6px; +} + div.ue_list_tit { font-weight: bold; margin-top: 5px; diff --git a/app/templates/pn/form_mods.html b/app/templates/pn/form_mods.html index 4e3031ab28..480cf267c2 100644 --- a/app/templates/pn/form_mods.html +++ b/app/templates/pn/form_mods.html @@ -94,9 +94,19 @@ formation_id=formation.id, semestre_id=semestre_id, )}}" - {% endif %} + {% endif %} >{{create_element_msg}} + + {% if module_type==scu.ModuleType.STANDARD %} +
  • ajouter un module de malus dans chaque UE du S{{semestre_id}} +
  • + {% endif %} {% endif %} {% endif %} diff --git a/sco_version.py b/sco_version.py index 171fc11579..afc0672701 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.3.2" +SCOVERSION = "9.3.3" SCONAME = "ScoDoc"