BUT: edition programme: affiche parcours des modules

This commit is contained in:
Emmanuel Viennet 2022-10-30 22:42:10 +01:00
parent 2a8bc1c73f
commit 6c64844058
3 changed files with 80 additions and 78 deletions

View File

@ -3,7 +3,7 @@
from app import db from app import db
from app.models import APO_CODE_STR_LEN from app.models import APO_CODE_STR_LEN
from app.models.but_refcomp import app_critiques_modules, parcours_modules from app.models.but_refcomp import ApcParcours, app_critiques_modules, parcours_modules
from app.scodoc import sco_utils as scu from app.scodoc import sco_utils as scu
from app.scodoc.sco_codes_parcours import UE_SPORT from app.scodoc.sco_codes_parcours import UE_SPORT
from app.scodoc.sco_utils import ModuleType from app.scodoc.sco_utils import ModuleType
@ -219,6 +219,19 @@ class Module(db.Model):
return {x.strip() for x in self.code_apogee.split(",") if x} return {x.strip() for x in self.code_apogee.split(",") if x}
return set() return set()
def get_parcours(self) -> list[ApcParcours]:
"""Les parcours utilisant ce module.
Si tous les parcours, liste vide (!).
"""
ref_comp = self.formation.referentiel_competence
if not ref_comp:
return []
tous_parcours_ids = {p.id for p in ref_comp.parcours}
parcours_ids = {p.id for p in self.parcours}
if tous_parcours_ids == parcours_ids:
return []
return self.parcours
class ModuleUECoef(db.Model): class ModuleUECoef(db.Model):
"""Coefficients des modules vers les UE (APC, BUT) """Coefficients des modules vers les UE (APC, BUT)

View File

@ -341,7 +341,9 @@ def module_edit(
# Toutes les UEs de la formation (tout parcours): # Toutes les UEs de la formation (tout parcours):
ues = formation.ues.order_by( ues = formation.ues.order_by(
UniteEns.semestre_idx, UniteEns.numero, UniteEns.acronyme UniteEns.semestre_idx, UniteEns.numero, UniteEns.acronyme
).all() )
if is_apc and create and semestre_id is not None:
ues = ues.filter_by(semestre_idx=semestre_id)
# L'UE de rattachement par défaut: 1ere du semestre # L'UE de rattachement par défaut: 1ere du semestre
ue_default = ( ue_default = (
formation.ues.filter_by(semestre_idx=orig_semestre_idx) formation.ues.filter_by(semestre_idx=orig_semestre_idx)

View File

@ -37,8 +37,7 @@
{% if editable %} {% if editable %}
<a class="discretelink" title="Modifier le module {{mod.code}}, <a class="discretelink" title="Modifier le module {{mod.code}},
utilisé par {{mod.modimpls.count()}} sessions ({{mod.ue.acronyme}})" utilisé par {{mod.modimpls.count()}} sessions ({{mod.ue.acronyme}})" href="{{ url_for('notes.module_edit',
href="{{ url_for('notes.module_edit',
scodoc_dept=g.scodoc_dept, module_id=mod.id) scodoc_dept=g.scodoc_dept, module_id=mod.id)
}}"> }}">
{% endif %} {% endif %}
@ -48,15 +47,13 @@
{% endif %} {% endif %}
(<span class="formation_module_ue"><a title="UE de rattachement">{{mod.ue.acronyme}}</a></span>), (<span class="formation_module_ue"><a title="UE de rattachement">{{mod.ue.acronyme}}</a></span>),
{{formation.get_parcours().SESSION_NAME}} {{mod.semestre_id}}
parcours <b>{{ mod.get_parcours()|map(attribute="code")|join("</b>, <b>")|default('tronc commun', true)|safe }}</b>
{% if mod.heures_cours or mod.heures_td or mod.heures_tp %} {% if mod.heures_cours or mod.heures_td or mod.heures_tp %}
({{mod.heures_cours|default("&nbsp;",true)|safe}}/{{mod.heures_td|default("&nbsp;",true)|safe}}/{{mod.heures_tp|default("&nbsp;",true)|safe}}, ({{mod.heures_cours|default("&nbsp;",true)|safe}}/{{mod.heures_td|default("&nbsp;",true)|safe}}/{{mod.heures_tp|default("&nbsp;",true)|safe}},
{% else %} {% else %}
({% endif %}Apo:<span class="{% if editable %}span_apo_edit{% endif %}" ({% endif %}Apo:<span class="{% if editable %}span_apo_edit{% endif %}"
data-url="edit_module_set_code_apogee" data-url="edit_module_set_code_apogee" id="{{mod.id}}" data-placeholder="{{scu.APO_MISSING_CODE_STR}}">
id="{{mod.id}}"
data-placeholder="{{scu.APO_MISSING_CODE_STR}}">
{{mod.code_apogee|default("", true)}}</span>) {{mod.code_apogee|default("", true)}}</span>)
<span class="ue_coefs_list"> <span class="ue_coefs_list">
@ -72,30 +69,20 @@
</span> </span>
{% endif %} {% endif %}
<span class="sco_tag_edit"><form><textarea data-module_id="{{mod.id}}" <span class="sco_tag_edit">
class="{% if tag_editable %}module_tag_editor{% else %}module_tag_editor_ro{% endif %}">{{mod.tags|join(', ', attribute='title')}}</textarea></form></span> <form><textarea data-module_id="{{mod.id}}"
class="{% if tag_editable %}module_tag_editor{% else %}module_tag_editor_ro{% endif %}">{{mod.tags|join(', ', attribute='title')}}</textarea>
</form>
</span>
</li> </li>
{% endfor %} {% endfor %}
{% if editable %} {% if editable %}
<li><a class="stdlink" href= <li><a class="stdlink" href={% if matiere_parent %}"{{ url_for("notes.module_create", scodoc_dept=g.scodoc_dept,
{% if matiere_parent %}"{{ module_type=module_type|int, matiere_id=matiere_parent.id, semestre_id=semestre_id, )}}" {% else %}"{{
url_for("notes.module_create", url_for("notes.module_create", scodoc_dept=g.scodoc_dept, module_type=module_type|int,
scodoc_dept=g.scodoc_dept, formation_id=formation.id, semestre_id=semestre_id, )}}" {% endif %}>{{create_element_msg}}</a>
module_type=module_type|int,
matiere_id=matiere_parent.id,
semestre_id=semestre_id,
)}}"
{% else %}"{{
url_for("notes.module_create",
scodoc_dept=g.scodoc_dept,
module_type=module_type|int,
formation_id=formation.id,
semestre_id=semestre_id,
)}}"
{% endif %}
>{{create_element_msg}}</a>
</li> </li>
{% if module_type==scu.ModuleType.STANDARD %} {% if module_type==scu.ModuleType.STANDARD %}