essai de masque colonne par javascript

This commit is contained in:
Jean-Marie Place 2021-10-22 09:00:29 +02:00
parent c49aecaa2f
commit 24a4652543
1 changed files with 65 additions and 27 deletions

View File

@ -136,13 +136,15 @@ def formsemestre_recapcomplet(
)
if not parcours.UE_IS_MODULE:
H.append(
"""<input type="checkbox" name="hidemodules" value="1" onchange="document.f.submit()" """
# """<input type="checkbox" name="hidemodules" value="1" onchange="document.f.submit()" """
"""<input type="checkbox" name="hidebac" value="1" onchange="toggle_modules(! $(this).is(':checked'))" """
)
if hidemodules:
H.append("checked")
H.append(""" >cacher les modules</input>""")
H.append(
"""<input type="checkbox" name="hidebac" value="1" onchange="document.f.submit()" """
# """<input type="checkbox" name="hidebac" value="1" onchange="document.f.submit()" """
"""<input type="checkbox" name="hidebac" value="1" onchange="toggle_bac(! $(this).is(':checked'))" """
)
if hidebac:
H.append("checked")
@ -259,6 +261,8 @@ def make_formsemestre_recapcomplet(
trié par moyenne générale décroissante.
"""
civ_nom_prenom = False # 3 colonnes différentes ou une seule avec prénom abrégé ?
col_idx_modules = [] # liste des indices des colonnes modules (pour javascript)
col_idx_bac = [] # liste des indices de colonne pour le bac
if format == "xml":
return _formsemestre_recapcomplet_xml(
formsemestre_id,
@ -347,6 +351,7 @@ def make_formsemestre_recapcomplet(
# mais laisse col. vide si modules affichés (pour séparer les UE)
if not hidemodules:
h.append("")
col_idx_modules.append(str(len(h)))
pass
if not hidemodules and not ue["is_external"]:
@ -354,6 +359,7 @@ def make_formsemestre_recapcomplet(
if modimpl["module"]["ue_id"] == ue["ue_id"]:
code = modimpl["module"]["code"]
h.append(code)
col_idx_modules.append(str(len(h)))
cod2mod[code] = modimpl # pour fabriquer le lien
if format == "xlsall":
evals = nt.get_mod_evaluation_etat_list(
@ -362,6 +368,9 @@ def make_formsemestre_recapcomplet(
mod_evals[modimpl["moduleimpl_id"]] = evals
h += _list_notes_evals_titles(code, evals)
col_idx_bac += [
str(len(h) + 1 + i) for i, _ in enumerate(admission_extra_cols)
] # computes col idx of admissions cols
h += admission_extra_cols
h += ["code_nip", "etudid"]
F.append(h)
@ -575,7 +584,17 @@ def make_formsemestre_recapcomplet(
# Table format HTML
H = [
"""
<script type="text/javascript">
<script type="text/javascript">""",
# """
# $(document).ready(function() {
# $('#recapcomplet').dataTable({
# fixedHeader: {
# header: true,
# footer: true
# });
# });
# """,
"""
function va_saisir(formsemestre_id, etudid) {
loc = 'formsemestre_validation_etud_form?formsemestre_id='+formsemestre_id+'&etudid='+etudid;
if (SORT_COLUMN_INDEX) {
@ -584,36 +603,54 @@ def make_formsemestre_recapcomplet(
loc += '#etudid' + etudid;
document.location=loc;
}
</script>
<table class="notes_recapcomplet sortable" id="recapcomplet">
"""
</script> """,
"""<table class="notes_recapcomplet sortable display compact" id="recapcomplet">
""",
]
if sortcol: # sort table using JS sorttable
H.append(
"""<script type="text/javascript">
function resort_recap() {
var clid = %d;
// element <a place par sorttable (ligne de titre)
lnk = document.getElementById("recap_trtit").childNodes[clid].childNodes[0];
ts_resortTable(lnk,clid);
// Scroll window:
eid = document.location.hash;
if (eid) {
var eid = eid.substring(1); // remove #
var e = document.getElementById(eid);
if (e) {
var y = e.offsetTop + e.offsetParent.offsetTop;
window.scrollTo(0,y);
}
var clid = %d;
// element <a place par sorttable (ligne de titre)
lnk = document.getElementById("recap_trtit").childNodes[clid].childNodes[0];
ts_resortTable(lnk,clid);
// Scroll window:
eid = document.location.hash;
if (eid) {
var eid = eid.substring(1); // remove #
var e = document.getElementById(eid);
if (e) {
var y = e.offsetTop + e.offsetParent.offsetTop;
window.scrollTo(0,y);
}
}
}
}
addEvent(window, "load", resort_recap);
addEvent(window, "load", resort_recap);
</script>
"""
% (int(sortcol))
% int(sortcol),
)
cells = '<tr class="recap_row_tit sortbottom" id="recap_trtit">'
H.append(
"""<script type="text/javascript">
function toggle_modules(show) {
toggle_cols(%s, show);
}
function toggle_bac(show) {
toggle_cols(%s, show);
}
function toggle_cols(columns, show) {
style = show ? 'table-cell' :'none';
columns.forEach(n => {
$('#recapcomplet tr th:nth-child(' + n + ')').css('display', style);
$('#recapcomplet tr td:nth-child(' + n + ')').css('display', style);
})
}
</script>"""
% ("[" + ",".join(col_idx_modules) + "]", "[" + ",".join(col_idx_bac) + "]")
)
cells = '<thead><tr class="recap_row_tit sortbottom" id="recap_trtit">'
for i in range(len(F[0]) - 2):
if i in ue_index:
cls = "recap_tit_ue"
@ -636,14 +673,15 @@ def make_formsemestre_recapcomplet(
cells += '<td class="%s">%s</td>' % (cls, F[0][i])
if modejury:
cells += '<td class="recap_tit">Décision</td>'
ligne_titres = cells + "</tr>"
H.append(ligne_titres) # titres
ligne_titres = cells + "</tr></thead>"
# H.append(ligne_titres) # titres
if disable_etudlink:
etudlink = "%(name)s"
else:
etudlink = '<a href="formsemestre_bulletinetud?formsemestre_id=%(formsemestre_id)s&etudid=%(etudid)s&version=selectedevals" id="%(etudid)s" class="etudinfo">%(name)s</a>'
ir = 0
nblines = len(F) - 1
H.append("<tbody>")
for l in F[1:]:
etudid = l[-1]
if ir >= nblines - 6:
@ -744,7 +782,7 @@ def make_formsemestre_recapcomplet(
)
cells += "</td>"
H.append(cells + "</tr>")
H.append("<tbody>")
H.append(ligne_titres)
H.append("</table>")