Améliore édition programme BUT: choix niveaux compétence / UE
This commit is contained in:
parent
5bc4b47e1e
commit
1148bf59eb
@ -70,7 +70,9 @@ def form_ue_choix_niveau(formation: Formation, ue: UniteEns) -> str:
|
|||||||
<div class="ue_choix_niveau">
|
<div class="ue_choix_niveau">
|
||||||
<form id="form_ue_choix_niveau">
|
<form id="form_ue_choix_niveau">
|
||||||
<b>Niveau de compétence associé:</b>
|
<b>Niveau de compétence associé:</b>
|
||||||
<select onchange="set_ue_niveau_competence();" data-setter="{
|
<select onchange="set_ue_niveau_competence(this);"
|
||||||
|
data-ue_id="{ue.id}"
|
||||||
|
data-setter="{
|
||||||
url_for( "notes.set_ue_niveau_competence", scodoc_dept=g.scodoc_dept)
|
url_for( "notes.set_ue_niveau_competence", scodoc_dept=g.scodoc_dept)
|
||||||
}">
|
}">
|
||||||
<option value="" {'selected' if ue.niveau_competence is None else ''}>aucun</option>
|
<option value="" {'selected' if ue.niveau_competence is None else ''}>aucun</option>
|
||||||
@ -83,7 +85,6 @@ def form_ue_choix_niveau(formation: Formation, ue: UniteEns) -> str:
|
|||||||
|
|
||||||
def set_ue_niveau_competence(ue_id: int, niveau_id: int):
|
def set_ue_niveau_competence(ue_id: int, niveau_id: int):
|
||||||
"""Associe le niveau et l'UE"""
|
"""Associe le niveau et l'UE"""
|
||||||
log(f"set_ue_niveau_competence( {ue_id}, {niveau_id} )")
|
|
||||||
ue = UniteEns.query.get_or_404(ue_id)
|
ue = UniteEns.query.get_or_404(ue_id)
|
||||||
|
|
||||||
autres_ues = ue.formation.ues.filter_by(semestre_idx=ue.semestre_idx)
|
autres_ues = ue.formation.ues.filter_by(semestre_idx=ue.semestre_idx)
|
||||||
@ -96,6 +97,7 @@ def set_ue_niveau_competence(ue_id: int, niveau_id: int):
|
|||||||
)
|
)
|
||||||
return "", 409 # conflict
|
return "", 409 # conflict
|
||||||
if niveau_id == "":
|
if niveau_id == "":
|
||||||
|
niveau = ""
|
||||||
# suppression de l'association
|
# suppression de l'association
|
||||||
ue.niveau_competence = None
|
ue.niveau_competence = None
|
||||||
else:
|
else:
|
||||||
@ -103,4 +105,6 @@ def set_ue_niveau_competence(ue_id: int, niveau_id: int):
|
|||||||
ue.niveau_competence = niveau
|
ue.niveau_competence = niveau
|
||||||
db.session.add(ue)
|
db.session.add(ue)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
log(f"set_ue_niveau_competence( {ue}, {niveau} )")
|
||||||
|
|
||||||
return "", 204
|
return "", 204
|
||||||
|
@ -269,7 +269,7 @@ class ApcNiveau(db.Model, XMLModel):
|
|||||||
ues = db.relationship("UniteEns", back_populates="niveau_competence")
|
ues = db.relationship("UniteEns", back_populates="niveau_competence")
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"""<{self.__class__.__name__} ordre={self.ordre!r} annee={
|
return f"""<{self.__class__.__name__} {self.id} ordre={self.ordre!r} annee={
|
||||||
self.annee!r} {self.competence!r}>"""
|
self.annee!r} {self.competence!r}>"""
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
|
@ -31,6 +31,7 @@ from flask import g, request
|
|||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
|
|
||||||
from app import db
|
from app import db
|
||||||
|
from app.but import apc_edit_ue
|
||||||
from app.models import Formation, UniteEns, Matiere, Module, FormSemestre, ModuleImpl
|
from app.models import Formation, UniteEns, Matiere, Module, FormSemestre, ModuleImpl
|
||||||
from app.models.validations import ScolarFormSemestreValidation
|
from app.models.validations import ScolarFormSemestreValidation
|
||||||
from app.scodoc.sco_codes_parcours import UE_SPORT
|
from app.scodoc.sco_codes_parcours import UE_SPORT
|
||||||
@ -109,6 +110,7 @@ def html_edit_formation_apc(
|
|||||||
icons=icons,
|
icons=icons,
|
||||||
ues_by_sem=ues_by_sem,
|
ues_by_sem=ues_by_sem,
|
||||||
ects_by_sem=ects_by_sem,
|
ects_by_sem=ects_by_sem,
|
||||||
|
form_ue_choix_niveau=apc_edit_ue.form_ue_choix_niveau,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
for semestre_idx in semestre_ids:
|
for semestre_idx in semestre_ids:
|
||||||
|
@ -466,7 +466,7 @@ def ue_edit(ue_id=None, create=False, formation_id=None, default_semestre_idx=No
|
|||||||
+ ue_div
|
+ ue_div
|
||||||
+ html_sco_header.sco_footer()
|
+ html_sco_header.sco_footer()
|
||||||
)
|
)
|
||||||
elif tf[2]:
|
elif tf[0] == 1:
|
||||||
if create:
|
if create:
|
||||||
if not tf[2]["ue_code"]:
|
if not tf[2]["ue_code"]:
|
||||||
del tf[2]["ue_code"]
|
del tf[2]["ue_code"]
|
||||||
@ -684,6 +684,7 @@ def ue_table(formation_id=None, semestre_idx=1, msg=""): # was ue_list
|
|||||||
javascripts=[
|
javascripts=[
|
||||||
"libjs/jinplace-1.2.1.min.js",
|
"libjs/jinplace-1.2.1.min.js",
|
||||||
"js/ue_list.js",
|
"js/ue_list.js",
|
||||||
|
"js/edit_ue.js",
|
||||||
"libjs/jQuery-tagEditor/jquery.tag-editor.min.js",
|
"libjs/jQuery-tagEditor/jquery.tag-editor.min.js",
|
||||||
"libjs/jQuery-tagEditor/jquery.caret.min.js",
|
"libjs/jQuery-tagEditor/jquery.caret.min.js",
|
||||||
"js/module_tag_editor.js",
|
"js/module_tag_editor.js",
|
||||||
|
@ -2210,6 +2210,7 @@ ul.notes_module_list {
|
|||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*Choix niveau dans form edit UE */
|
||||||
div.ue_choix_niveau {
|
div.ue_choix_niveau {
|
||||||
background-color: rgb(191, 242, 255);
|
background-color: rgb(191, 242, 255);
|
||||||
border: 1px solid blue;
|
border: 1px solid blue;
|
||||||
@ -2219,6 +2220,19 @@ div.ue_choix_niveau {
|
|||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Choix niveau dans edition programme (ue_table) */
|
||||||
|
div.formation_list_ues div.ue_choix_niveau {
|
||||||
|
margin-left: 64px;
|
||||||
|
margin-right: 64px;
|
||||||
|
margin-top: 2px;
|
||||||
|
padding: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.formation_list_ues div.ue_choix_niveau b {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
div#ue_list_modules {
|
div#ue_list_modules {
|
||||||
background-color: rgb(251, 225, 165);
|
background-color: rgb(251, 225, 165);
|
||||||
border: 1px solid blue;
|
border: 1px solid blue;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Affiche et met a jour la liste des UE partageant le meme code
|
// Affiche et met a jour la liste des UE partageant le meme code
|
||||||
|
|
||||||
$().ready(function () {
|
$().ready(function () {
|
||||||
|
if (document.querySelector("#tf_ue_id")) {
|
||||||
|
/* fonctions spécifiques pour edition UE */
|
||||||
update_ue_list();
|
update_ue_list();
|
||||||
$("#tf_ue_code").bind("keyup", update_ue_list);
|
$("#tf_ue_code").bind("keyup", update_ue_list);
|
||||||
|
|
||||||
@ -8,6 +10,7 @@ $().ready(function () {
|
|||||||
update_bonus_description();
|
update_bonus_description();
|
||||||
});
|
});
|
||||||
update_bonus_description();
|
update_bonus_description();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function update_bonus_description() {
|
function update_bonus_description() {
|
||||||
@ -33,11 +36,10 @@ function update_ue_list() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_ue_niveau_competence() {
|
function set_ue_niveau_competence(elem) {
|
||||||
let ue_id = document.querySelector("#tf_ue_id").value;
|
let ue_id = elem.dataset.ue_id;
|
||||||
let select = document.querySelector("#form_ue_choix_niveau select");
|
let niveau_id = elem.value;
|
||||||
let niveau_id = select.value;
|
let set_ue_niveau_competence_url = elem.dataset.setter;
|
||||||
let set_ue_niveau_competence_url = select.dataset.setter;
|
|
||||||
$.post(set_ue_niveau_competence_url,
|
$.post(set_ue_niveau_competence_url,
|
||||||
{
|
{
|
||||||
ue_id: ue_id,
|
ue_id: ue_id,
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
<span class="ue_type_{{ue.type}}">
|
<span class="ue_type_{{ue.type}}">
|
||||||
<span class="ue_color_indicator" style="background:{{
|
<span class="ue_color_indicator" style="background:{{
|
||||||
ue.color if ue.color is not none else 'blue'}}"></span>
|
ue.color if ue.color is not none else 'blue'}}"></span>
|
||||||
<b>{{ue.acronyme}}</b> <a class="discretelink" href="{{
|
<b>{{ue.acronyme}} <a class="discretelink" href="{{
|
||||||
url_for('notes.ue_infos', scodoc_dept=g.scodoc_dept, ue_id=ue.id)}}"
|
url_for('notes.ue_infos', scodoc_dept=g.scodoc_dept, ue_id=ue.id)}}"
|
||||||
title="{{ue.acronyme}}: {{
|
title="{{ue.acronyme}}: {{
|
||||||
('pas de compétence associée'
|
('pas de compétence associée'
|
||||||
@ -40,6 +40,7 @@
|
|||||||
else ''
|
else ''
|
||||||
}}"
|
}}"
|
||||||
>{{ue.titre}}</a>
|
>{{ue.titre}}</a>
|
||||||
|
</b>
|
||||||
{% set virg = joiner(", ") %}
|
{% set virg = joiner(", ") %}
|
||||||
<span class="ue_code">(
|
<span class="ue_code">(
|
||||||
{%- if ue.ue_code -%}{{ virg() }}code {{ue.ue_code}} {%- endif -%}
|
{%- if ue.ue_code -%}{{ virg() }}code {{ue.ue_code}} {%- endif -%}
|
||||||
@ -53,9 +54,6 @@
|
|||||||
)
|
)
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
{% if (ue.niveau_competence is none) and ue.type == 0 %}
|
|
||||||
<span class="fontred">pas de compétence associée</span>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if editable and not ue.is_locked() %}
|
{% if editable and not ue.is_locked() %}
|
||||||
<a class="stdlink" href="{{ url_for('notes.ue_edit',
|
<a class="stdlink" href="{{ url_for('notes.ue_edit',
|
||||||
@ -63,6 +61,9 @@
|
|||||||
}}">modifier</a>
|
}}">modifier</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{{ form_ue_choix_niveau(formation, ue)|safe }}
|
||||||
|
|
||||||
|
|
||||||
{% if ue.type == 1 and ue.modules.count() == 0 %}
|
{% if ue.type == 1 and ue.modules.count() == 0 %}
|
||||||
<span class="warning" title="pas de module, donc pas de bonus calculé">aucun module rattaché !</span>
|
<span class="warning" title="pas de module, donc pas de bonus calculé">aucun module rattaché !</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.3.17"
|
SCOVERSION = "9.3.18"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user