forked from ScoDoc/ScoDoc
APC / Niveaux / templates: ameliroations mineures
This commit is contained in:
parent
47ed37e90e
commit
41d938931e
@ -321,6 +321,8 @@ def set_ue_parcours(ue_id: int):
|
|||||||
]
|
]
|
||||||
log(f"set_ue_parcours: ue_id={ue.id} parcours_ids={parcours_ids}")
|
log(f"set_ue_parcours: ue_id={ue.id} parcours_ids={parcours_ids}")
|
||||||
ok, error_message = ue.set_parcours(parcours)
|
ok, error_message = ue.set_parcours(parcours)
|
||||||
|
if not ok:
|
||||||
|
return json_error(404, error_message)
|
||||||
return {"status": ok, "message": error_message}
|
return {"status": ok, "message": error_message}
|
||||||
|
|
||||||
|
|
||||||
|
@ -325,7 +325,8 @@ class UniteEns(db.Model):
|
|||||||
if self.niveau_competence_id is not None:
|
if self.niveau_competence_id is not None:
|
||||||
return (
|
return (
|
||||||
False,
|
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 (
|
if (
|
||||||
niveau.competence.referentiel.id
|
niveau.competence.referentiel.id
|
||||||
@ -358,6 +359,7 @@ class UniteEns(db.Model):
|
|||||||
Si un niveau est déjà associé, vérifie sa cohérence.
|
Si un niveau est déjà associé, vérifie sa cohérence.
|
||||||
Renvoie (True, "") si ok, sinon (False, error_message)
|
Renvoie (True, "") si ok, sinon (False, error_message)
|
||||||
"""
|
"""
|
||||||
|
msg = ""
|
||||||
# Le niveau est-il dans tous ces parcours ? Sinon, l'enlève
|
# Le niveau est-il dans tous ces parcours ? Sinon, l'enlève
|
||||||
prev_niveau = self.niveau_competence
|
prev_niveau = self.niveau_competence
|
||||||
if (
|
if (
|
||||||
@ -366,6 +368,7 @@ class UniteEns(db.Model):
|
|||||||
and self.niveau_competence.id not in self._parcours_niveaux_ids(parcours)
|
and self.niveau_competence.id not in self._parcours_niveaux_ids(parcours)
|
||||||
):
|
):
|
||||||
self.niveau_competence = None
|
self.niveau_competence = None
|
||||||
|
msg = " (niveau compétence désassocié !)"
|
||||||
|
|
||||||
if parcours and self.niveau_competence:
|
if parcours and self.niveau_competence:
|
||||||
ok, error_message = self.check_niveau_unique_dans_parcours(
|
ok, error_message = self.check_niveau_unique_dans_parcours(
|
||||||
@ -381,12 +384,12 @@ class UniteEns(db.Model):
|
|||||||
# Invalidation du cache
|
# Invalidation du cache
|
||||||
self.formation.invalidate_cached_sems()
|
self.formation.invalidate_cached_sems()
|
||||||
log(f"ue.set_parcours( {self}, {parcours} )")
|
log(f"ue.set_parcours( {self}, {parcours} )")
|
||||||
return True, ""
|
return True, "parcours enregistrés" + msg
|
||||||
|
|
||||||
def add_parcour(self, parcour: ApcParcours) -> tuple[bool, str]:
|
def add_parcour(self, parcour: ApcParcours) -> tuple[bool, str]:
|
||||||
"""Ajoute ce parcours à ceux de l'UE"""
|
"""Ajoute ce parcours à ceux de l'UE"""
|
||||||
if parcour.id in {p.id for p in self.parcours}:
|
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:
|
if parcour.referentiel.id != self.formation.referentiel_competence.id:
|
||||||
return False, "Le parcours n'appartient pas au référentiel de la formation"
|
return False, "Le parcours n'appartient pas au référentiel de la formation"
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ def formation_export_dict(
|
|||||||
ue_dict["apc_niveau_libelle"] = ue.niveau_competence.libelle
|
ue_dict["apc_niveau_libelle"] = ue.niveau_competence.libelle
|
||||||
ue_dict["apc_niveau_annee"] = ue.niveau_competence.annee
|
ue_dict["apc_niveau_annee"] = ue.niveau_competence.annee
|
||||||
ue_dict["apc_niveau_ordre"] = ue.niveau_competence.ordre
|
ue_dict["apc_niveau_ordre"] = ue.niveau_competence.ordre
|
||||||
# Et le parcour:
|
# Et les parcours:
|
||||||
if ue.parcours:
|
if ue.parcours:
|
||||||
ue_dict["parcours"] = [
|
ue_dict["parcours"] = [
|
||||||
parcour.to_dict(with_annees=False) for parcour in ue.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(
|
def _formation_retreive_apc_niveau(
|
||||||
referentiel_competence_id: int, ue_dict: dict
|
referentiel_competence_id: int, ue_dict: dict
|
||||||
) -> int:
|
) -> int:
|
||||||
"""Recherche dans le ref. de comp. un niveau pour cette UE
|
"""Recherche dans le ref. de comp. un niveau pour cette UE.
|
||||||
utilise comme clé (libelle, annee, ordre)
|
Utilise (libelle, annee, ordre) comme clé.
|
||||||
"""
|
"""
|
||||||
libelle = ue_dict.get("apc_niveau_libelle")
|
libelle = ue_dict.get("apc_niveau_libelle")
|
||||||
annee = ue_dict.get("apc_niveau_annee")
|
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
|
assert ue
|
||||||
if xml_ue_id:
|
if xml_ue_id:
|
||||||
ues_old2new[xml_ue_id] = ue_id
|
ues_old2new[xml_ue_id] = ue_id
|
||||||
|
# parcours BUT
|
||||||
|
# TODO XXX
|
||||||
# élément optionnel présent dans les exports BUT:
|
# élément optionnel présent dans les exports BUT:
|
||||||
ue_reference = ue_info[1].get("reference")
|
ue_reference = ue_info[1].get("reference")
|
||||||
if ue_reference:
|
if ue_reference:
|
||||||
|
@ -111,9 +111,7 @@ get_base_preferences(formsemestre_id)
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import flask
|
import flask
|
||||||
from flask import flash, g, request
|
from flask import current_app, flash, g, request, url_for
|
||||||
|
|
||||||
# from flask_login import current_user
|
|
||||||
|
|
||||||
from app.models import Departement
|
from app.models import Departement
|
||||||
from app.scodoc import sco_cache
|
from app.scodoc import sco_cache
|
||||||
@ -2234,7 +2232,6 @@ class SemPreferences:
|
|||||||
raise ScoValueError(
|
raise ScoValueError(
|
||||||
"sem_preferences.edit doit etre appele sur un semestre !"
|
"sem_preferences.edit doit etre appele sur un semestre !"
|
||||||
) # a bug !
|
) # a bug !
|
||||||
sem = sco_formsemestre.get_formsemestre(self.formsemestre_id)
|
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.html_sem_header(
|
html_sco_header.html_sem_header(
|
||||||
"Préférences du semestre",
|
"Préférences du semestre",
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
{% block styles %}
|
{% block styles %}
|
||||||
{{super()}}
|
{{super()}}
|
||||||
<link href="{{sco.scu.STATIC_DIR}}/css/refcomp_parcours_niveaux.css" rel="stylesheet" type="text/css" />
|
<link href="{{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/parcour_formation.css" rel="stylesheet" type="text/css" />
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% macro menu_ue(niv, sem="pair", sem_idx=0) -%}
|
{% macro menu_ue(niv, sem="pair", sem_idx=0) -%}
|
||||||
@ -37,7 +37,7 @@
|
|||||||
{% if niv['ue_'+sem] %}
|
{% if niv['ue_'+sem] %}
|
||||||
{{ niv['ue_'+sem].acronyme }}
|
{{ niv['ue_'+sem].acronyme }}
|
||||||
{% else %}
|
{% 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 %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -14,23 +14,23 @@
|
|||||||
{% if sco.sem.modalite %} en {{sco.sem.modalite}}{% endif %}</span>
|
{% if sco.sem.modalite %} en {{sco.sem.modalite}}{% endif %}</span>
|
||||||
<span class="dates">
|
<span class="dates">
|
||||||
<a title="du {{sco.sem.date_debut.strftime('%d/%m/%Y')}}
|
<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]}}
|
au {{sco.sem.date_fin.strftime('%d/%m/%Y')}} ">{{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]}}
|
{{sco.sem.date_debut.year}} - {{scu.MONTH_NAMES_ABBREV[sco.sem.date_fin.month - 1]}}
|
||||||
{{sco.sem.date_fin.year}}</a></span>
|
{{sco.sem.date_fin.year}}</a></span>
|
||||||
<span class="resp"><a
|
<span class="resp"><a
|
||||||
title="{{sco.sem.responsables_str(abbrev_prenom=False)}}">{{sco.sem.responsables_str()}}</a></span>
|
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,
|
<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
|
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,
|
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">
|
verrouillé")|safe}}</a>{% endif %}</span><span class="eye">
|
||||||
{% if sco.prefs["bul_display_publication"] %}
|
{% if sco.prefs["bul_display_publication"] %}
|
||||||
<a href="{{url_for('notes.formsemestre_change_publication_bul', scodoc_dept=g.scodoc_dept,
|
<a href="{{url_for('notes.formsemestre_change_publication_bul', scodoc_dept=g.scodoc_dept,
|
||||||
formsemestre_id=sco.sem.id)}}">
|
formsemestre_id=sco.sem.id)}}">
|
||||||
{% if sco.sem.bul_hide_xml %}
|
{% 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 %}
|
{% 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 %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.4.71"
|
SCOVERSION = "9.4.74"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user