1
0
forked from ScoDoc/ScoDoc

Renforce les vérifications clonage étudiant dans autre dept

This commit is contained in:
Emmanuel Viennet 2023-09-26 22:40:34 +02:00
parent 77993ec9e7
commit 320a0f110f
2 changed files with 20 additions and 1 deletions

View File

@ -96,6 +96,25 @@ class Identite(db.Model):
raise ScoValueError( raise ScoValueError(
"clonage étudiant: le département destination est identique à celui de départ" "clonage étudiant: le département destination est identique à celui de départ"
) )
# Vérifie les contraintes d'unicité
# ("dept_id", "code_nip") et ("dept_id", "code_ine")
if (
self.code_nip is not None
and Identite.query.filter_by(
dept_id=new_dept_id, code_nip=self.code_nip
).count()
> 0
) or (
self.code_ine is not None
and Identite.query.filter_by(
dept_id=new_dept_id, code_ine=self.code_ine
).count()
> 0
):
raise ScoValueError(
"""clonage étudiant: un étudiant de même code existe déjà
dans le département destination"""
)
d = dict(self.__dict__) d = dict(self.__dict__)
d.pop("id", None) # get rid of id d.pop("id", None) # get rid of id
d.pop("_sa_instance_state", None) # get rid of SQLAlchemy special attr d.pop("_sa_instance_state", None) # get rid of SQLAlchemy special attr

View File

@ -1,7 +1,7 @@
# -*- mode: python -*- # -*- mode: python -*-
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
SCOVERSION = "9.6.35" SCOVERSION = "9.6.36"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"