diff --git a/app/but/jury_but.py b/app/but/jury_but.py index fb255f0d2..840933c08 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -571,6 +571,32 @@ class DecisionsProposeesAnnee(DecisionsProposees): # s'il n'y a pas de codee, efface dec.record(dec.codes[0]) + def erase(self): + """Efface les décisions de jury de cet étudiant + pour cette année: décisions d'UE, de RCUE, d'année, + et autorisations d'inscription émises. + """ + for dec_ue in self.decisions_ues.values(): + dec_ue.erase() + for dec_rcue in self.decisions_rcue_by_niveau.values(): + dec_rcue.erase() + if self.formsemestre_impair: + ScolarAutorisationInscription.delete_autorisation_etud( + self.etud.id, self.formsemestre_impair.id + ) + if self.formsemestre_pair: + ScolarAutorisationInscription.delete_autorisation_etud( + self.etud.id, self.formsemestre_pair.id + ) + validations = ApcValidationAnnee.query.filter_by( + etudid=self.etud.id, + formsemestre_id=self.formsemestre_impair.id, + ordre=self.annee_but, + ) + for validation in validations: + db.session.delete(validation) + db.session.flush() + class DecisionsProposeesRCUE(DecisionsProposees): """Liste des codes de décisions que l'on peut proposer pour @@ -637,6 +663,14 @@ class DecisionsProposeesRCUE(DecisionsProposees): db.session.add(self.validation) self.recorded = True + def erase(self): + """Efface la décision de jury de cet étudiant pour cet RCUE""" + # par prudence, on requete toutes les validations, en cas de doublons + validations = self.rcue.query_validations() + for validation in validations: + db.session.delete(validation) + db.session.flush() + class DecisionsProposeesUE(DecisionsProposees): """Décisions de jury sur une UE du BUT @@ -743,6 +777,16 @@ class DecisionsProposeesUE(DecisionsProposees): db.session.add(self.validation) self.recorded = True + def erase(self): + """Efface la décision de jury de cet étudiant pour cette UE""" + # par prudence, on requete toutes les validations, en cas de doublons + validations = ScolarFormSemestreValidation.query.filter_by( + etudid=self.etud.id, formsemestre_id=self.formsemestre.id, ue_id=self.ue.id + ) + for validation in validations: + db.session.delete(validation) + db.session.flush() + class BUTCursusEtud: # WIP TODO """Validation du cursus d'un étudiant""" diff --git a/app/scodoc/sco_pvjury.py b/app/scodoc/sco_pvjury.py index cfa7bae61..7ddc0aa1d 100644 --- a/app/scodoc/sco_pvjury.py +++ b/app/scodoc/sco_pvjury.py @@ -492,9 +492,7 @@ def pvjury_table( def formsemestre_pvjury(formsemestre_id, format="html", publish=True): - """Page récapitulant les décisions de jury - dpv: result of dict_pvjury - """ + """Page récapitulant les décisions de jury""" footer = html_sco_header.sco_footer() dpv = dict_pvjury(formsemestre_id, with_prev=True) diff --git a/app/templates/confirm_dialog.html b/app/templates/confirm_dialog.html new file mode 100644 index 000000000..8067f6c74 --- /dev/null +++ b/app/templates/confirm_dialog.html @@ -0,0 +1,22 @@ +{# -*- mode: jinja-html -*- #} +{% extends 'base.html' %} +{% import 'bootstrap/wtf.html' as wtf %} + +{% block app_content %} + +