diff --git a/app/scodoc/gen_tables.py b/app/scodoc/gen_tables.py index 5e102c834..422dc6760 100644 --- a/app/scodoc/gen_tables.py +++ b/app/scodoc/gen_tables.py @@ -676,6 +676,7 @@ class GenTable: fmt="html", page_title="", filename=None, + cssstyles=[], javascripts=[], with_html_headers=True, publish=True, @@ -696,6 +697,7 @@ class GenTable: H.append( self.html_header or html_sco_header.sco_header( + cssstyles=cssstyles, page_title=page_title, javascripts=javascripts, init_qtip=init_qtip, @@ -721,7 +723,7 @@ class GenTable: ) else: return pdf_doc - elif fmt == "xls" or fmt == "xlsx": # dans les 2 cas retourne du xlsx + elif fmt in ("xls", "xlsx"): # dans les 2 cas retourne du xlsx xls = self.excel() if publish: return scu.send_file( @@ -730,8 +732,7 @@ class GenTable: suffix=scu.XLSX_SUFFIX, mime=scu.XLSX_MIMETYPE, ) - else: - return xls + return xls elif fmt == "text": return self.text() elif fmt == "csv": diff --git a/app/scodoc/sco_groups_view.py b/app/scodoc/sco_groups_view.py index ebfffab38..707a41af0 100644 --- a/app/scodoc/sco_groups_view.py +++ b/app/scodoc/sco_groups_view.py @@ -453,6 +453,10 @@ class DisplayedGroupsInfos: for i in to_remove: del T[i] + def get_etudids(self) -> set[int]: + "Les etudids des groupes choisis" + return {member["etudid"] for member in self.members} + def get_form_elem(self): """html hidden input with groups""" H = [] diff --git a/app/scodoc/sco_lycee.py b/app/scodoc/sco_lycee.py index da274dc9f..d9c27633b 100644 --- a/app/scodoc/sco_lycee.py +++ b/app/scodoc/sco_lycee.py @@ -34,22 +34,28 @@ from operator import itemgetter from flask import url_for, g, request import app -import app.scodoc.sco_utils as scu -from app.scodoc import html_sco_header -from app.scodoc import sco_formsemestre -from app.scodoc import sco_preferences -from app.scodoc import sco_report -from app.scodoc import sco_etud -import sco_version +from app.scodoc import ( + html_sco_header, + sco_formsemestre, + sco_groups_view, + sco_preferences, + sco_report, + sco_etud, +) +from app.models import FormSemestre from app.scodoc.gen_tables import GenTable +import app.scodoc.sco_utils as scu +import sco_version def formsemestre_table_etuds_lycees( - formsemestre_id, group_lycees=True, only_primo=False + formsemestre: FormSemestre, groups_infos, group_lycees=True, only_primo=False ): """Récupère liste d'etudiants avec etat et decision.""" - sem = sco_formsemestre.get_formsemestre(formsemestre_id) - etuds = sco_report.tsp_etud_list(formsemestre_id, only_primo=only_primo)[0] + sem = sco_formsemestre.get_formsemestre(formsemestre.id) + etuds = sco_report.tsp_etud_list( + formsemestre.id, groups_infos=groups_infos, only_primo=only_primo + )[0] if only_primo: primostr = "primo-entrants du " else: @@ -59,7 +65,7 @@ def formsemestre_table_etuds_lycees( etuds, group_lycees, title, - sco_preferences.SemPreferences(formsemestre_id), + sco_preferences.SemPreferences(formsemestre.id), ) @@ -180,13 +186,20 @@ def _table_etuds_lycees(etuds, group_lycees, title, preferences, no_links=False) def formsemestre_etuds_lycees( formsemestre_id, + group_ids: list[int] = None, # si indiqué, ne prend que ces groupes fmt="html", only_primo=False, no_grouping=False, ): """Table des lycées d'origine""" + formsemestre = FormSemestre.get_formsemestre(formsemestre_id) + groups_infos = sco_groups_view.DisplayedGroupsInfos( + group_ids, + formsemestre_id=formsemestre.id, + select_all_when_unspecified=True, + ) tab, etuds_by_lycee = formsemestre_table_etuds_lycees( - formsemestre_id, only_primo=only_primo, group_lycees=not no_grouping + formsemestre, groups_infos, only_primo=only_primo, group_lycees=not no_grouping ) tab.base_url = "%s?formsemestre_id=%s" % (request.base_url, formsemestre_id) if only_primo: @@ -196,13 +209,19 @@ def formsemestre_etuds_lycees( t = tab.make_page(fmt=fmt, with_html_headers=False) if fmt != "html": return t - F = [sco_report.tsp_form_primo_group(only_primo, no_grouping, formsemestre_id, fmt)] + F = [ + sco_report.tsp_form_primo_group( + only_primo, no_grouping, formsemestre_id, fmt, groups_infos=groups_infos + ) + ] H = [ html_sco_header.sco_header( page_title=tab.page_title, init_google_maps=True, init_qtip=True, - javascripts=["js/etud_info.js", "js/map_lycees.js"], + cssstyles=sco_groups_view.CSSSTYLES, + javascripts=sco_groups_view.JAVASCRIPTS + + ["js/etud_info.js", "js/map_lycees.js"], ), """
Aucun étudiant
"""] else: if allkeys: @@ -357,9 +356,10 @@ def formsemestre_report_counts( keys += ["nb_rcue_valides", "decision_annee"] keys.sort(key=scu.heterogeneous_sorting_key) F = [ - """ + """ ) - F.append( - '' % formsemestre_id - ) - F.append("") - t = tab.make_page( - title="""Le tableau affiche le nombre d'étudiants de ce semestre dans chacun des cas choisis: à l'aide des deux menus, vous pouvez choisir les catégories utilisées @@ -418,7 +426,8 @@ def formsemestre_report_counts( # -------------------------------------------------------------------------- def table_suivi_cohorte( - formsemestre_id, + formsemestre: FormSemestre, + groups_infos, percent=False, bac="", # selection sur type de bac bacspecialite="", @@ -441,9 +450,8 @@ def table_suivi_cohorte( Determination des dates: on regroupe les semestres commençant à des dates proches """ - sem = sco_formsemestre.get_formsemestre( - formsemestre_id - ) # sem est le semestre origine + sem = sco_formsemestre.get_formsemestre(formsemestre.id) + # sem est le semestre origine t0 = time.time() def logt(op): @@ -452,12 +460,12 @@ def table_suivi_cohorte( logt("table_suivi_cohorte: start") # 1-- Liste des semestres posterieurs dans lesquels ont été les etudiants de sem - formsemestre = FormSemestre.get_formsemestre(formsemestre_id) nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre) - etudids = nt.get_etudids() - + etudids_inscrits = {ins.etudid for ins in formsemestre.inscriptions} + etudids_groups = groups_infos.get_etudids() + etudids = etudids_inscrits.intersection(etudids_groups) logt("A: orig etuds set") - S = {formsemestre_id: sem} # ensemble de formsemestre_id + S = {formsemestre.id: sem} # ensemble de formsemestre_id orig_set = set() # ensemble d'etudid du semestre d'origine bacs = set() bacspecialites = set() @@ -479,7 +487,7 @@ def table_suivi_cohorte( ) and (not civilite or (civilite == etud["civilite"])) and (not statut or (statut == etud["statut"])) - and (not only_primo or is_primo_etud(etud, sem)) + and (not only_primo or is_primo_etud(etud, formsemestre)) ): orig_set.add(etudid) # semestres suivants: @@ -524,17 +532,15 @@ def table_suivi_cohorte( s["nb_dipl"] = nb_dipl # 3-- Regroupe les semestres par date de debut - P = [] # liste de periodsem - class PeriodSem: - pass + def __init__(self, datedebut: datetime.datetime, sems: list[dict]): + self.datedebut = datedebut + self.sems = sems # semestre de depart: - porigin = PeriodSem() d, m, y = [int(x) for x in sem["date_debut"].split("/")] - porigin.datedebut = datetime.datetime(y, m, d) - porigin.sems = [sem] - + porigin = PeriodSem(datetime.datetime(y, m, d), [sem]) + P = [] # liste de periodsem # tolerance = datetime.timedelta(days=45) for s in sems: @@ -545,9 +551,7 @@ def table_suivi_cohorte( merged = True break if not merged: - p = PeriodSem() - p.datedebut = s["date_debut_dt"] - p.sems = [s] + p = PeriodSem(s["date_debut_dt"], [s]) P.append(p) # 4-- regroupe par indice de semestre S_i @@ -602,7 +606,7 @@ def table_suivi_cohorte( L.append(d) # Compte nb de démissions et de ré-orientation par période logt("D: cout dems reos") - sem["dems"], sem["reos"] = _count_dem_reo(formsemestre_id, sem["members"]) + sem["dems"], sem["reos"] = _count_dem_reo(formsemestre.id, sem["members"]) for p in P: p.dems = set() p.reos = set() @@ -703,7 +707,7 @@ def table_suivi_cohorte( caption="Suivi cohorte " + pp + sem["titreannee"] + dbac, page_title="Suivi cohorte " + sem["titreannee"], html_class="table_cohorte", - preferences=sco_preferences.SemPreferences(formsemestre_id), + preferences=sco_preferences.SemPreferences(formsemestre.id), ) # Explication: liste des semestres associés à chaque date if not P: @@ -713,13 +717,10 @@ def table_suivi_cohorte( else: expl = ["
Afficher les résultats en pourcentages
' - % burl - ) + pplink = f"""Afficher les résultats en pourcentages
""" H = [ - html_sco_header.sco_header(page_title=tab.page_title), + html_sco_header.sco_header( + cssstyles=sco_groups_view.CSSSTYLES, + javascripts=sco_groups_view.JAVASCRIPTS, + page_title=tab.page_title, + ), """Bac:
++ Le menu Restreindre au(x) groupe(s) permet de restreindre l'étude aux + étudiants appartenant aux groupes indiqués dans le semestre d'origine. +
""", html_sco_header.sco_footer(), ] diff --git a/app/static/css/gt_table.css b/app/static/css/gt_table.css index d40c493c4..075fb3b83 100644 --- a/app/static/css/gt_table.css +++ b/app/static/css/gt_table.css @@ -141,111 +141,111 @@ table.dataTable.with-highlight tr:hover td { background-color: rgba(255, 255, 0, 0.415); } -table.dataTable.order-column tbody tr > .sorting_1, -table.dataTable.order-column tbody tr > .sorting_2, -table.dataTable.order-column tbody tr > .sorting_3, -table.dataTable.display tbody tr > .sorting_1, -table.dataTable.display tbody tr > .sorting_2, -table.dataTable.display tbody tr > .sorting_3 { +table.dataTable.order-column tbody tr>.sorting_1, +table.dataTable.order-column tbody tr>.sorting_2, +table.dataTable.order-column tbody tr>.sorting_3, +table.dataTable.display tbody tr>.sorting_1, +table.dataTable.display tbody tr>.sorting_2, +table.dataTable.display tbody tr>.sorting_3 { background-color: #f9f9f9; } -table.dataTable.order-column tbody tr.selected > .sorting_1, -table.dataTable.order-column tbody tr.selected > .sorting_2, -table.dataTable.order-column tbody tr.selected > .sorting_3, -table.dataTable.display tbody tr.selected > .sorting_1, -table.dataTable.display tbody tr.selected > .sorting_2, -table.dataTable.display tbody tr.selected > .sorting_3 { +table.dataTable.order-column tbody tr.selected>.sorting_1, +table.dataTable.order-column tbody tr.selected>.sorting_2, +table.dataTable.order-column tbody tr.selected>.sorting_3, +table.dataTable.display tbody tr.selected>.sorting_1, +table.dataTable.display tbody tr.selected>.sorting_2, +table.dataTable.display tbody tr.selected>.sorting_3 { background-color: #acbad4; } -table.dataTable.display tbody tr.odd > .sorting_1, -table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { +table.dataTable.display tbody tr.odd>.sorting_1, +table.dataTable.order-column.stripe tbody tr.odd>.sorting_1 { background-color: #f1f1f1; } -table.dataTable.display tbody tr.odd > .sorting_2, -table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 { +table.dataTable.display tbody tr.odd>.sorting_2, +table.dataTable.order-column.stripe tbody tr.odd>.sorting_2 { background-color: #f3f3f3; } -table.dataTable.display tbody tr.odd > .sorting_3, -table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 { +table.dataTable.display tbody tr.odd>.sorting_3, +table.dataTable.order-column.stripe tbody tr.odd>.sorting_3 { background-color: whitesmoke; } -table.dataTable.display tbody tr.odd.selected > .sorting_1, -table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 { +table.dataTable.display tbody tr.odd.selected>.sorting_1, +table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1 { background-color: #a6b3cd; } -table.dataTable.display tbody tr.odd.selected > .sorting_2, -table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 { +table.dataTable.display tbody tr.odd.selected>.sorting_2, +table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2 { background-color: #a7b5ce; } -table.dataTable.display tbody tr.odd.selected > .sorting_3, -table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 { +table.dataTable.display tbody tr.odd.selected>.sorting_3, +table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3 { background-color: #a9b6d0; } -table.dataTable.display tbody tr.even > .sorting_1, -table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { +table.dataTable.display tbody tr.even>.sorting_1, +table.dataTable.order-column.stripe tbody tr.even>.sorting_1 { background-color: #f9f9f9; } -table.dataTable.display tbody tr.even > .sorting_2, -table.dataTable.order-column.stripe tbody tr.even > .sorting_2 { +table.dataTable.display tbody tr.even>.sorting_2, +table.dataTable.order-column.stripe tbody tr.even>.sorting_2 { background-color: #fbfbfb; } -table.dataTable.display tbody tr.even > .sorting_3, -table.dataTable.order-column.stripe tbody tr.even > .sorting_3 { +table.dataTable.display tbody tr.even>.sorting_3, +table.dataTable.order-column.stripe tbody tr.even>.sorting_3 { background-color: #fdfdfd; } -table.dataTable.display tbody tr.even.selected > .sorting_1, -table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 { +table.dataTable.display tbody tr.even.selected>.sorting_1, +table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1 { background-color: #acbad4; } -table.dataTable.display tbody tr.even.selected > .sorting_2, -table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 { +table.dataTable.display tbody tr.even.selected>.sorting_2, +table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2 { background-color: #adbbd6; } -table.dataTable.display tbody tr.even.selected > .sorting_3, -table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 { +table.dataTable.display tbody tr.even.selected>.sorting_3, +table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3 { background-color: #afbdd8; } -table.dataTable.display tbody tr:hover > .sorting_1, -table.dataTable.order-column.hover tbody tr:hover > .sorting_1 { +table.dataTable.display tbody tr:hover>.sorting_1, +table.dataTable.order-column.hover tbody tr:hover>.sorting_1 { background-color: #eaeaea; } -table.dataTable.display tbody tr:hover > .sorting_2, -table.dataTable.order-column.hover tbody tr:hover > .sorting_2 { +table.dataTable.display tbody tr:hover>.sorting_2, +table.dataTable.order-column.hover tbody tr:hover>.sorting_2 { background-color: #ebebeb; } -table.dataTable.display tbody tr:hover > .sorting_3, -table.dataTable.order-column.hover tbody tr:hover > .sorting_3 { +table.dataTable.display tbody tr:hover>.sorting_3, +table.dataTable.order-column.hover tbody tr:hover>.sorting_3 { background-color: #eeeeee; } -table.dataTable.display tbody tr:hover.selected > .sorting_1, -table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 { +table.dataTable.display tbody tr:hover.selected>.sorting_1, +table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1 { background-color: #a1aec7; } -table.dataTable.display tbody tr:hover.selected > .sorting_2, -table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 { +table.dataTable.display tbody tr:hover.selected>.sorting_2, +table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2 { background-color: #a2afc8; } -table.dataTable.display tbody tr:hover.selected > .sorting_3, -table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 { +table.dataTable.display tbody tr:hover.selected>.sorting_3, +table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3 { background-color: #a4b2cb; } @@ -420,13 +420,11 @@ table.dataTable td { color: #333333 !important; border: 1px solid #979797; background-color: white; - background: -webkit-gradient( - linear, - left top, - left bottom, - color-stop(0%, white), - color-stop(100%, gainsboro) - ); + background: -webkit-gradient(linear, + left top, + left bottom, + color-stop(0%, white), + color-stop(100%, gainsboro)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, white 0%, gainsboro 100%); /* Chrome10+,Safari5.1+ */ @@ -454,13 +452,11 @@ table.dataTable td { color: white !important; border: 1px solid #111111; background-color: #585858; - background: -webkit-gradient( - linear, - left top, - left bottom, - color-stop(0%, #585858), - color-stop(100%, #111111) - ); + background: -webkit-gradient(linear, + left top, + left bottom, + color-stop(0%, #585858), + color-stop(100%, #111111)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, #585858 0%, #111111 100%); /* Chrome10+,Safari5.1+ */ @@ -477,13 +473,11 @@ table.dataTable td { .dataTables_wrapper .dataTables_paginate .paginate_button:active { outline: none; background-color: #2b2b2b; - background: -webkit-gradient( - linear, - left top, - left bottom, - color-stop(0%, #2b2b2b), - color-stop(100%, #0c0c0c) - ); + background: -webkit-gradient(linear, + left top, + left bottom, + color-stop(0%, #2b2b2b), + color-stop(100%, #0c0c0c)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); /* Chrome10+,Safari5.1+ */ @@ -514,50 +508,38 @@ table.dataTable td { text-align: center; font-size: 1.2em; background-color: white; - background: -webkit-gradient( - linear, - left top, - right top, - color-stop(0%, rgba(255, 255, 255, 0)), - color-stop(25%, rgba(255, 255, 255, 0.9)), - color-stop(75%, rgba(255, 255, 255, 0.9)), - color-stop(100%, rgba(255, 255, 255, 0)) - ); - background: -webkit-linear-gradient( - left, - rgba(255, 255, 255, 0) 0%, - rgba(255, 255, 255, 0.9) 25%, - rgba(255, 255, 255, 0.9) 75%, - rgba(255, 255, 255, 0) 100% - ); - background: -moz-linear-gradient( - left, - rgba(255, 255, 255, 0) 0%, - rgba(255, 255, 255, 0.9) 25%, - rgba(255, 255, 255, 0.9) 75%, - rgba(255, 255, 255, 0) 100% - ); - background: -ms-linear-gradient( - left, - rgba(255, 255, 255, 0) 0%, - rgba(255, 255, 255, 0.9) 25%, - rgba(255, 255, 255, 0.9) 75%, - rgba(255, 255, 255, 0) 100% - ); - background: -o-linear-gradient( - left, - rgba(255, 255, 255, 0) 0%, - rgba(255, 255, 255, 0.9) 25%, - rgba(255, 255, 255, 0.9) 75%, - rgba(255, 255, 255, 0) 100% - ); - background: linear-gradient( - to right, - rgba(255, 255, 255, 0) 0%, - rgba(255, 255, 255, 0.9) 25%, - rgba(255, 255, 255, 0.9) 75%, - rgba(255, 255, 255, 0) 100% - ); + background: -webkit-gradient(linear, + left top, + right top, + color-stop(0%, rgba(255, 255, 255, 0)), + color-stop(25%, rgba(255, 255, 255, 0.9)), + color-stop(75%, rgba(255, 255, 255, 0.9)), + color-stop(100%, rgba(255, 255, 255, 0))); + background: -webkit-linear-gradient(left, + rgba(255, 255, 255, 0) 0%, + rgba(255, 255, 255, 0.9) 25%, + rgba(255, 255, 255, 0.9) 75%, + rgba(255, 255, 255, 0) 100%); + background: -moz-linear-gradient(left, + rgba(255, 255, 255, 0) 0%, + rgba(255, 255, 255, 0.9) 25%, + rgba(255, 255, 255, 0.9) 75%, + rgba(255, 255, 255, 0) 100%); + background: -ms-linear-gradient(left, + rgba(255, 255, 255, 0) 0%, + rgba(255, 255, 255, 0.9) 25%, + rgba(255, 255, 255, 0.9) 75%, + rgba(255, 255, 255, 0) 100%); + background: -o-linear-gradient(left, + rgba(255, 255, 255, 0) 0%, + rgba(255, 255, 255, 0.9) 25%, + rgba(255, 255, 255, 0.9) 75%, + rgba(255, 255, 255, 0) 100%); + background: linear-gradient(to right, + rgba(255, 255, 255, 0) 0%, + rgba(255, 255, 255, 0.9) 25%, + rgba(255, 255, 255, 0.9) 75%, + rgba(255, 255, 255, 0) 100%); } .dataTables_wrapper .dataTables_length, @@ -577,69 +559,17 @@ table.dataTable td { -webkit-overflow-scrolling: touch; } -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > thead - > tr - > th, -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > thead - > tr - > td, -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > tbody - > tr - > th, -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > tbody - > tr - > td { +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td { vertical-align: middle; } -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > thead - > tr - > th - > div.dataTables_sizing, -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > thead - > tr - > td - > div.dataTables_sizing, -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > tbody - > tr - > th - > div.dataTables_sizing, -.dataTables_wrapper - .dataTables_scroll - div.dataTables_scrollBody - > table - > tbody - > tr - > td - > div.dataTables_sizing { +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing { height: 0; overflow: hidden; margin: 0 !important; @@ -650,8 +580,8 @@ table.dataTable td { border-bottom: 1px solid #111111; } -.dataTables_wrapper.no-footer div.dataTables_scrollHead > table, -.dataTables_wrapper.no-footer div.dataTables_scrollBody > table { +.dataTables_wrapper.no-footer div.dataTables_scrollHead>table, +.dataTables_wrapper.no-footer div.dataTables_scrollBody>table { border-bottom: none; } @@ -664,6 +594,7 @@ table.dataTable td { } @media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_paginate { float: none; @@ -676,6 +607,7 @@ table.dataTable td { } @media screen and (max-width: 640px) { + .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter { float: none; @@ -703,6 +635,10 @@ table.table_leftalign tr td { text-align: left; } +p.gt_caption { + margin-top: 8px; +} + /* Ligne(s) de titre */ table.dataTable thead tr th { background-color: rgb(90%, 90%, 90%); @@ -757,7 +693,8 @@ table.dataTable.gt_table { table.dataTable.gt_table.gt_left { margin-left: 16px; } + table.dataTable.gt_table.gt_left td, table.dataTable.gt_table.gt_left th { text-align: left; -} +} \ No newline at end of file diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css index 5a91809bd..105b2e36d 100644 --- a/app/static/css/scodoc.css +++ b/app/static/css/scodoc.css @@ -1188,10 +1188,11 @@ a.discretelink:hover { .help { max-width: var(--sco-content-max-width); + font-style: italic; } -.help { - font-style: italic; +.help em { + font-style: normal; } .help_important { diff --git a/app/static/js/groups_view.js b/app/static/js/groups_view.js index 74433b643..e555a9eb7 100644 --- a/app/static/js/groups_view.js +++ b/app/static/js/groups_view.js @@ -23,7 +23,7 @@ function groups_view_url() { url.param()["formsemestre_id"] = $("#group_selector")[0].formsemestre_id.value; - var selected_groups = $("#group_selector select").val(); + var selected_groups = $("#group_selector select#group_ids_sel").val(); url.param()["group_ids"] = selected_groups; // remplace par groupes selectionnes return url;