Saisie des assiduités {{gr_tit|safe}} {{sem}}
+ {% if readonly == "true" %} +La page est en lecture seule.
+ {% endif %} + - - {{timeline|safe}} - + {% if readonly == "true" %} + + {% else %} + {% endif %} + {{timeline|safe}} + + + + {% if readonly == "false" %} +Veillez à choisir le groupe concerné par la saisie ainsi que la date de la saisie. @@ -75,6 +91,9 @@ const nonWorkDays = [{{ nonworkdays| safe }}]; + const readOnly = {{ readonly }}; + + updateDate(); setupDate(); setupTimeLine(); @@ -89,17 +108,14 @@ const select = document.getElementById("moduleimpl_select"); - if (select.value == "") { - btn.disabled = true; + if (!readOnly && select.value == "") { document.getElementById('forcemodule').style.display = "block"; } - select.addEventListener('change', (e) => { + select?.addEventListener('change', (e) => { if (e.target.value != "") { - btn.disabled = false; document.getElementById('forcemodule').style.display = "none"; } else { - btn.disabled = true; document.getElementById('forcemodule').style.display = "block"; } }); diff --git a/app/templates/assiduites/widgets/minitimeline.j2 b/app/templates/assiduites/widgets/minitimeline.j2 index 244cfbf3e..811fd1937 100644 --- a/app/templates/assiduites/widgets/minitimeline.j2 +++ b/app/templates/assiduites/widgets/minitimeline.j2 @@ -38,15 +38,15 @@ } array.forEach((assiduité) => { - const startDate = moment(assiduité.date_debut); - const endDate = moment(assiduité.date_fin); + let startDate = moment(assiduité.date_debut); + let endDate = moment(assiduité.date_fin); if (startDate.isBefore(dayStart)) { - startDate.startOf("day").add(mt_start, "hours"); + startDate = dayEnd.clone().startOf("day").add(mt_start, "hours"); } if (endDate.isAfter(dayEnd)) { - endDate.startOf("day").add(mt_end, "hours"); + endDate = dayEnd.clone().startOf("day").add(mt_end, "hours"); } const block = document.createElement("div"); @@ -140,7 +140,7 @@ const idDiv = document.createElement("div"); idDiv.className = "assiduite-id"; - idDiv.textContent = `ID: ${assiduite.assiduite_id}`; + idDiv.textContent = `${getModuleImpl(assiduite)}`; bubble.appendChild(idDiv); const periodDivDeb = document.createElement("div"); diff --git a/app/templates/assiduites/widgets/tableau_assi.j2 b/app/templates/assiduites/widgets/tableau_assi.j2 index caf4fda30..0a133eb2d 100644 --- a/app/templates/assiduites/widgets/tableau_assi.j2 +++ b/app/templates/assiduites/widgets/tableau_assi.j2 @@ -63,30 +63,7 @@ try { stats() } catch (_) { } } - const moduleimpls = {} - function getModuleImpl(assiduite) { - const id = assiduite.moduleimpl_id; - - if (id == null || id == undefined) { - if ("desc" in assiduite && assiduite.desc != null && assiduite.desc.indexOf('Module:Autre') != -1) { - return "Autre" - } else { - return "Pas de module" - } - } - - if (id in moduleimpls) { - return moduleimpls[id]; - } - const url_api = getUrl() + `/api/moduleimpl/${id}`; - sync_get(url_api, (data) => { - moduleimpls[id] = `${data.module.code} ${data.module.abbrev}`; - }, (data) => { moduleimpls[id] = "Pas de module" }); - - return moduleimpls[id]; - - } function renderTableAssiduites(page, assiduités) { diff --git a/app/templates/assiduites/widgets/timeline.j2 b/app/templates/assiduites/widgets/timeline.j2 index 4f77c86d1..706c5f504 100644 --- a/app/templates/assiduites/widgets/timeline.j2 +++ b/app/templates/assiduites/widgets/timeline.j2 @@ -234,11 +234,12 @@