diff --git a/app/scodoc/sco_evaluation_edit.py b/app/scodoc/sco_evaluation_edit.py index 75eb56136..7d9f6f040 100644 --- a/app/scodoc/sco_evaluation_edit.py +++ b/app/scodoc/sco_evaluation_edit.py @@ -375,65 +375,64 @@ def evaluation_create_form( + render_template( "scodoc/help/evaluations.j2", is_apc=is_apc, modimpl=modimpl ) - + render_template("sco_timepicker.j2") ), ) - elif tf[0] == -1: + if tf[0] == -1: return flask.redirect(dest_url) + + # form submission + args = tf[2] + # modifie le codage des dates + # (nb: ce formulaire ne permet de créer que des évaluation sur la même journée) + date_debut = scu.convert_fr_date(args["jour"]) if args.get("jour") else None + args["date_debut"] = date_debut + args["date_fin"] = date_debut # même jour + args.pop("jour", None) + if date_debut and args.get("heure_debut"): + try: + heure_debut = heure_to_time(args["heure_debut"]) + except ValueError as exc: + raise ScoValueError("Heure début invalide") from exc + args["date_debut"] = datetime.datetime.combine(date_debut, heure_debut) + args.pop("heure_debut", None) + # note: ce formulaire ne permet de créer que des évaluations + # avec debut et fin sur le même jour. + if date_debut and args.get("heure_fin"): + try: + heure_fin = heure_to_time(args["heure_fin"]) + except ValueError as exc: + raise ScoValueError("Heure fin invalide") from exc + args["date_fin"] = datetime.datetime.combine(date_debut, heure_fin) + args.pop("heure_fin", None) + # Blocage: + if args.get("blocked"): + if args.get("blocked_until"): + try: + args["blocked_until"] = datetime.datetime.strptime( + args["blocked_until"], scu.DATE_FMT + ) + except ValueError as exc: + raise ScoValueError("Date déblocage (j/m/a) invalide") from exc + else: # bloquage coché sans date + args["blocked_until"] = Evaluation.BLOCKED_FOREVER + else: # si pas coché, efface date déblocage + args["blocked_until"] = None + # + if edit: + check_and_convert_evaluation_args(args, modimpl) + evaluation.from_dict(args) else: - # form submission - args = tf[2] - # modifie le codage des dates - # (nb: ce formulaire ne permet de créer que des évaluation sur la même journée) - date_debut = scu.convert_fr_date(args["jour"]) if args.get("jour") else None - args["date_debut"] = date_debut - args["date_fin"] = date_debut # même jour - args.pop("jour", None) - if date_debut and args.get("heure_debut"): - try: - heure_debut = heure_to_time(args["heure_debut"]) - except ValueError as exc: - raise ScoValueError("Heure début invalide") from exc - args["date_debut"] = datetime.datetime.combine(date_debut, heure_debut) - args.pop("heure_debut", None) - # note: ce formulaire ne permet de créer que des évaluations - # avec debut et fin sur le même jour. - if date_debut and args.get("heure_fin"): - try: - heure_fin = heure_to_time(args["heure_fin"]) - except ValueError as exc: - raise ScoValueError("Heure fin invalide") from exc - args["date_fin"] = datetime.datetime.combine(date_debut, heure_fin) - args.pop("heure_fin", None) - # Blocage: - if args.get("blocked"): - if args.get("blocked_until"): - try: - args["blocked_until"] = datetime.datetime.strptime( - args["blocked_until"], scu.DATE_FMT - ) - except ValueError as exc: - raise ScoValueError("Date déblocage (j/m/a) invalide") from exc - else: # bloquage coché sans date - args["blocked_until"] = Evaluation.BLOCKED_FOREVER - else: # si pas coché, efface date déblocage - args["blocked_until"] = None - # - if edit: - check_and_convert_evaluation_args(args, modimpl) - evaluation.from_dict(args) - else: - # création d'une evaluation - evaluation = Evaluation.create(moduleimpl=modimpl, **args) - db.session.add(evaluation) - db.session.commit() - evaluation_id = evaluation.id - if is_apc: - # Set poids - evaluation = db.session.get(Evaluation, evaluation_id) - for ue in sem_ues: - evaluation.set_ue_poids(ue, tf[2][f"poids_{ue.id}"]) + # création d'une evaluation + evaluation = Evaluation.create(moduleimpl=modimpl, **args) db.session.add(evaluation) db.session.commit() - sco_cache.invalidate_formsemestre(evaluation.moduleimpl.formsemestre.id) - return flask.redirect(dest_url) + evaluation_id = evaluation.id + if is_apc: + # Set poids + evaluation = db.session.get(Evaluation, evaluation_id) + for ue in sem_ues: + evaluation.set_ue_poids(ue, tf[2][f"poids_{ue.id}"]) + db.session.add(evaluation) + db.session.commit() + sco_cache.invalidate_formsemestre(evaluation.moduleimpl.formsemestre.id) + return flask.redirect(dest_url) diff --git a/app/templates/assiduites/pages/ajout_assiduite_etud.j2 b/app/templates/assiduites/pages/ajout_assiduite_etud.j2 index 561f18cc7..40ed3f395 100644 --- a/app/templates/assiduites/pages/ajout_assiduite_etud.j2 +++ b/app/templates/assiduites/pages/ajout_assiduite_etud.j2 @@ -121,5 +121,4 @@ div.submit > input { {% block scripts %} {{ super() }} -{% include "sco_timepicker.j2" %} {% endblock scripts %} diff --git a/app/templates/assiduites/pages/ajout_justificatif_etud.j2 b/app/templates/assiduites/pages/ajout_justificatif_etud.j2 index 6eaef6f48..b3c6483b3 100644 --- a/app/templates/assiduites/pages/ajout_justificatif_etud.j2 +++ b/app/templates/assiduites/pages/ajout_justificatif_etud.j2 @@ -191,7 +191,6 @@ div.submit > input { {% block scripts %} {{ super() }} -{% include "sco_timepicker.j2" %} -{% include "sco_timepicker.j2" %} {% endblock scripts %} \ No newline at end of file diff --git a/app/templates/assiduites/pages/signal_assiduites_group.j2 b/app/templates/assiduites/pages/signal_assiduites_group.j2 index 98591ce5a..b2be19632 100644 --- a/app/templates/assiduites/pages/signal_assiduites_group.j2 +++ b/app/templates/assiduites/pages/signal_assiduites_group.j2 @@ -12,7 +12,6 @@ -{% include "sco_timepicker.j2" %} -{% include "sco_timepicker.j2" %} +{% include "sco_timepicker.j2" %} + {% endblock %} {% macro render_field_errors(form, field_name) %} diff --git a/app/templates/scolar/formulaire_feuille_appel.j2 b/app/templates/scolar/formulaire_feuille_appel.j2 index 4543b7245..6ebf0f45c 100644 --- a/app/templates/scolar/formulaire_feuille_appel.j2 +++ b/app/templates/scolar/formulaire_feuille_appel.j2 @@ -51,7 +51,6 @@ {% endblock app_content %} {% block scripts %} {{super()}} -{% include "sco_timepicker.j2" %} {% endblock scripts %}