diff --git a/app/but/jury_but.py b/app/but/jury_but.py index bb73af4311..416850092d 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -792,7 +792,7 @@ class DecisionsProposeesAnnee(DecisionsProposees): code=code, ) else: # Update validation année BUT - self.validation.etud = self.etud + assert self.validation.etudid == self.etud.id self.validation.formsemestre = self.formsemestre_impair self.validation.formation_id = self.formsemestre.formation_id self.validation.ordre = self.annee_but diff --git a/app/models/but_validations.py b/app/models/but_validations.py index 4054c9f43b..d823b8f2f2 100644 --- a/app/models/but_validations.py +++ b/app/models/but_validations.py @@ -306,7 +306,9 @@ class ApcValidationAnnee(db.Model): __tablename__ = "apc_validation_annee" # Assure unicité de la décision: - __table_args__ = (db.UniqueConstraint("etudid", "annee_scolaire", "ordre"),) + __table_args__ = ( + db.UniqueConstraint("etudid", "ordre", "formation_id"), + ) # il aurait été plus intelligent de mettre ici le refcomp id = db.Column(db.Integer, primary_key=True) etudid = db.Column( db.Integer, @@ -320,7 +322,7 @@ class ApcValidationAnnee(db.Model): db.Integer, db.ForeignKey("notes_formsemestre.id"), nullable=True ) "le semestre IMPAIR (le 1er) de l'année" - formation_id = db.Column( + formation_id = db.Column( # il aurait été plus intelligent de mettre ici le refcomp db.Integer, db.ForeignKey("notes_formations.id"), nullable=False, diff --git a/migrations/versions/829683efddc4_change_apcvalidationannee.py b/migrations/versions/829683efddc4_change_apcvalidationannee.py new file mode 100644 index 0000000000..8955a1a3df --- /dev/null +++ b/migrations/versions/829683efddc4_change_apcvalidationannee.py @@ -0,0 +1,44 @@ +"""Change ApcValidationAnnee + +Revision ID: 829683efddc4 +Revises: c701224fa255 +Create Date: 2023-06-28 09:47:16.591028 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "829683efddc4" +down_revision = "c701224fa255" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table("apc_validation_annee", schema=None) as batch_op: + batch_op.drop_constraint( + "apc_validation_annee_etudid_annee_scolaire_ordre_key", type_="unique" + ) + # batch_op.create_unique_constraint( + # "apc_validation_annee_etudid_formation_ordre_key", + # ["etudid", "ordre", "formation_id"], + # ) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table("apc_validation_annee", schema=None) as batch_op: + # batch_op.drop_constraint( + # "apc_validation_annee_etudid_formation_ordre_key", type_="unique" + # ) + batch_op.create_unique_constraint( + "apc_validation_annee_etudid_annee_scolaire_ordre_key", + ["etudid", "annee_scolaire", "ordre"], + ) + + # ### end Alembic commands ### diff --git a/sco_version.py b/sco_version.py index 282f517e7f..aa68bec3df 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.4.93" +SCOVERSION = "9.4.94" SCONAME = "ScoDoc"