diff --git a/app/scodoc/sco_saisie_notes.py b/app/scodoc/sco_saisie_notes.py index 81e92d517..ebef0ae78 100644 --- a/app/scodoc/sco_saisie_notes.py +++ b/app/scodoc/sco_saisie_notes.py @@ -321,20 +321,31 @@ def do_evaluation_set_etud_note(evaluation: Evaluation, etud: Identite, value) - return False # error -def do_evaluation_set_missing(evaluation_id, value, dialog_confirmed=False): +def do_evaluation_set_missing( + evaluation_id, value, dialog_confirmed=False, group_ids_str: str = "" +): """Initialisation des notes manquantes""" evaluation = Evaluation.query.get_or_404(evaluation_id) modimpl = evaluation.moduleimpl - # Check access # (admin, respformation, and responsable_id) if not sco_permissions_check.can_edit_notes(current_user, modimpl.id): raise AccessDenied(f"Modification des notes impossible pour {current_user}") # notes_db = sco_evaluation_db.do_evaluation_get_all_notes(evaluation_id) + if not group_ids_str: + groups = None + else: + group_ids = [int(x) for x in str(group_ids_str).split(",")] + groups = sco_groups.listgroups(group_ids) + etudid_etats = sco_groups.do_evaluation_listeetuds_groups( - evaluation_id, getallstudents=True, include_demdef=False + evaluation_id, + getallstudents=groups is None, + groups=groups, + include_demdef=False, ) + notes = [] for etudid, _ in etudid_etats: # pour tous les inscrits if etudid not in notes_db: # pas de note @@ -360,17 +371,23 @@ def do_evaluation_set_missing(evaluation_id, value, dialog_confirmed=False): """ # Confirm action if not dialog_confirmed: + plural = len(L) > 1 return scu.confirm_dialog( f"""
Seuls les étudiants pour lesquels aucune note (ni valeur, ni ABS, ni EXC) n'a été rentrée seront affectés.
-{len(L)} étudiants concernés par ce changement de note.
-Attention, les étudiants sans notes de tous les groupes de ce semestre seront affectés.
+{len(L)} étudiant{"s" if plural else ""} concerné{"s" if plural else ""} + par ce changement de note. +
""", dest_url="", cancel_url=dest_url, - parameters={"evaluation_id": evaluation_id, "value": value}, + parameters={ + "evaluation_id": evaluation_id, + "value": value, + "group_ids_str": group_ids_str, + }, ) # ok comment = "Initialisation notes manquantes" @@ -792,7 +809,7 @@ def saisie_notes_tableur(evaluation_id, group_ids=()): H.append( f"""