forked from ScoDoc/DocScoDoc
Fix: tri noms étudiants accentués sur form saisie notes
This commit is contained in:
parent
3e285659f2
commit
8c95b9458b
@ -1560,11 +1560,14 @@ def create_etapes_partition(formsemestre_id, partition_name="apo_etapes"):
|
||||
|
||||
|
||||
def do_evaluation_listeetuds_groups(
|
||||
evaluation_id, groups=None, getallstudents=False, include_demdef=False
|
||||
):
|
||||
"""Donne la liste des etudids inscrits a cette evaluation dans les
|
||||
evaluation_id: int,
|
||||
groups=None,
|
||||
getallstudents: bool = False,
|
||||
include_demdef: bool = False,
|
||||
) -> list[tuple[int, str]]:
|
||||
"""Donne la liste non triée des etudids inscrits à cette évaluation dans les
|
||||
groupes indiqués.
|
||||
Si getallstudents==True, donne tous les etudiants inscrits a cette
|
||||
Si getallstudents==True, donne tous les étudiants inscrits à cette
|
||||
evaluation.
|
||||
Si include_demdef, compte aussi les etudiants démissionnaires et défaillants
|
||||
(sinon, par défaut, seulement les 'I')
|
||||
|
@ -967,31 +967,35 @@ def has_existing_decision(M, E, etudid):
|
||||
# Nouveau formulaire saisie notes (2016)
|
||||
|
||||
|
||||
def saisie_notes(evaluation_id, group_ids=[]):
|
||||
def saisie_notes(evaluation_id: int, group_ids: list = None):
|
||||
"""Formulaire saisie notes d'une évaluation pour un groupe"""
|
||||
if not isinstance(evaluation_id, int):
|
||||
raise ScoInvalidParamError()
|
||||
group_ids = [int(group_id) for group_id in group_ids]
|
||||
group_ids = [int(group_id) for group_id in (group_ids or [])]
|
||||
evals = sco_evaluation_db.do_evaluation_list({"evaluation_id": evaluation_id})
|
||||
if not evals:
|
||||
raise ScoValueError("évaluation inexistante")
|
||||
E = evals[0]
|
||||
M = sco_moduleimpl.moduleimpl_withmodule_list(moduleimpl_id=E["moduleimpl_id"])[0]
|
||||
formsemestre_id = M["formsemestre_id"]
|
||||
moduleimpl_status_url = url_for(
|
||||
"notes.moduleimpl_status",
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
moduleimpl_id=E["moduleimpl_id"],
|
||||
)
|
||||
# Check access
|
||||
# (admin, respformation, and responsable_id)
|
||||
if not sco_permissions_check.can_edit_notes(current_user, E["moduleimpl_id"]):
|
||||
return (
|
||||
html_sco_header.sco_header()
|
||||
+ "<h2>Modification des notes impossible pour %s</h2>"
|
||||
% current_user.user_name
|
||||
+ """<p>(vérifiez que le semestre n'est pas verrouillé et que vous
|
||||
return f"""
|
||||
{html_sco_header.sco_header()}
|
||||
<h2>Modification des notes impossible pour {current_user.user_name}</h2>
|
||||
|
||||
<p>(vérifiez que le semestre n'est pas verrouillé et que vous
|
||||
avez l'autorisation d'effectuer cette opération)</p>
|
||||
<p><a href="moduleimpl_status?moduleimpl_id=%s">Continuer</a></p>
|
||||
"""
|
||||
% E["moduleimpl_id"]
|
||||
+ html_sco_header.sco_footer()
|
||||
)
|
||||
<p><a href="{ moduleimpl_status_url }">Continuer</a>
|
||||
</p>
|
||||
{html_sco_header.sco_footer()}
|
||||
"""
|
||||
|
||||
# Informations sur les groupes à afficher:
|
||||
groups_infos = sco_groups_view.DisplayedGroupsInfos(
|
||||
@ -1049,8 +1053,14 @@ def saisie_notes(evaluation_id, group_ids=[]):
|
||||
alone=True,
|
||||
)
|
||||
)
|
||||
H.append("""</td><td style="padding-left: 35px;"><button class="btn_masquer_DEM">Masquer les DEM</button></td></tr></table></div>""")
|
||||
H.append("""<style>
|
||||
H.append(
|
||||
"""
|
||||
</td>
|
||||
<td style="padding-left: 35px;"><button class="btn_masquer_DEM">Masquer les DEM</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<style>
|
||||
.btn_masquer_DEM{
|
||||
font-size: 12px;
|
||||
}
|
||||
@ -1061,19 +1071,14 @@ def saisie_notes(evaluation_id, group_ids=[]):
|
||||
body.masquer_DEM .etud_dem{
|
||||
display: none !important;
|
||||
}
|
||||
</style>""")
|
||||
|
||||
# Le formulaire de saisie des notes:
|
||||
destination = url_for(
|
||||
"notes.moduleimpl_status",
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
moduleimpl_id=E["moduleimpl_id"],
|
||||
</style>
|
||||
"""
|
||||
)
|
||||
|
||||
form = _form_saisie_notes(E, M, groups_infos, destination=destination)
|
||||
# Le formulaire de saisie des notes:
|
||||
form = _form_saisie_notes(E, M, groups_infos, destination=moduleimpl_status_url)
|
||||
if form is None:
|
||||
log(f"redirecting to {destination}")
|
||||
return flask.redirect(destination)
|
||||
return flask.redirect(moduleimpl_status_url)
|
||||
H.append(form)
|
||||
#
|
||||
H.append("</div>") # /saisie_notes
|
||||
@ -1104,6 +1109,9 @@ def _get_sorted_etuds(eval_dict: dict, etudids: list, formsemestre_id: int):
|
||||
for etudid in etudids:
|
||||
# infos identite etudiant
|
||||
e = sco_etud.etudident_list(cnx, {"etudid": etudid})[0]
|
||||
etud: Identite = Identite.query.get(etudid)
|
||||
# TODO: refactor et eliminer etudident_list.
|
||||
e["etud"] = etud # utilisé seulement pour le tri -- a refactorer
|
||||
sco_etud.format_etud_ident(e)
|
||||
etuds.append(e)
|
||||
# infos inscription dans ce semestre
|
||||
@ -1155,7 +1163,7 @@ def _get_sorted_etuds(eval_dict: dict, etudids: list, formsemestre_id: int):
|
||||
e["val"] = "DEM"
|
||||
e["explanation"] = "Démission"
|
||||
|
||||
etuds.sort(key=lambda x: (x["nom"], x["prenom"]))
|
||||
etuds.sort(key=lambda x: x["etud"].sort_key)
|
||||
|
||||
return etuds
|
||||
|
||||
|
@ -129,7 +129,7 @@ FormSemestres:
|
||||
|
||||
|
||||
Etudiants:
|
||||
Aaaaa:
|
||||
Aïaaa: # avec un i trema
|
||||
prenom: Étudiant_SEE
|
||||
civilite: M
|
||||
formsemestres:
|
||||
@ -196,7 +196,7 @@ Etudiants:
|
||||
|
||||
S3:
|
||||
parcours: SEE
|
||||
Bbbbb:
|
||||
Azbbbb: # Az devrait être trié après Aï.
|
||||
prenom: Étudiante_BMB
|
||||
civilite: F
|
||||
formsemestres:
|
||||
|
Loading…
Reference in New Issue
Block a user