forked from ScoDoc/ScoDoc
Affichage des notes d'évaluation dans tableau de bord module (prise en compte des (de)inscriptions).
This commit is contained in:
parent
5e65e75a3b
commit
6596e70eec
@ -109,30 +109,10 @@ def do_evaluation_etat(evaluation_id, partition_id=None, select_first_partition=
|
||||
nb_inscrits = len(
|
||||
sco_groups.do_evaluation_listeetuds_groups(evaluation_id, getallstudents=True)
|
||||
)
|
||||
NotesDB = sco_evaluation_db.do_evaluation_get_all_notes(
|
||||
etuds_notes_dict = sco_evaluation_db.do_evaluation_get_all_notes(
|
||||
evaluation_id
|
||||
) # { etudid : value }
|
||||
notes = [x["value"] for x in NotesDB.values()]
|
||||
nb_abs = len([x for x in notes if x is None])
|
||||
nb_neutre = len([x for x in notes if x == scu.NOTES_NEUTRALISE])
|
||||
nb_att = len([x for x in notes if x == scu.NOTES_ATTENTE])
|
||||
moy_num, median_num, mini_num, maxi_num = notes_moyenne_median_mini_maxi(notes)
|
||||
if moy_num is None:
|
||||
median, moy = "", ""
|
||||
median_num, moy_num = None, None
|
||||
mini, maxi = "", ""
|
||||
mini_num, maxi_num = None, None
|
||||
else:
|
||||
median = scu.fmt_note(median_num)
|
||||
moy = scu.fmt_note(moy_num)
|
||||
mini = scu.fmt_note(mini_num)
|
||||
maxi = scu.fmt_note(maxi_num)
|
||||
# cherche date derniere modif note
|
||||
if len(NotesDB):
|
||||
t = [x["date"] for x in NotesDB.values()]
|
||||
last_modif = max(t)
|
||||
else:
|
||||
last_modif = None
|
||||
) # { etudid : note }
|
||||
|
||||
# ---- Liste des groupes complets et incomplets
|
||||
E = sco_evaluation_db.do_evaluation_list(args={"evaluation_id": evaluation_id})[0]
|
||||
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_id"])[0]
|
||||
@ -163,8 +143,32 @@ def do_evaluation_etat(evaluation_id, partition_id=None, select_first_partition=
|
||||
|
||||
# Nombre de notes valides d'étudiants inscrits au module
|
||||
# (car il peut y avoir des notes d'étudiants désinscrits depuis l'évaluation)
|
||||
nb_notes = len(insmodset.intersection(NotesDB))
|
||||
nb_notes_total = len(NotesDB)
|
||||
etudids_avec_note = insmodset.intersection(etuds_notes_dict)
|
||||
nb_notes = len(etudids_avec_note)
|
||||
# toutes saisies, y compris chez des non-inscrits:
|
||||
nb_notes_total = len(etuds_notes_dict)
|
||||
|
||||
notes = [etuds_notes_dict[etudid]["value"] for etudid in etudids_avec_note]
|
||||
nb_abs = len([x for x in notes if x is None])
|
||||
nb_neutre = len([x for x in notes if x == scu.NOTES_NEUTRALISE])
|
||||
nb_att = len([x for x in notes if x == scu.NOTES_ATTENTE])
|
||||
moy_num, median_num, mini_num, maxi_num = notes_moyenne_median_mini_maxi(notes)
|
||||
if moy_num is None:
|
||||
median, moy = "", ""
|
||||
median_num, moy_num = None, None
|
||||
mini, maxi = "", ""
|
||||
mini_num, maxi_num = None, None
|
||||
else:
|
||||
median = scu.fmt_note(median_num)
|
||||
moy = scu.fmt_note(moy_num)
|
||||
mini = scu.fmt_note(mini_num)
|
||||
maxi = scu.fmt_note(maxi_num)
|
||||
# cherche date derniere modif note
|
||||
if len(etuds_notes_dict):
|
||||
t = [x["date"] for x in etuds_notes_dict.values()]
|
||||
last_modif = max(t)
|
||||
else:
|
||||
last_modif = None
|
||||
|
||||
# On considere une note "manquante" lorsqu'elle n'existe pas
|
||||
# ou qu'elle est en attente (ATT)
|
||||
@ -181,8 +185,8 @@ def do_evaluation_etat(evaluation_id, partition_id=None, select_first_partition=
|
||||
groups[group["group_id"]] = group
|
||||
#
|
||||
isMissing = False
|
||||
if i["etudid"] in NotesDB:
|
||||
val = NotesDB[i["etudid"]]["value"]
|
||||
if i["etudid"] in etuds_notes_dict:
|
||||
val = etuds_notes_dict[i["etudid"]]["value"]
|
||||
if val == scu.NOTES_ATTENTE:
|
||||
isMissing = True
|
||||
TotalNbAtt += 1
|
||||
|
@ -66,7 +66,9 @@ def do_formsemestre_inscription_list(*args, **kw):
|
||||
|
||||
|
||||
def do_formsemestre_inscription_listinscrits(formsemestre_id):
|
||||
"""Liste les inscrits (état I) à ce semestre et cache le résultat"""
|
||||
"""Liste les inscrits (état I) à ce semestre et cache le résultat.
|
||||
Result: [ { "etudid":, "formsemestre_id": , "etat": , "etape": }]
|
||||
"""
|
||||
r = sco_cache.SemInscriptionsCache.get(formsemestre_id)
|
||||
if r is None:
|
||||
# retreive list
|
||||
|
Loading…
Reference in New Issue
Block a user