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(
|
nb_inscrits = len(
|
||||||
sco_groups.do_evaluation_listeetuds_groups(evaluation_id, getallstudents=True)
|
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
|
evaluation_id
|
||||||
) # { etudid : value }
|
) # { etudid : note }
|
||||||
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
|
|
||||||
# ---- Liste des groupes complets et incomplets
|
# ---- Liste des groupes complets et incomplets
|
||||||
E = sco_evaluation_db.do_evaluation_list(args={"evaluation_id": evaluation_id})[0]
|
E = sco_evaluation_db.do_evaluation_list(args={"evaluation_id": evaluation_id})[0]
|
||||||
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=E["moduleimpl_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
|
# Nombre de notes valides d'étudiants inscrits au module
|
||||||
# (car il peut y avoir des notes d'étudiants désinscrits depuis l'évaluation)
|
# (car il peut y avoir des notes d'étudiants désinscrits depuis l'évaluation)
|
||||||
nb_notes = len(insmodset.intersection(NotesDB))
|
etudids_avec_note = insmodset.intersection(etuds_notes_dict)
|
||||||
nb_notes_total = len(NotesDB)
|
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
|
# On considere une note "manquante" lorsqu'elle n'existe pas
|
||||||
# ou qu'elle est en attente (ATT)
|
# 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
|
groups[group["group_id"]] = group
|
||||||
#
|
#
|
||||||
isMissing = False
|
isMissing = False
|
||||||
if i["etudid"] in NotesDB:
|
if i["etudid"] in etuds_notes_dict:
|
||||||
val = NotesDB[i["etudid"]]["value"]
|
val = etuds_notes_dict[i["etudid"]]["value"]
|
||||||
if val == scu.NOTES_ATTENTE:
|
if val == scu.NOTES_ATTENTE:
|
||||||
isMissing = True
|
isMissing = True
|
||||||
TotalNbAtt += 1
|
TotalNbAtt += 1
|
||||||
|
@ -66,7 +66,9 @@ def do_formsemestre_inscription_list(*args, **kw):
|
|||||||
|
|
||||||
|
|
||||||
def do_formsemestre_inscription_listinscrits(formsemestre_id):
|
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)
|
r = sco_cache.SemInscriptionsCache.get(formsemestre_id)
|
||||||
if r is None:
|
if r is None:
|
||||||
# retreive list
|
# retreive list
|
||||||
|
Loading…
Reference in New Issue
Block a user