forked from ScoDoc/ScoDoc
186 lines
5.6 KiB
Django/Jinja
186 lines
5.6 KiB
Django/Jinja
{% extends "sco_page.j2" %}
|
|
|
|
{% block title %}
|
|
{{title}}
|
|
{% endblock title %}
|
|
|
|
|
|
{% block scripts %}
|
|
{{ super() }}
|
|
<script src="{{scu.STATIC_DIR}}/libjs/bootstrap-multiselect-1.1.2/bootstrap-multiselect.min.js"></script>
|
|
<script src="{{scu.STATIC_DIR}}/libjs/purl.js"></script>
|
|
<script src="{{scu.STATIC_DIR}}/js/etud_info.js"></script>
|
|
<script src="{{scu.STATIC_DIR}}/js/groups_view.js"></script>
|
|
<script src="{{scu.STATIC_DIR}}/js/date_utils.js"></script>
|
|
<script src="{{scu.STATIC_DIR}}/js/assiduites.js"></script>
|
|
{% include "sco_timepicker.j2" %}
|
|
|
|
<script>
|
|
|
|
{% if readonly != "false" %}
|
|
function getPeriodValues() {
|
|
return [0, 23]
|
|
}
|
|
{% else %}
|
|
setupTimeLine(()=>{creerTousLesEtudiants(etuds)})
|
|
{% endif %}
|
|
|
|
|
|
|
|
const nonWorkDays = [{{ nonworkdays| safe }}];
|
|
const readOnly = {{ readonly }};
|
|
|
|
window.forceModule = "{{ forcer_module }}" == "True"
|
|
|
|
const etudsDefDem = {{ defdem | safe }}
|
|
|
|
const select = document.getElementById("moduleimpl_select");
|
|
|
|
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";
|
|
}
|
|
});
|
|
}
|
|
|
|
document.getElementById("pdp").addEventListener("change", (e) => {
|
|
creerTousLesEtudiants(etuds);
|
|
});
|
|
|
|
$('#date').on('change', async function(d) {
|
|
// On vérifie si la date est un jour travaillé
|
|
dateCouranteEstTravaillee();
|
|
|
|
|
|
|
|
await recupAssiduites(etuds, $("#date").datepicker("getDate"));
|
|
creerTousLesEtudiants(etuds);
|
|
});
|
|
|
|
$("#moduleimpl_select").on("change", ()=>{
|
|
creerTousLesEtudiants(etuds);
|
|
});
|
|
|
|
$("#group_ids_sel").on("change", ()=>{
|
|
main();
|
|
})
|
|
|
|
const moduleimpls = {};
|
|
const inscriptionsModules = new Map();
|
|
let etuds = new Map();
|
|
|
|
async function main(){
|
|
dateCouranteEstTravaillee();
|
|
etuds = await recupEtuds($('#group_ids_sel').val());
|
|
if (etuds.size != 0){
|
|
await recupAssiduites(etuds, $("#date").datepicker("getDate"));
|
|
}
|
|
creerTousLesEtudiants(etuds);
|
|
|
|
}
|
|
|
|
setTimeout(main, 0);
|
|
|
|
|
|
</script>
|
|
{% endblock scripts %}
|
|
|
|
{% block styles %}
|
|
{{ super() }}
|
|
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/libjs/bootstrap/css/bootstrap-theme.min.css">
|
|
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/libjs/bootstrap-multiselect-1.1.2/bootstrap-multiselect.min.css">
|
|
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/css/assiduites.css">
|
|
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/css/minitimeline.css">
|
|
{% endblock styles %}
|
|
|
|
|
|
{% block app_content %}
|
|
|
|
{{ minitimeline|safe }}
|
|
<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>
|
|
<input type="text" name="date" id="date" class="datepicker" value="{{date}}">
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div style="display: {{'none' if readonly == 'true' else 'block'}};">
|
|
{{timeline|safe}}
|
|
</div>
|
|
|
|
{% 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 %}
|
|
|
|
<div>
|
|
<label for="pdp">
|
|
<span>Afficher les photos</span>
|
|
<input type="checkbox" name="pdp" id="pdp">
|
|
</label>
|
|
</div>
|
|
{% if readonly == "false" %}
|
|
<div class="mass-selection">
|
|
<span>Mettre tout le monde :</span>
|
|
<fieldset class="btns_field mass">
|
|
<input type="checkbox" value="present" name="mass_btn_assiduites" id="mass_rbtn_present"
|
|
class="rbtn present" onclick="mettreToutLeMonde('present', this)" title="Present">
|
|
<input type="checkbox" value="retard" name="mass_btn_assiduites" id="mass_rbtn_retard"
|
|
class="rbtn retard" onclick="mettreToutLeMonde('retard', this)" title="Retard">
|
|
<input type="checkbox" value="absent" name="mass_btn_assiduites" id="mass_rbtn_absent"
|
|
class="rbtn absent" onclick="mettreToutLeMonde('absent', this)" title="Absent">
|
|
<input type="checkbox" value="remove" name="mass_btn_assiduites" id="mass_rbtn_aucun"
|
|
class="rbtn aucun" onclick="mettreToutLeMonde('vide', this)" title="Supprimer">
|
|
</fieldset>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
<div class="etud_holder">
|
|
<p class="placeholder">
|
|
</p>
|
|
</div>
|
|
|
|
{% include "assiduites/widgets/toast.j2" %}
|
|
{% include "assiduites/widgets/alert.j2" %}
|
|
{% include "assiduites/widgets/prompt.j2" %}
|
|
{% include "assiduites/widgets/conflict.j2" %}
|
|
|
|
|
|
</section>
|
|
|
|
{% endblock app_content %}
|