{% include "assiduites/widgets/toast.j2" %} <section id="content"> <div class="no-display"> <span class="formsemestre_id">{{formsemestre_id}}</span> <span id="formsemestre_date_debut">{{formsemestre_date_debut}}</span> <span id="formsemestre_date_fin">{{formsemestre_date_fin}}</span> </div> <h2> {% if readonly == "true" %} Assiduité {{gr_tit|safe}} {{sem}} (lecture seule) {% else %} Saisie de l'assiduité {{gr_tit|safe}} {{sem}} {% endif %} </h2> <fieldset class="selectors"> <div class="infos"> <div class="infos-button">Groupes : {{grp|safe}}</div> <div class="infos-button" style="margin-left: 24px;">Date : <span style="margin-left: 8px;" id="datestr"></span> <input type="text" class="datepicker" name="tl_date" id="tl_date" value="{{ date }}" onchange="updateDate()"> </div> </div> </fieldset> {{timeline|safe}} {% if readonly == "false" %} <div style="margin: 1vh 0;"> <div id="forcemodule" style="display: none; margin:10px 0px;"> Vous devez spécifier le module ! (voir réglage préférence du semestre) </div> <div>Module : {{moduleimpl_select|safe}}</div> </div> {% else %} {% endif %} {% if readonly == "true" %} <button id="validate_selectors" onclick="validateSelectors(this)"> Voir l'assiduité </button> {% else %} <button id="validate_selectors" onclick="validateSelectors(this)"> Faire la saisie </button> {% endif %} <div class="etud_holder"> <p class="placeholder"> Veillez à choisir le groupe concerné et la date. Après validation, il faudra recharger la page pour changer ces informations. </p> </div> <div class="legende"> <h3>Explication diverses</h3> <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> {% include "assiduites/widgets/legende_couleur.j2" %} </ul> </div> <!-- Ajout d'un conteneur pour le loader --> <div class="loader-container" id="loaderContainer"> <div class="loader"></div> </div> {% include "assiduites/widgets/alert.j2" %} {% include "assiduites/widgets/prompt.j2" %} {% include "assiduites/widgets/conflict.j2" %} <script> const nonWorkDays = [{{ nonworkdays| safe }}]; const readOnly = {{ readonly }}; setupDate(); updateDate(); setupTimeLine(); window.forceModule = "{{ forcer_module }}" window.forceModule = window.forceModule == "True" ? true : false const etudsDefDem = {{ defdem | safe }} const select = document.getElementById("moduleimpl_select"); select?.addEventListener('change', (e) => { generateAllEtudRow(); }); if (window.forceModule) { const btn = document.getElementById("validate_selectors"); if (!readOnly && select.value == "") { document.getElementById('forcemodule').style.display = "block"; } select?.addEventListener('change', (e) => { if (e.target.value != "") { document.getElementById('forcemodule').style.display = "none"; } else { document.getElementById('forcemodule').style.display = "block"; } }); } </script> </section>