ScoDoc/app/templates/pn/form_modules_ue_coefs.j2

141 lines
5.1 KiB
Plaintext
Raw Permalink Normal View History

2021-12-28 16:17:07 +01:00
{# -*- mode: jinja-html -*- #}
2024-08-24 08:06:46 +02:00
{% extends "sco_page_dept.j2" %}
{% block styles %}
{{super()}}
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/css/table_editor.css">
{% endblock %}
{% block app_content %}
<h2>Formation {{formation.titre}} ({{formation.acronyme}})
[version {{formation.version}}] code {{formation.formation_code}}
{% if read_only %}
{{scu.icontag("lock32_img", title="verrouillé")|safe}}
{% endif %}
</h2>
{% if read_only %}
<span class="warning">
Formation verrouilée car un ou plusieurs semestres verrouillés l'utilisent.
</span>
{% endif %}
2022-03-15 23:09:41 +01:00
<h2>{% if not read_only %}Édition des c{% else %}C{%endif%}oefficients des modules vers les UEs</h2>
2021-11-18 22:46:18 +01:00
<div class="help">
{% if not read_only %}
<p>Double-cliquer pour changer une valeur.
Les valeurs sont automatiquement enregistrées au fur et à mesure.
</p>
{% endif %}
<p>Chaque ligne représente une ressource ou SAÉ, et chaque colonne une Unité d'Enseignement (UE).
</p>
2021-11-18 22:46:18 +01:00
</div>
<form class="semestre_selector">
2021-11-18 11:29:38 +01:00
<input type="hidden" name="formation_id" value="{{formation.id}}"></input>
<div>
<div>Semestre:
<select onchange="this.form.submit()" name="semestre_idx" id="semestre_idx">
{% for i in semestre_ids %}
<option value="{{i}}" {%if semestre_idx==i%}selected{%endif%}>{{i}}</option>
{% endfor %}
<option value="" {%if semestre_idx is none%}selected{%endif%}>Tous</option>
</select>
</div>
{% if formation.referentiel_competence %}
<div>Parcours:
<select onchange="this.form.submit()" name="parcours_id" id="semestre_idx">
<option value="" {%if parcours_id is none%}selected{%endif%}>Tous</option>
{% for parcour in formation.referentiel_competence.parcours %}
<option value="{{parcour.id}}" {%if parcours_id==parcour.id%}selected{%endif%}> {{parcour.libelle}}
({{parcour.code}})
</option>
{% endfor %}
</select>
</div>
{% endif %}
<div>
<a class="stdlink" href="{{
url_for('notes.ue_table', scodoc_dept=g.scodoc_dept,
2021-11-18 00:24:56 +01:00
formation_id=formation.id, semestre_idx=semestre_idx)
}}">revenir à la formation</a>
</div>
</div>
2021-11-18 00:24:56 +01:00
</form>
2021-11-17 10:28:51 +01:00
2021-11-18 00:24:56 +01:00
<div class="tableau"></div>
2022-10-31 11:44:22 +01:00
<h4>Explications</h4>
<div class="help">
<p>Ces coefficients permettent de calculer les moyennes d'Unités d'Enseignement (UE)
à partir des notes des ressources et SAÉs. Chaque ligne correspond à un
module (ressource ou SAÉ), et chaque colonne à une UE.</p>
<p>Si la formation est associée à un référentiel de compétences, on peut
restreindre l'affichage aux UE et modules de l'un des parcours à l'aide du
menu "Parcours" au dessus du tableau. Les UEs et modules de tronc commun
apparaissent toujours. </p>
<p>Les cases grisées à droite et en bas donnent la somme indicative des coefficients.</p>
2022-10-31 11:44:22 +01:00
</div>
<div class="tableau_legende">
<div class="champs_coef_hors_parcours champs_legende"></div>
<div class="help">module non associé au parcours de cette UE, le coef devrait être nul.</div>
</div>
2024-08-24 08:06:46 +02:00
{% endblock %}
2022-10-31 11:44:22 +01:00
2024-08-24 08:06:46 +02:00
{% block scripts %}
{{super()}}
<script src="{{scu.STATIC_DIR}}/js/table_editor.js"></script>
2021-11-18 00:24:56 +01:00
<script>
var read_only = {{ "true" if read_only else "false"}};
2021-11-18 00:24:56 +01:00
$(function () {
2021-11-18 22:46:18 +01:00
let data_url = "{{data_source}}";
$.getJSON(data_url, function (data) {
build_table(data);
});
2021-11-18 00:24:56 +01:00
});
function save(obj) {
var value = obj.innerText.trim();
if (value.length == 0) {
value = "0";
}
if (!/^[\d.,]+$/.test(value)) {
message("Il est attendu un nombre");
return false;
}
if (value == obj.dataset.data) {
return true; // Aucune modification, pas d'enregistrement mais on continue normalement
}
obj.dataset.data = value;
obj.classList.add("wait");
// XXX DEBUG
// console.log(`
// x : ${getComputedStyle(obj).getPropertyValue("--x")}
// y : ${getComputedStyle(obj).getPropertyValue("--y")}
// data : ${value}
// ue_id: ${obj.dataset.ue_id}
// module_id : ${obj.dataset.module_id}
// `);
$.post("{{data_save}}",
{
module_id: obj.dataset.module_id,
ue_id: obj.dataset.ue_id,
coef: value
},
function (result) {
obj.classList.remove("wait");
if (obj.dataset.orig != value)
obj.classList.add("modified");
else
obj.classList.remove("modified");
// Lorsque les données sont bien enregistrées, on enlève
2021-11-18 00:24:56 +01:00
// l'indication que c'est bon au bout d'un temps
//setTimeout(() => {
// obj.classList.remove("modified");
//}, 1000);
}
);
return true;
}
</script>
2024-08-24 08:06:46 +02:00
{% endblock %}