forked from ScoDoc/ScoDoc
Assiduités : issue 712 WIP
This commit is contained in:
parent
b27cf5198f
commit
673179c8f7
@ -311,7 +311,7 @@ def filter_by_date(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def filter_justificatifs_by_etat(justificatifs: Justificatif, etat: str) -> Query:
|
def filter_justificatifs_by_etat(justificatifs: Query, etat: str) -> Query:
|
||||||
"""
|
"""
|
||||||
Filtrage d'une collection de justificatifs en fonction de leur état
|
Filtrage d'une collection de justificatifs en fonction de leur état
|
||||||
"""
|
"""
|
||||||
|
@ -136,6 +136,8 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
margin: 0 5%;
|
margin: 0 5%;
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.etud_row.def .nom::after,
|
.etud_row.def .nom::after,
|
||||||
|
@ -1065,9 +1065,17 @@ function actualizeEtudAssiduite(etudid) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAllAssiduitesFromEtud(etudid, action, order = false) {
|
function getAllAssiduitesFromEtud(
|
||||||
|
etudid,
|
||||||
|
action,
|
||||||
|
order = false,
|
||||||
|
justifs = false
|
||||||
|
) {
|
||||||
const url_api =
|
const url_api =
|
||||||
getUrl() + `/api/assiduites/${etudid}${order ? "/query?order" : ""}`;
|
getUrl() +
|
||||||
|
`/api/assiduites/${etudid}${
|
||||||
|
order ? "/query?order%".replace("%", justifs ? "&with_justifs" : "") : ""
|
||||||
|
}`;
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
async: true,
|
async: true,
|
||||||
@ -1241,12 +1249,10 @@ function generateEtudRow(
|
|||||||
|
|
||||||
<img class="pdp" src="${pdp_url}">
|
<img class="pdp" src="${pdp_url}">
|
||||||
|
|
||||||
<div class="name_set">
|
<a class="name_set" href="BilanEtud?etudid=${etud.id}">
|
||||||
|
|
||||||
<h4 class="nom">${etud.nom}</h4>
|
<h4 class="nom">${etud.nom}</h4>
|
||||||
<h5 class="prenom">${etud.prenom}</h5>
|
<h5 class="prenom">${etud.prenom}</h5>
|
||||||
|
</a>
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="assiduites_bar">
|
<div class="assiduites_bar">
|
||||||
@ -1567,8 +1573,10 @@ function fastJustify(assiduite) {
|
|||||||
|
|
||||||
createJustificatif(justif);
|
createJustificatif(justif);
|
||||||
|
|
||||||
// justifyAssiduite(assiduite.assiduite_id, true);
|
|
||||||
generateAllEtudRow();
|
generateAllEtudRow();
|
||||||
|
try {
|
||||||
|
loadAll();
|
||||||
|
} catch {}
|
||||||
};
|
};
|
||||||
|
|
||||||
const content = document.createElement("fieldset");
|
const content = document.createElement("fieldset");
|
||||||
|
@ -354,5 +354,7 @@
|
|||||||
setterAnnee(defAnnee)
|
setterAnnee(defAnnee)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function isCalendrier() { return true }
|
||||||
</script>
|
</script>
|
||||||
{% endblock pageContent %}
|
{% endblock pageContent %}
|
@ -48,8 +48,40 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
const etudid = {{ sco.etud.id }}
|
const etudid = {{ sco.etud.id }}
|
||||||
|
|
||||||
|
const assiduite_unique_id = {{ assi_id }};
|
||||||
|
|
||||||
|
function wayForFilter() {
|
||||||
|
if (typeof assiduites[etudid] !== "undefined") {
|
||||||
|
console.log("Done")
|
||||||
|
let assiduite = assiduites[etudid].filter((a) => { return a.assiduite_id == assiduite_unique_id });
|
||||||
|
|
||||||
|
if (assiduite) {
|
||||||
|
assiduite = assiduite[0]
|
||||||
|
filterAssiduites["filters"] = {
|
||||||
|
"obj_id": [
|
||||||
|
assiduite.assiduite_id,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
const obj_ids = assiduite.justificatifs ? assiduite.justificatifs.map((j) => { return j.justif_id }) : []
|
||||||
|
filterJustificatifs["filters"] = {
|
||||||
|
"obj_id": obj_ids
|
||||||
|
}
|
||||||
|
|
||||||
|
loadAll();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setTimeout(wayForFilter, 250)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window.onload = () => {
|
window.onload = () => {
|
||||||
loadAll();
|
loadAll();
|
||||||
|
|
||||||
|
if (assiduite_unique_id != -1) {
|
||||||
|
wayForFilter()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
@ -71,6 +71,11 @@
|
|||||||
updateSelectedSelect(getCurrentAssiduiteModuleImplId());
|
updateSelectedSelect(getCurrentAssiduiteModuleImplId());
|
||||||
updateJustifyBtn();
|
updateJustifyBtn();
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
if (isCalendrier()) {
|
||||||
|
window.location = `ListeAssiduitesEtud?etudid=${etudid}&assiduite_id=${assiduité.assiduite_id}`
|
||||||
|
}
|
||||||
|
} catch { }
|
||||||
});
|
});
|
||||||
//ajouter affichage assiduites on over
|
//ajouter affichage assiduites on over
|
||||||
setupAssiduiteBuble(block, assiduité);
|
setupAssiduiteBuble(block, assiduité);
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
document.addEventListener("click", () => {
|
document.addEventListener("click", () => {
|
||||||
contextMenu.style.display = "none";
|
contextMenu.style.display = "none";
|
||||||
|
if (contextMenu.childElementCount > 3) {
|
||||||
|
contextMenu.removeChild(contextMenu.lastElementChild)
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
editOption.addEventListener("click", () => {
|
editOption.addEventListener("click", () => {
|
||||||
@ -94,6 +97,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (k == "obj_id") {
|
||||||
|
const obj_id = el.assiduite_id || el.justif_id;
|
||||||
|
return f.obj_id.includes(obj_id)
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -234,8 +242,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function loadAll() {
|
function loadAll() {
|
||||||
try { getAllAssiduitesFromEtud(etudid, assiduiteCallBack, true) } catch (_) { }
|
try { getAllAssiduitesFromEtud(etudid, assiduiteCallBack, true, true) } catch (_) { }
|
||||||
try { getAllJustificatifsFromEtud(etudid, justificatifCallBack, true) } catch (_) { }
|
try { getAllJustificatifsFromEtud(etudid, justificatifCallBack, true, true) } catch (_) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
function order(keyword, callback = () => { }, el, assi = true) {
|
function order(keyword, callback = () => { }, el, assi = true) {
|
||||||
@ -645,6 +653,27 @@
|
|||||||
contextMenu.style.top = `${e.clientY - contextMenu.offsetHeight}px`;
|
contextMenu.style.top = `${e.clientY - contextMenu.offsetHeight}px`;
|
||||||
contextMenu.style.left = `${e.clientX}px`;
|
contextMenu.style.left = `${e.clientX}px`;
|
||||||
contextMenu.style.display = "block";
|
contextMenu.style.display = "block";
|
||||||
|
if (contextMenu.childElementCount > 3) {
|
||||||
|
contextMenu.removeChild(contextMenu.lastElementChild)
|
||||||
|
}
|
||||||
|
if (selectedRow.getAttribute('type') == "assiduite") {
|
||||||
|
|
||||||
|
const li = document.createElement('li')
|
||||||
|
li.textContent = "Justifier"
|
||||||
|
|
||||||
|
li.addEventListener('click', () => {
|
||||||
|
let obj_id = selectedRow.getAttribute('obj_id');
|
||||||
|
assiduite = Object.values(assiduites).flat().filter((a) => { return a.assiduite_id == obj_id })
|
||||||
|
console.log(assiduite[0])
|
||||||
|
if (assiduite && !assiduite[0].est_just && assiduite[0].etat != "PRESENT") {
|
||||||
|
fastJustify(assiduite[0])
|
||||||
|
} else {
|
||||||
|
openAlertModal("Erreur", document.createTextNode("L'assiduité est déjà justifiée ou ne peut pas l'être."))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
contextMenu.appendChild(li)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -299,6 +299,8 @@ def liste_assiduites_etud():
|
|||||||
if etud.dept_id != g.scodoc_dept_id:
|
if etud.dept_id != g.scodoc_dept_id:
|
||||||
abort(404, "étudiant inexistant dans ce département")
|
abort(404, "étudiant inexistant dans ce département")
|
||||||
|
|
||||||
|
assiduite_id: int = request.args.get("assiduite_id", -1)
|
||||||
|
|
||||||
header: str = html_sco_header.sco_header(
|
header: str = html_sco_header.sco_header(
|
||||||
page_title="Liste des assiduités",
|
page_title="Liste des assiduités",
|
||||||
init_qtip=True,
|
init_qtip=True,
|
||||||
@ -319,6 +321,7 @@ def liste_assiduites_etud():
|
|||||||
"assiduites/pages/liste_assiduites.j2",
|
"assiduites/pages/liste_assiduites.j2",
|
||||||
sco=ScoData(etud),
|
sco=ScoData(etud),
|
||||||
date=datetime.date.today().isoformat(),
|
date=datetime.date.today().isoformat(),
|
||||||
|
assi_id=assiduite_id,
|
||||||
),
|
),
|
||||||
).build()
|
).build()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user