API assiduite: ajoute NIP aux assiduites. + modifie relations Assuiduite/Identite.

This commit is contained in:
Emmanuel Viennet 2023-07-29 18:32:29 +02:00
parent f3ceaff307
commit cab72caebe
4 changed files with 13 additions and 4 deletions

View File

@ -59,6 +59,10 @@ class Assiduite(db.Model):
est_just = db.Column(db.Boolean, server_default="false", nullable=False) est_just = db.Column(db.Boolean, server_default="false", nullable=False)
# Déclare la relation "joined" car on va très souvent vouloir récupérer
# l'étudiant en même tant que l'assiduité (perf.: évite nouvelle requete SQL)
etudiant = db.relationship("Identite", back_populates="assiduites", lazy="joined")
def to_dict(self, format_api=True) -> dict: def to_dict(self, format_api=True) -> dict:
"""Retourne la représentation json de l'assiduité""" """Retourne la représentation json de l'assiduité"""
etat = self.etat etat = self.etat
@ -75,6 +79,7 @@ class Assiduite(db.Model):
data = { data = {
"assiduite_id": self.id, "assiduite_id": self.id,
"etudid": self.etudid, "etudid": self.etudid,
"nip": self.etudiant.code_nip,
"moduleimpl_id": self.moduleimpl_id, "moduleimpl_id": self.moduleimpl_id,
"date_debut": self.date_debut, "date_debut": self.date_debut,
"date_fin": self.date_fin, "date_fin": self.date_fin,
@ -202,6 +207,9 @@ class Justificatif(db.Model):
# Archive_id -> sco_archives_justificatifs.py # Archive_id -> sco_archives_justificatifs.py
fichier = db.Column(db.Text()) fichier = db.Column(db.Text())
# XXX Faudrait-il le déclarer "joined" comme dans Assiduite ?
etudiant = db.relationship("Identite", back_populates="justificatifs")
def to_dict(self, format_api: bool = False) -> dict: def to_dict(self, format_api: bool = False) -> dict:
"""transformation de l'objet en dictionnaire sérialisable""" """transformation de l'objet en dictionnaire sérialisable"""

View File

@ -74,8 +74,10 @@ class Identite(db.Model):
) )
# Relations avec les assiduites et les justificatifs # Relations avec les assiduites et les justificatifs
assiduites = db.relationship("Assiduite", backref="etudiant", lazy="dynamic") assiduites = db.relationship("Assiduite", back_populates="etudiant", lazy="dynamic")
justificatifs = db.relationship("Justificatif", backref="etudiant", lazy="dynamic") justificatifs = db.relationship(
"Justificatif", back_populates="etudiant", lazy="dynamic"
)
def __repr__(self): def __repr__(self):
return ( return (

View File

@ -24,6 +24,7 @@ MODULE = 1
ASSIDUITES_FIELDS = { ASSIDUITES_FIELDS = {
"assiduite_id": int, "assiduite_id": int,
"etudid": int, "etudid": int,
"nip": str,
"moduleimpl_id": int, "moduleimpl_id": int,
"date_debut": str, "date_debut": str,
"date_fin": str, "date_fin": str,

View File

@ -36,9 +36,7 @@ from tests.api.tools_test_api import (
SAISIE_NOTES_FIELDS, SAISIE_NOTES_FIELDS,
FORMSEMESTRE_ETUD_FIELDS, FORMSEMESTRE_ETUD_FIELDS,
FSEM_FIELDS, FSEM_FIELDS,
FSEM_FIELDS,
UE_FIELDS, UE_FIELDS,
MODULE_FIELDS,
FORMSEMESTRE_BULLETINS_FIELDS, FORMSEMESTRE_BULLETINS_FIELDS,
FORMSEMESTRE_BULLETINS_ETU_FIELDS, FORMSEMESTRE_BULLETINS_ETU_FIELDS,
FORMSEMESTRE_BULLETINS_FORMATION_FIELDS, FORMSEMESTRE_BULLETINS_FORMATION_FIELDS,