2023-04-17 15:44:55 +02:00
|
|
|
{# -*- mode: jinja-html -*- #}
|
2023-06-20 08:33:49 +02:00
|
|
|
{% include "assiduites/widgets/toast.j2" %}
|
|
|
|
{% include "assiduites/widgets/alert.j2" %}
|
|
|
|
{% include "assiduites/widgets/prompt.j2" %}
|
|
|
|
{% include "assiduites/widgets/conflict.j2" %}
|
2023-04-17 15:44:55 +02:00
|
|
|
<div id="page-assiduite-content">
|
|
|
|
{% block content %}
|
|
|
|
<h2>Signalement de l'assiduité de <span class="rouge">{{sco.etud.nomprenom}}</span></h2>
|
|
|
|
|
|
|
|
<div class="infos">
|
|
|
|
Date: <span id="datestr"></span>
|
2023-05-30 11:47:59 +02:00
|
|
|
<input type="date" name="tl_date" id="tl_date" value="{{ date }}">
|
2023-04-17 15:44:55 +02:00
|
|
|
</div>
|
|
|
|
|
2023-05-17 20:18:02 +02:00
|
|
|
{{timeline|safe}}
|
2023-04-17 15:44:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
<div>
|
2023-06-12 17:54:30 +02:00
|
|
|
{{moduleimpl_select | safe }}
|
2023-04-19 20:58:15 +02:00
|
|
|
<button class="btn" onclick="fastJustify(getCurrentAssiduite(etudid))" id="justif-rapide">Justifier</button>
|
2023-04-17 15:44:55 +02:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="btn_group">
|
2023-04-25 22:59:06 +02:00
|
|
|
<button class="btn" onclick="setTimeLineTimes({{morning}},{{afternoon}})">Journée</button>
|
|
|
|
<button class="btn" onclick="setTimeLineTimes({{morning}},{{lunch}})">Matin</button>
|
|
|
|
<button class="btn" onclick="setTimeLineTimes({{lunch}},{{afternoon}})">Après-midi</button>
|
2023-04-17 15:44:55 +02:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="etud_holder">
|
|
|
|
<div id="etud_row_{{sco.etud.id}}">
|
|
|
|
<div class="index"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-06-12 17:54:30 +02:00
|
|
|
<hr>
|
|
|
|
{{diff | safe}}
|
|
|
|
|
|
|
|
<div class="legende">
|
2023-06-30 14:38:56 +02:00
|
|
|
<h3>Explication de la timeline</h3>
|
2023-06-12 17:54:30 +02:00
|
|
|
<p>
|
|
|
|
Si la période indiquée par la timeline provoque un conflit d'assiduité pour un étudiant sa ligne deviendra
|
|
|
|
rouge.
|
|
|
|
<br>
|
|
|
|
Dans ce cas il faut résoudre manuellement le conflit : cliquez sur un des boutons d'assiduités pour ouvrir
|
|
|
|
le
|
|
|
|
résolveur de conflit.
|
|
|
|
<br>
|
|
|
|
Correspondance des couleurs :
|
|
|
|
</p>
|
|
|
|
<ul>
|
2023-07-25 19:59:47 +02:00
|
|
|
<li><span title="Vert" class="present demo"></span> → présence de l'étudiant lors de la période
|
|
|
|
</li>
|
|
|
|
<li><span title="Orange" class="retard demo"></span> → retard de l'étudiant lors de la période
|
|
|
|
</li>
|
|
|
|
<li><span title="Rouge" class="absent demo"></span> → absence de l'étudiant lors de la période
|
|
|
|
</li>
|
|
|
|
<li><span title="Hachure Bleue" class="justified demo"></span> → l'assiduité est justifiée par un
|
|
|
|
justificatif valide</li>
|
|
|
|
<li><span title="Hachure Rouge" class="invalid_justified demo"></span> → l'assiduité est
|
|
|
|
justifiée par un justificatif non valide / en attente de validation
|
2023-06-12 17:54:30 +02:00
|
|
|
</li>
|
|
|
|
</ul>
|
2023-06-30 14:38:56 +02:00
|
|
|
<p>Vous pouvez justifier rapidement une assiduité en saisisant l'assiduité puis en appuyant sur "Justifier"</p>
|
|
|
|
|
|
|
|
<h3>Explication de la saisie différée</h3>
|
|
|
|
<p>Si la colonne n'est pas valide elle sera affichée en rouge, passez votre curseur sur la colonne pour afficher
|
|
|
|
le message d'erreur</p>
|
|
|
|
<p>Sélectionner la date de début de la colonne mettra automatiquement la date de fin à la durée d'une séance
|
|
|
|
(préférence de département)</p>
|
|
|
|
<p>Modifier le moduleimpl alors que des assiduités sont déjà enregistrées pour la période changera leur
|
|
|
|
moduleimpl.</p>
|
|
|
|
<p>Il y a 4 boutons d'assiduités sur la colonne permettant de mettre l'assiduités à tous les étudiants</p>
|
|
|
|
<p>Le dernier des boutons retire l'assiduité.</p>
|
|
|
|
<p>Vous pouvez ajouter des colonnes en appuyant sur le bouton + </p>
|
|
|
|
<p>Vous pouvez supprimer une colonne en appuyant sur la croix qui se situe dans le coin haut droit de la colonne
|
|
|
|
</p>
|
2023-06-12 17:54:30 +02:00
|
|
|
</div>
|
2023-04-17 15:44:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
<!-- Ajout d'un conteneur pour le loader -->
|
|
|
|
<div class="loader-container" id="loaderContainer">
|
|
|
|
<div class="loader"></div>
|
|
|
|
</div>
|
|
|
|
|
2023-04-19 20:58:15 +02:00
|
|
|
|
2023-04-17 15:44:55 +02:00
|
|
|
|
|
|
|
<script>
|
|
|
|
const etudid = {{ sco.etud.id }};
|
2023-05-30 11:47:59 +02:00
|
|
|
const nonWorkDays = [{{ nonworkdays| safe }}];
|
|
|
|
|
2023-04-17 15:44:55 +02:00
|
|
|
setupDate(() => {
|
2023-05-30 11:47:59 +02:00
|
|
|
if (updateDate()) {
|
|
|
|
actualizeEtud(etudid);
|
2023-06-13 16:25:45 +02:00
|
|
|
updateSelect();
|
|
|
|
onlyAbs();
|
2023-05-30 11:47:59 +02:00
|
|
|
}
|
2023-04-17 15:44:55 +02:00
|
|
|
});
|
|
|
|
|
2023-05-30 11:47:59 +02:00
|
|
|
|
2023-04-19 20:58:15 +02:00
|
|
|
setupTimeLine(() => {
|
|
|
|
updateJustifyBtn();
|
|
|
|
});
|
|
|
|
|
2023-04-17 15:44:55 +02:00
|
|
|
updateDate();
|
|
|
|
|
|
|
|
getSingleEtud({{ sco.etud.id }});
|
|
|
|
actualizeEtud({{ sco.etud.id }});
|
|
|
|
updateSelect()
|
|
|
|
|
2023-04-19 20:58:15 +02:00
|
|
|
updateJustifyBtn();
|
2023-04-17 15:44:55 +02:00
|
|
|
|
|
|
|
|
2023-04-19 20:58:15 +02:00
|
|
|
function setTimeLineTimes(a, b) {
|
|
|
|
setPeriodValues(a, b);
|
|
|
|
updateJustifyBtn();
|
|
|
|
|
2023-04-17 15:44:55 +02:00
|
|
|
}
|
|
|
|
|
2023-06-12 17:54:30 +02:00
|
|
|
window.forceModule = "{{ forcer_module }}"
|
|
|
|
window.forceModule = window.forceModule == "True" ? true : false
|
|
|
|
|
2023-04-19 20:58:15 +02:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
2023-04-17 15:44:55 +02:00
|
|
|
.justifie {
|
|
|
|
background-color: rgb(104, 104, 252);
|
|
|
|
color: whitesmoke;
|
|
|
|
}
|
2023-06-12 17:54:30 +02:00
|
|
|
|
|
|
|
fieldset {
|
|
|
|
outline: none;
|
|
|
|
border: none;
|
|
|
|
}
|
2023-04-17 15:44:55 +02:00
|
|
|
</style>
|
|
|
|
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
</div>
|