diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py index ec09a508..ee15cc41 100755 --- a/app/scodoc/sco_formsemestre_status.py +++ b/app/scodoc/sco_formsemestre_status.py @@ -838,16 +838,6 @@ def _make_listes_sem(formsemestre: FormSemestre) -> str: H.append( f"""
- - Visualiser -
-
str: Route utilisée uniquement si la date courante n'est pas dans le semestre concerné par la requête vers une des pages suivantes : - saisie_assiduites_group - - visu_assiduites_group - """ formsemestre_id = request.args.get("formsemestre_id") formsemestre: FormSemestre = FormSemestre.query.get_or_404(formsemestre_id) @@ -989,11 +987,7 @@ def choix_date() -> str: if ok: return redirect( url_for( - ( - "assiduites.signal_assiduites_group" - if request.args.get("readonly") is None - else "assiduites.visu_assiduites_group" - ), + "assiduites.signal_assiduites_group", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, group_ids=group_ids, @@ -1160,136 +1154,6 @@ def signal_assiduites_group(): ) -@bp.route("/visu_assiduites_group") -@scodoc -@permission_required(Permission.ScoView) -def visu_assiduites_group(): - """ - Visualisation des assiduités des groupes pour le jour donné - dans le formsemestre_id et le moduleimpl_id - Returns: - str: l'html généré - """ - - # Récupération des paramètres de la requête - formsemestre_id: int = request.args.get("formsemestre_id", -1) - moduleimpl_id: int = request.args.get("moduleimpl_id") - date: str = request.args.get("jour", datetime.date.today().isoformat()) - group_ids: list[int] = request.args.get("group_ids", None) - if group_ids is None: - group_ids = [] - else: - group_ids = group_ids.split(",") - map(str, group_ids) - - # Vérification du moduleimpl_id - if moduleimpl_id is not None: - try: - moduleimpl_id = int(moduleimpl_id) - except (TypeError, ValueError) as exc: - raise ScoValueError("identifiant de moduleimpl invalide") from exc - # Vérification du formsemestre_id - if formsemestre_id is not None: - try: - formsemestre_id = int(formsemestre_id) - except (TypeError, ValueError) as exc: - raise ScoValueError("identifiant de formsemestre invalide") from exc - - # Récupérations des/du groupe(s) - groups_infos = sco_groups_view.DisplayedGroupsInfos( - group_ids, moduleimpl_id=moduleimpl_id, formsemestre_id=formsemestre_id - ) - if not groups_infos.members: - return ( - html_sco_header.sco_header(page_title="Saisie journalière de l'assiduité") - + "

Aucun étudiant !

" - + html_sco_header.sco_footer() - ) - - # --- Filtrage par formsemestre --- - formsemestre_id = groups_infos.formsemestre_id - - formsemestre: FormSemestre = FormSemestre.query.get_or_404(formsemestre_id) - if formsemestre.dept_id != g.scodoc_dept_id: - abort(404, "groupes inexistants dans ce département") - - # Récupération des étudiants du/des groupe(s) - etuds = [ - sco_etud.get_etud_info(etudid=m["etudid"], filled=True)[0] - for m in groups_infos.members - ] - - # --- Vérification de la date --- - real_date = scu.is_iso_formated(date, True).date() - if real_date < formsemestre.date_debut or real_date > formsemestre.date_fin: - # Si le jour est hors semestre, renvoyer vers choix date - return redirect( - url_for( - "assiduites.choix_date", - formsemestre_id=formsemestre_id, - group_ids=group_ids, - moduleimpl_id=moduleimpl_id, - scodoc_dept=g.scodoc_dept, - readonly="true", - ) - ) - - # --- Restriction en fonction du moduleimpl_id --- - if moduleimpl_id: - mod_inscrits = { - x["etudid"] - for x in sco_moduleimpl.do_moduleimpl_inscription_list( - moduleimpl_id=moduleimpl_id - ) - } - etuds_inscrits_module = [e for e in etuds if e["etudid"] in mod_inscrits] - if etuds_inscrits_module: - etuds = etuds_inscrits_module - else: - # Si aucun etudiant n'est inscrit au module choisi... - moduleimpl_id = None - - # --- Génération du HTML --- - - if groups_infos.tous_les_etuds_du_sem: - gr_tit = "en" - else: - if len(groups_infos.group_ids) > 1: - grp = "des groupes" - else: - grp = "du groupe" - gr_tit = ( - grp + ' ' + groups_infos.groups_titles + "" - ) - - # Récupération du semestre en dictionnaire - sem = formsemestre.to_dict() - - return render_template( - "assiduites/pages/signal_assiduites_group.j2", - date=_dateiso_to_datefr(date), - defdem=_get_etuds_dem_def(formsemestre), - forcer_module=sco_preferences.get_preference( - "forcer_module", - formsemestre_id=formsemestre_id, - dept_id=g.scodoc_dept_id, - ), - formsemestre_date_debut=str(formsemestre.date_debut), - formsemestre_date_fin=str(formsemestre.date_fin), - formsemestre_id=formsemestre_id, - gr_tit=gr_tit, - grp=sco_groups_view.menu_groups_choice(groups_infos), - minitimeline=_mini_timeline(), - moduleimpl_select=_module_selector(formsemestre, moduleimpl_id), - nonworkdays=_non_work_days(), - sem=sem["titre_num"], - timeline=_timeline(), - readonly="true", - sco=ScoData(formsemestre=formsemestre), - title="Saisie journalière de l'assiduité", - ) - - class RowEtudWithAssi(RowEtud): """Ligne de la table d'étudiants avec colonne Assiduité"""