BUT: edition programme: affiche parcours des modules
This commit is contained in:
parent
2a8bc1c73f
commit
6c64844058
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -2,100 +2,87 @@
|
|||||||
{# Édition liste modules APC (SAÉ ou ressources) #}
|
{# Édition liste modules APC (SAÉ ou ressources) #}
|
||||||
|
|
||||||
<div class="formation_list_modules formation_list_modules_{{module_type.name}}">
|
<div class="formation_list_modules formation_list_modules_{{module_type.name}}">
|
||||||
<div class="formation_list_modules_titre">{{titre}}</div>
|
<div class="formation_list_modules_titre">{{titre}}</div>
|
||||||
|
|
||||||
<ul class="notes_module_list">
|
<ul class="notes_module_list">
|
||||||
|
|
||||||
{% if not formation.ues.count() %}
|
{% if not formation.ues.count() %}
|
||||||
<li class="notes_module_list"><em>aucune UE</em></li>
|
<li class="notes_module_list"><em>aucune UE</em></li>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for mod in modules %}
|
{% for mod in modules %}
|
||||||
<li class="notes_module_list module_{{mod.type_name()}}">
|
<li class="notes_module_list module_{{mod.type_name()}}">
|
||||||
<span class="notes_module_list_buts">
|
<span class="notes_module_list_buts">
|
||||||
{% if editable and not loop.first %}
|
{% if editable and not loop.first %}
|
||||||
<a href="{{ url_for('notes.module_move',
|
<a href="{{ url_for('notes.module_move',
|
||||||
scodoc_dept=g.scodoc_dept, module_id=mod.id, after=0 )
|
scodoc_dept=g.scodoc_dept, module_id=mod.id, after=0 )
|
||||||
}}" class="aud">{{icons.arrow_up|safe}}</a>
|
}}" class="aud">{{icons.arrow_up|safe}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
{{icons.arrow_none|safe}}
|
{{icons.arrow_none|safe}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if editable and not loop.last %}
|
{% if editable and not loop.last %}
|
||||||
<a href="{{ url_for('notes.module_move',
|
<a href="{{ url_for('notes.module_move',
|
||||||
scodoc_dept=g.scodoc_dept, module_id=mod.id, after=1 )
|
scodoc_dept=g.scodoc_dept, module_id=mod.id, after=1 )
|
||||||
}}" class="aud">{{icons.arrow_down|safe}}</a>
|
}}" class="aud">{{icons.arrow_down|safe}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
{{icons.arrow_none|safe}}
|
{{icons.arrow_none|safe}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
{% if editable and not mod.modimpls.count() %}
|
{% if editable and not mod.modimpls.count() %}
|
||||||
<a class="smallbutton" href="{{ url_for('notes.module_delete',
|
<a class="smallbutton" href="{{ url_for('notes.module_delete',
|
||||||
scodoc_dept=g.scodoc_dept, module_id=mod.id)
|
scodoc_dept=g.scodoc_dept, module_id=mod.id)
|
||||||
}}">{{icons.delete|safe}}</a>
|
}}">{{icons.delete|safe}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
{{icons.delete_disabled|safe}}
|
{{icons.delete_disabled|safe}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% 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 %}
|
||||||
<span class="formation_module_tit">{{mod.code}} {{mod.titre|default("", true)}}</span>
|
<span class="formation_module_tit">{{mod.code}} {{mod.titre|default("", true)}}</span>
|
||||||
{% if editable %}
|
{% if editable %}
|
||||||
</a>
|
</a>
|
||||||
{% 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 %}
|
||||||
|
({{mod.heures_cours|default(" ",true)|safe}}/{{mod.heures_td|default(" ",true)|safe}}/{{mod.heures_tp|default(" ",true)|safe}},
|
||||||
|
{% else %}
|
||||||
|
({% endif %}Apo:<span class="{% if editable %}span_apo_edit{% endif %}"
|
||||||
|
data-url="edit_module_set_code_apogee" id="{{mod.id}}" data-placeholder="{{scu.APO_MISSING_CODE_STR}}">
|
||||||
|
{{mod.code_apogee|default("", true)}}</span>)
|
||||||
|
|
||||||
{% if mod.heures_cours or mod.heures_td or mod.heures_tp %}
|
<span class="ue_coefs_list">
|
||||||
({{mod.heures_cours|default(" ",true)|safe}}/{{mod.heures_td|default(" ",true)|safe}}/{{mod.heures_tp|default(" ",true)|safe}},
|
{% for coef in mod.ue_coefs %}
|
||||||
{% else %}
|
<span>{{coef.ue.acronyme}}:{{coef.coef}}</span>
|
||||||
({% endif %}Apo:<span class="{% if editable %}span_apo_edit{% endif %}"
|
{% endfor %}
|
||||||
data-url="edit_module_set_code_apogee"
|
</span>
|
||||||
id="{{mod.id}}"
|
|
||||||
data-placeholder="{{scu.APO_MISSING_CODE_STR}}">
|
|
||||||
{{mod.code_apogee|default("", true)}}</span>)
|
|
||||||
|
|
||||||
<span class="ue_coefs_list">
|
{% if mod.ue.type != 0 and mod.module_type != 0 %}
|
||||||
{% for coef in mod.ue_coefs %}
|
<span class="warning" title="Une UE de type spécial ne
|
||||||
<span>{{coef.ue.acronyme}}:{{coef.coef}}</span>
|
|
||||||
{% endfor %}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
{% if mod.ue.type != 0 and mod.module_type != 0 %}
|
|
||||||
<span class="warning" title="Une UE de type spécial ne
|
|
||||||
devrait contenir que des modules standards">
|
devrait contenir que des modules standards">
|
||||||
type incompatible avec son UE de rattachement !
|
type incompatible avec son UE de rattachement !
|
||||||
</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 %}
|
||||||
@ -107,7 +94,7 @@
|
|||||||
}}" class="stdlink">ajouter un module de malus dans chaque UE du S{{semestre_id}}</a>
|
}}" class="stdlink">ajouter un module de malus dans chaque UE du S{{semestre_id}}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
Loading…
Reference in New Issue
Block a user