From b8310064ee81d06f73ab710ea06324d3f41e9ab7 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 3 Sep 2021 18:17:43 +0200 Subject: [PATCH] fix nasty bug: editing sems with inactive mod resps --- app/scodoc/sco_formsemestre_edit.py | 14 +++++++++----- app/views/users.py | 4 +++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/scodoc/sco_formsemestre_edit.py b/app/scodoc/sco_formsemestre_edit.py index 9328a5f1c..c1374b101 100644 --- a/app/scodoc/sco_formsemestre_edit.py +++ b/app/scodoc/sco_formsemestre_edit.py @@ -147,9 +147,12 @@ def do_formsemestre_createwithmodules(REQUEST=None, edit=False): ) # Liste des enseignants avec forme pour affichage / saisie avec suggestion - userlist = sco_users.get_user_list() + # attention: il faut prendre ici tous les utilisateurs, même inactifs, car + # les responsables de modules d'anciens semestres peuvent ne plus être actifs. + # Mais la suggestion utilise get_user_list_xml() qui ne suggérera que les actifs. + user_list = sco_users.get_user_list(with_inactives=True) uid2display = {} # user_name : forme pour affichage = "NOM Prenom (login)" - for u in userlist: + for u in user_list: uid2display[u.id] = u.get_nomplogin() allowed_user_names = list(uid2display.values()) + [""] # @@ -172,7 +175,8 @@ def do_formsemestre_createwithmodules(REQUEST=None, edit=False): initvalues["tf-checked"] = ["MI" + str(x["module_id"]) for x in ams] for x in ams: initvalues["MI" + str(x["module_id"])] = uid2display.get( - x["responsable_id"], x["responsable_id"] + x["responsable_id"], + f"inconnu numéro {x['responsable_id']} resp. de {x['moduleimpl_id']} !", ) initvalues["responsable_id"] = uid2display.get( @@ -869,9 +873,9 @@ def formsemestre_clone(formsemestre_id, REQUEST=None): """ sem = sco_formsemestre.get_formsemestre(formsemestre_id) # Liste des enseignants avec forme pour affichage / saisie avec suggestion - userlist = sco_users.get_user_list() + user_list = sco_users.get_user_list() uid2display = {} # user_name : forme pour affichage = "NOM Prenom (login)" - for u in userlist: + for u in user_list: uid2display[u.id] = u.get_nomplogin() allowed_user_names = list(uid2display.values()) + [""] diff --git a/app/views/users.py b/app/views/users.py index 44ca12817..17ed76325 100644 --- a/app/views/users.py +++ b/app/views/users.py @@ -569,7 +569,9 @@ def user_info_page(user_name): @scodoc7func def get_user_list_xml(dept=None, start="", limit=25, REQUEST=None): """Returns XML list of users with name (nomplogin) starting with start. - Used for forms auto-completion.""" + Used for forms auto-completion. + """ + # suggère seulement seulement les utilisateurs actifs: userlist = sco_users.get_user_list(dept=dept) start = scu.suppress_accents(start).lower() # TODO : à refaire avec une requete SQL #py3