APC / Niveaux / templates: ameliroations mineures

This commit is contained in:
Emmanuel Viennet 2023-04-19 11:56:33 +02:00
parent 47ed37e90e
commit 41d938931e
7 changed files with 23 additions and 19 deletions

View File

@ -321,6 +321,8 @@ def set_ue_parcours(ue_id: int):
]
log(f"set_ue_parcours: ue_id={ue.id} parcours_ids={parcours_ids}")
ok, error_message = ue.set_parcours(parcours)
if not ok:
return json_error(404, error_message)
return {"status": ok, "message": error_message}

View File

@ -325,7 +325,8 @@ class UniteEns(db.Model):
if self.niveau_competence_id is not None:
return (
False,
f"{self.acronyme} déjà associée à un niveau de compétences",
f"""{self.acronyme} déjà associée à un niveau de compétences ({
self.id}, {self.niveau_competence_id})""",
)
if (
niveau.competence.referentiel.id
@ -358,6 +359,7 @@ class UniteEns(db.Model):
Si un niveau est déjà associé, vérifie sa cohérence.
Renvoie (True, "") si ok, sinon (False, error_message)
"""
msg = ""
# Le niveau est-il dans tous ces parcours ? Sinon, l'enlève
prev_niveau = self.niveau_competence
if (
@ -366,6 +368,7 @@ class UniteEns(db.Model):
and self.niveau_competence.id not in self._parcours_niveaux_ids(parcours)
):
self.niveau_competence = None
msg = " (niveau compétence désassocié !)"
if parcours and self.niveau_competence:
ok, error_message = self.check_niveau_unique_dans_parcours(
@ -381,12 +384,12 @@ class UniteEns(db.Model):
# Invalidation du cache
self.formation.invalidate_cached_sems()
log(f"ue.set_parcours( {self}, {parcours} )")
return True, ""
return True, "parcours enregistrés" + msg
def add_parcour(self, parcour: ApcParcours) -> tuple[bool, str]:
"""Ajoute ce parcours à ceux de l'UE"""
if parcour.id in {p.id for p in self.parcours}:
return True, ""
return True, "" # déjà présent
if parcour.referentiel.id != self.formation.referentiel_competence.id:
return False, "Le parcours n'appartient pas au référentiel de la formation"

View File

@ -127,7 +127,7 @@ def formation_export_dict(
ue_dict["apc_niveau_libelle"] = ue.niveau_competence.libelle
ue_dict["apc_niveau_annee"] = ue.niveau_competence.annee
ue_dict["apc_niveau_ordre"] = ue.niveau_competence.ordre
# Et le parcour:
# Et les parcours:
if ue.parcours:
ue_dict["parcours"] = [
parcour.to_dict(with_annees=False) for parcour in ue.parcours
@ -268,8 +268,8 @@ def _formation_retreive_refcomp(f_dict: dict) -> int:
def _formation_retreive_apc_niveau(
referentiel_competence_id: int, ue_dict: dict
) -> int:
"""Recherche dans le ref. de comp. un niveau pour cette UE
utilise comme clé (libelle, annee, ordre)
"""Recherche dans le ref. de comp. un niveau pour cette UE.
Utilise (libelle, annee, ordre) comme clé.
"""
libelle = ue_dict.get("apc_niveau_libelle")
annee = ue_dict.get("apc_niveau_annee")
@ -367,6 +367,8 @@ def formation_import_xml(doc: str, import_tags=True, use_local_refcomp=False):
assert ue
if xml_ue_id:
ues_old2new[xml_ue_id] = ue_id
# parcours BUT
# TODO XXX
# élément optionnel présent dans les exports BUT:
ue_reference = ue_info[1].get("reference")
if ue_reference:

View File

@ -111,9 +111,7 @@ get_base_preferences(formsemestre_id)
"""
import flask
from flask import flash, g, request
# from flask_login import current_user
from flask import current_app, flash, g, request, url_for
from app.models import Departement
from app.scodoc import sco_cache
@ -2234,7 +2232,6 @@ class SemPreferences:
raise ScoValueError(
"sem_preferences.edit doit etre appele sur un semestre !"
) # a bug !
sem = sco_formsemestre.get_formsemestre(self.formsemestre_id)
H = [
html_sco_header.html_sem_header(
"Préférences du semestre",

View File

@ -2,8 +2,8 @@
{% block styles %}
{{super()}}
<link href="{{sco.scu.STATIC_DIR}}/css/refcomp_parcours_niveaux.css" rel="stylesheet" type="text/css" />
<link href="{{sco.scu.STATIC_DIR}}/css/parcour_formation.css" rel="stylesheet" type="text/css" />
<link href="{{scu.STATIC_DIR}}/css/refcomp_parcours_niveaux.css" rel="stylesheet" type="text/css" />
<link href="{{scu.STATIC_DIR}}/css/parcour_formation.css" rel="stylesheet" type="text/css" />
{% endblock %}
{% macro menu_ue(niv, sem="pair", sem_idx=0) -%}
@ -37,7 +37,7 @@
{% if niv['ue_'+sem] %}
{{ niv['ue_'+sem].acronyme }}
{% else %}
<span class="fontred">{{sco.scu.EMO_WARNING|safe}} non associé</span>
<span class="fontred">{{scu.EMO_WARNING|safe}} non associé</span>
{% endif %}
{% endif %}
{% endif %}

View File

@ -14,23 +14,23 @@
{% if sco.sem.modalite %} en {{sco.sem.modalite}}{% endif %}</span>
<span class="dates">
<a title="du {{sco.sem.date_debut.strftime('%d/%m/%Y')}}
au {{sco.sem.date_fin.strftime('%d/%m/%Y')}} ">{{sco.scu.MONTH_NAMES_ABBREV[ sco.sem.date_debut.month - 1]}}
{{sco.sem.date_debut.year}} - {{sco.scu.MONTH_NAMES_ABBREV[sco.sem.date_fin.month - 1]}}
au {{sco.sem.date_fin.strftime('%d/%m/%Y')}} ">{{scu.MONTH_NAMES_ABBREV[ sco.sem.date_debut.month - 1]}}
{{sco.sem.date_debut.year}} - {{scu.MONTH_NAMES_ABBREV[sco.sem.date_fin.month - 1]}}
{{sco.sem.date_fin.year}}</a></span>
<span class="resp"><a
title="{{sco.sem.responsables_str(abbrev_prenom=False)}}">{{sco.sem.responsables_str()}}</a></span>
<span class="nbinscrits"><a class="discretelink" href="{{url_for('scolar.groups_view', scodoc_dept=g.scodoc_dept,
formsemestre_id=sco.sem.id)}}">{{sco.sem.inscriptions|length}} inscrits</a></span><span class="lock">{% if
not sco.sem.etat %}<a href="{{url_for('notes.formsemestre_flip_lock', scodoc_dept=g.scodoc_dept,
formsemestre_id=sco.sem.id)}}">{{sco.scu.icontag("lock_img", border="0", title="Semestre
formsemestre_id=sco.sem.id)}}">{{scu.icontag("lock_img", border="0", title="Semestre
verrouillé")|safe}}</a>{% endif %}</span><span class="eye">
{% if sco.prefs["bul_display_publication"] %}
<a href="{{url_for('notes.formsemestre_change_publication_bul', scodoc_dept=g.scodoc_dept,
formsemestre_id=sco.sem.id)}}">
{% if sco.sem.bul_hide_xml %}
{{ sco.scu.icontag("hide_img", border="0", title="Bulletins NON publiés")|safe}}
{{ scu.icontag("hide_img", border="0", title="Bulletins NON publiés")|safe}}
{% else %}
{{ sco.scu.icontag("eye_img", border="0", title="Bulletins publiés")|safe }}
{{ scu.icontag("eye_img", border="0", title="Bulletins publiés")|safe }}
{% endif %}
{% endif %}
</span>

View File

@ -1,7 +1,7 @@
# -*- mode: python -*-
# -*- coding: utf-8 -*-
SCOVERSION = "9.4.71"
SCOVERSION = "9.4.74"
SCONAME = "ScoDoc"