Fix: notes a prise en compte immédiate. + tests de ces cas.
This commit is contained in:
parent
d27b8d127d
commit
61ff72082f
@ -235,13 +235,16 @@ def do_evaluation_etat(
|
||||
else:
|
||||
complete = True
|
||||
if (
|
||||
TotalNbAtt > 0
|
||||
TotalNbMissing > 0
|
||||
and (TotalNbMissing == TotalNbAtt or E["publish_incomplete"] != "0")
|
||||
and not is_malus
|
||||
):
|
||||
evalattente = True
|
||||
else:
|
||||
evalattente = False
|
||||
# mais ne met pas en attente les evals immediates sans aucune notes:
|
||||
if E["publish_incomplete"] != "0" and nb_notes == 0:
|
||||
evalattente = False
|
||||
|
||||
# Calcul moyenne dans chaque groupe de TD
|
||||
gr_moyennes = [] # group : {moy,median, nb_notes}
|
||||
@ -265,11 +268,6 @@ def do_evaluation_etat(
|
||||
}
|
||||
)
|
||||
gr_moyennes.sort(key=operator.itemgetter("group_name"))
|
||||
# log('gr_moyennes=%s' % gr_moyennes)
|
||||
# _DEE_TOT += (time.time() - t0)
|
||||
# log('%s\t_DEE_TOT=%f' % (evaluation_id, _DEE_TOT))
|
||||
# if evaluation_id == 'GEAEVAL82883':
|
||||
# logCallStack()
|
||||
|
||||
# retourne mapping
|
||||
return {
|
||||
|
@ -19,6 +19,8 @@ import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
|
||||
import sco_utils
|
||||
import sco_abs
|
||||
import sco_abs_views
|
||||
import sco_bulletins
|
||||
import sco_evaluations
|
||||
|
||||
G = sco_fake_gen.ScoFake(context.Notes)
|
||||
G.verbose = False
|
||||
@ -65,12 +67,65 @@ e = G.create_evaluation(
|
||||
coefficient=1.0,
|
||||
)
|
||||
|
||||
# --- Saisie notes
|
||||
# --- Saisie toutes les notes de l'évaluation
|
||||
for etud in etuds:
|
||||
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
||||
evaluation=e, etud=etud, note=float(random.randint(0, 20))
|
||||
)
|
||||
|
||||
# --- Vérifie que les notes sont prises en compte:
|
||||
b = sco_bulletins.formsemestre_bulletinetud_dict(
|
||||
context.Notes, sem["formsemestre_id"], etud["etudid"], REQUEST=REQUEST
|
||||
)
|
||||
# Toute les notes sont saisies, donc eval complète
|
||||
etat = sco_evaluations.do_evaluation_etat(context.Notes, e["evaluation_id"])
|
||||
assert etat["evalcomplete"]
|
||||
# Un seul module, donc moy gen == note module
|
||||
assert b["ues"][0]["cur_moy_ue_txt"] == b["ues"][0]["modules"][0]["mod_moy_txt"]
|
||||
# Note au module égale à celle de l'éval
|
||||
assert (
|
||||
b["ues"][0]["modules"][0]["mod_moy_txt"]
|
||||
== b["ues"][0]["modules"][0]["evaluations"][0]["note_txt"]
|
||||
)
|
||||
|
||||
|
||||
# --- Une autre évaluation
|
||||
e2 = G.create_evaluation(
|
||||
moduleimpl_id=mi["moduleimpl_id"],
|
||||
jour="02/01/2020",
|
||||
description="evaluation test 2",
|
||||
coefficient=1.0,
|
||||
)
|
||||
# Saisie les notes des 5 premiers étudiants:
|
||||
for etud in etuds[:5]:
|
||||
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
||||
evaluation=e2, etud=etud, note=float(random.randint(0, 20))
|
||||
)
|
||||
# Cette éval n'est pas complète
|
||||
etat = sco_evaluations.do_evaluation_etat(context.Notes, e2["evaluation_id"])
|
||||
assert etat["evalcomplete"] == False
|
||||
# la première éval est toujours complète:
|
||||
etat = sco_evaluations.do_evaluation_etat(context.Notes, e["evaluation_id"])
|
||||
assert etat["evalcomplete"]
|
||||
|
||||
# Modifie l'évaluation 2 pour "prise en compte immédiate"
|
||||
e2["publish_incomplete"] = "1"
|
||||
context.Notes.do_evaluation_edit(REQUEST, e2)
|
||||
etat = sco_evaluations.do_evaluation_etat(context.Notes, e2["evaluation_id"])
|
||||
assert etat["evalcomplete"] == False
|
||||
assert etat["nb_att"] == 0 # il n'y a pas de notes (explicitement) en attente
|
||||
assert etat["evalattente"] # mais l'eval est en attente (prise en compte immédiate)
|
||||
|
||||
# Saisie des notes qui manquent:
|
||||
for etud in etuds[5:]:
|
||||
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
||||
evaluation=e2, etud=etud, note=float(random.randint(0, 20))
|
||||
)
|
||||
etat = sco_evaluations.do_evaluation_etat(context.Notes, e2["evaluation_id"])
|
||||
assert etat["evalcomplete"]
|
||||
assert etat["nb_att"] == 0
|
||||
assert not etat["evalattente"] # toutes les notes sont présentes
|
||||
|
||||
# --- Saisie absences
|
||||
etudid = etuds[0]["etudid"]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user