diff --git a/app/scodoc/sco_evaluations.py b/app/scodoc/sco_evaluations.py index e650d6950..7821a3198 100644 --- a/app/scodoc/sco_evaluations.py +++ b/app/scodoc/sco_evaluations.py @@ -652,12 +652,17 @@ def evaluation_describe(evaluation_id="", edit_in_place=True): ) else: # date et absences (pas pour evals de malus) - jour = E["jour"] or "pas de date" - H.append( - "

Réalisée le %s de %s à %s " - % (jour, E["heure_debut"], E["heure_fin"]) - ) if E["jour"]: + jour = E["jour"] + H.append( + "

Réalisée le %s " + % (jour) + ) + if E["heure_debut"] != E["heure_fin"]: + H.append( + "de %s à %s " + % (E["heure_debut"], E["heure_fin"]) + ) group_id = sco_groups.get_default_group(formsemestre_id) H.append( f"""(absences ce jour)""" ) + else: + jour = "pas de date" + H.append( + "

Réalisée le %s " + % (jour) + ) + H.append( '

Coefficient dans le module: %s, notes sur %g ' % (E["coefficient"], E["note_max"]) diff --git a/app/scodoc/sco_liste_notes.py b/app/scodoc/sco_liste_notes.py index ebe75a1d8..9c00e2315 100644 --- a/app/scodoc/sco_liste_notes.py +++ b/app/scodoc/sco_liste_notes.py @@ -1,4 +1,4 @@ -# -*- mode: python -*- +# -*- mode: python -*- # -*- coding: utf-8 -*- ############################################################################## @@ -273,8 +273,8 @@ def _make_table_notes( "expl_key": "Rem.", "email": "e-mail", "emailperso": "e-mail perso", + "signatures": "Signatures", } - rows = [] class KeyManager(dict): # comment : key (pour regrouper les comments a la fin) @@ -437,7 +437,7 @@ def _make_table_notes( if with_emails: columns_ids += ["email", "emailperso"] # Ajoute lignes en tête et moyennes - if len(evals) > 0: + if len(evals) > 0 and format != "bordereau": rows_head = [row_coefs] if is_apc: rows_head.append(row_poids) @@ -465,6 +465,8 @@ def _make_table_notes( columns_ids.append("expl_key") elif format == "xls" or format == "xml": columns_ids.append("comment") + elif format == "bordereau": + columns_ids.append("signatures") # titres divers: gl = "".join(["&group_ids%3Alist=" + str(g) for g in group_ids]) @@ -480,11 +482,38 @@ def _make_table_notes( evalname = "%s-%s" % (module.code, ndb.DateDMYtoISO(E["jour"])) hh = "%s, %s (%d étudiants)" % (E["description"], gr_title, len(etudid_etats)) filename = scu.make_filename("notes_%s_%s" % (evalname, gr_title_filename)) - caption = hh - if len(e["jour"]) > 0: - pdf_title = "%(description)s (%(jour)s)" % e + + if format == "bordereau": + hh = " %d étudiants" % (len(etudid_etats)) + hh += " %d absent" % (nb_abs) + if nb_abs > 1: + hh += "s" + hh += ", %d en attente." % (nb_att) + + pdf_title = "
BORDEREAU DE SIGNATURES" + pdf_title += "

%(titre)s" % sem + pdf_title += "
(%(mois_debut)s - %(mois_fin)s)" % sem + pdf_title += " semestre %s %s" % ( + sem["semestre_id"], + sem.get("modalite", ""), + ) + pdf_title += f"
Notes du module {module.code} - {module.titre}" + pdf_title += "
Evaluation : %(description)s " % e + if len(e["jour"]) > 0: + pdf_title += " (%(jour)s)" % e + pdf_title += "(noté sur %(note_max)s )

" % e else: - pdf_title = "%(description)s " % e + hh = " %s, %s (%d étudiants)" % ( + E["description"], + gr_title, + len(etudid_etats), + ) + if len(e["jour"]) > 0: + pdf_title = "%(description)s (%(jour)s)" % e + else: + pdf_title = "%(description)s " % e + + caption = hh html_title = "" base_url = "evaluation_listenotes?evaluation_id=%s" % E["evaluation_id"] + gl html_next_section = ( @@ -499,7 +528,7 @@ def _make_table_notes( title += " %s" % gr_title caption = title html_next_section = "" - if format == "pdf": + if format == "pdf" or format == "bordereau": caption = "" # same as pdf_title pdf_title = title html_title = f"""

Notes {module.type_name()} Bordereau de Signatures (version PDF)', "\n",

Répartition des notes:

" + histo + "