diff --git a/app/but/jury_but_recap.py b/app/but/jury_but_recap.py index d735018fa4271d630b43a4e833dd1acce944c0fd..1eca11cfb88b7702f99eda9d53abbbee6be2272e 100644 --- a/app/but/jury_but_recap.py +++ b/app/but/jury_but_recap.py @@ -333,7 +333,10 @@ class RowCollector: + ((" " + scu.EMO_WARNING) if deca.nb_rcues_under_8 > 0 else ""), "col_rcue col_rcues_validables" + klass, ) - self["_rcues_validables_data"] = {"etudid": deca.etud.id} + self["_rcues_validables_data"] = { + "etudid": deca.etud.id, + "nomprenom": deca.etud.nomprenom, + } if len(deca.rcues_annee) > 0: # permet un tri par nb de niveaux validables + moyenne gen indicative S_pair if deca.res_pair and deca.etud.id in deca.res_pair.etud_moy_gen: diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py index 150c8cfe71c3429c961f5e954c9990b620090ae9..88dca7fde8d0e7f18fded68bc7c33cb152d53f5a 100644 --- a/app/scodoc/sco_utils.py +++ b/app/scodoc/sco_utils.py @@ -968,6 +968,8 @@ ICON_XLS = icontag("xlsicon_img", title="Version tableur") # HTML emojis EMO_WARNING = "⚠️" # warning /!\ EMO_RED_TRIANGLE_DOWN = "🔻" # red triangle pointed down +EMO_PREV_ARROW = "❮" +EMO_NEXT_ARROW = "❯" def sort_dates(L, reverse=False): diff --git a/app/static/js/jury_but.js b/app/static/js/jury_but.js index e67362cb233b7e36ba2814dcdad5acdd6aea4a28..1ef24c168f53e9e510996d0b361ba9ead54ead40 100644 --- a/app/static/js/jury_but.js +++ b/app/static/js/jury_but.js @@ -11,4 +11,52 @@ function change_menu_code(elt) { // TODO: comparer avec valeur enregistrée (à mettre en data-orig ?) // et colorer en fonction elt.parentElement.parentElement.classList.add("modified"); -} \ No newline at end of file +} + +$(function () { + // Recupère la liste ordonnées des etudids + // pour avoir le "suivant" etr le "précédent" + // (liens de navigation) + const url = new URL(document.URL); + const frags = url.pathname.split("/"); // .../formsemestre_validation_but/formsemestre_id/etudid + const etudid = frags[frags.length - 1]; + const formsemestre_id = frags[frags.length - 2]; + const etudids_key = JSON.stringify(["etudids", url.origin, formsemestre_id]); + const etudids_str = localStorage.getItem(etudids_key); + const noms_key = JSON.stringify(["noms", url.origin, formsemestre_id]); + const noms_str = localStorage.getItem(noms_key); + if (etudids_str && noms_str) { + const etudids = JSON.parse(etudids_str); + const noms = JSON.parse(noms_str); + const cur_idx = etudids.indexOf(etudid); + let prev_idx = -1; + let next_idx = -1 + if (cur_idx != -1) { + if (cur_idx > 0) { + prev_idx = cur_idx - 1; + } + if (cur_idx < etudids.length - 1) { + next_idx = cur_idx + 1; + } + } + if (prev_idx != -1) { + let elem = document.querySelector("div.prev a"); + if (elem) { + elem.href = elem.href.replace("PREV", etudids[prev_idx]); + elem.innerHTML = noms[prev_idx]; + } + } else { + document.querySelector("div.prev").innerHTML = ""; + } + if (next_idx != -1) { + let elem = document.querySelector("div.next a"); + if (elem) { + elem.href = elem.href.replace("NEXT", etudids[next_idx]); + elem.innerHTML = noms[next_idx]; + } + } else { + document.querySelector("div.next").innerHTML = ""; + } + + } +}); \ No newline at end of file diff --git a/app/static/js/table_recap.js b/app/static/js/table_recap.js index 805153fdabdf90cc274d089313fb3fefecc96f88..b9c86d5f84117ceb8d9ccae1b8a3d24d855638a9 100644 --- a/app/static/js/table_recap.js +++ b/app/static/js/table_recap.js @@ -192,6 +192,18 @@ $(function () { if (formsemestre_id) { localStorage.setItem(order_info_key, order_info); } + let etudids = []; + document.querySelectorAll("td.col_rcues_validables").forEach(e => { + etudids.push(e.dataset.etudid); + }); + let noms = []; + document.querySelectorAll("td.col_rcues_validables").forEach(e => { + noms.push(e.dataset.nomprenom); + }); + const etudids_key = JSON.stringify(["etudids", url.origin, formsemestre_id]); + localStorage.setItem(etudids_key, JSON.stringify(etudids)); + const noms_key = JSON.stringify(["noms", url.origin, formsemestre_id]); + localStorage.setItem(noms_key, JSON.stringify(noms)); }, "order": order_info, } diff --git a/app/views/notes.py b/app/views/notes.py index 5270ffd22729789e2c3eb8943d0bc8b3cb921ac5..883a7c7be1913e2c88ee4fad3756c6e11da61b66 100644 --- a/app/views/notes.py +++ b/app/views/notes.py @@ -2332,15 +2332,15 @@ def formsemestre_validation_but( """ ) # --- Navigation - prev = f"""<a href="{url_for( + prev = f"""{scu.EMO_PREV_ARROW} <a href="{url_for( "notes.formsemestre_validation_but", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, etudid="PREV" - )} class="stdlink"">précédent</a> + )}" class="stdlink"">précédent</a> """ next = f"""<a href="{url_for( "notes.formsemestre_validation_but", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, etudid="NEXT" - )} class="stdlink"">suivant</a> + )}" class="stdlink"">suivant</a> {scu.EMO_NEXT_ARROW} """ H.append( f""" diff --git a/sco_version.py b/sco_version.py index 474261ea9148b91ddb5e50ed29588e5d0bef3ff2..58fc4f03afeafe4296eb5363fc9ff988acf5087d 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.3.6" +SCOVERSION = "9.3.7" SCONAME = "ScoDoc"