Merge branch 'new_api' of https://scodoc.org/git/ScoDoc/ScoDoc into new_api
This commit is contained in:
commit
c3eeec29d8
@ -1,16 +1,16 @@
|
||||
#################################################### Etudiants ########################################################
|
||||
import app
|
||||
|
||||
from flask import jsonify
|
||||
|
||||
import app
|
||||
from app import models
|
||||
from app.api import bp
|
||||
from app.api.errors import error_response
|
||||
from app.api.auth import token_auth, token_permission_required
|
||||
from app.api.auth import token_permission_required
|
||||
from app.api.tools import get_etu_from_request
|
||||
from app.models import FormSemestreInscription, FormSemestre, Identite
|
||||
from app.scodoc.sco_bulletins import get_formsemestre_bulletin_etud_json
|
||||
from app.scodoc.sco_groups import get_etud_groups
|
||||
from app.scodoc import sco_bulletins
|
||||
from app.scodoc import sco_groups
|
||||
from app.scodoc.sco_permissions import Permission
|
||||
|
||||
|
||||
@ -46,13 +46,14 @@ def etudiants_courant():
|
||||
...
|
||||
"""
|
||||
# Récupération de tous les étudiants
|
||||
etus = Identite.query.filter(
|
||||
etuds = Identite.query.filter(
|
||||
Identite.id == FormSemestreInscription.etudid,
|
||||
FormSemestreInscription.formsemestre_id == FormSemestre.id,
|
||||
FormSemestre.date_debut <= app.db.func.now(),
|
||||
FormSemestre.date_fin >= app.db.func.now())
|
||||
FormSemestre.date_fin >= app.db.func.now(),
|
||||
)
|
||||
|
||||
data = [etu.to_dict_bul(include_urls=False) for etu in etus]
|
||||
data = [etu.to_dict_bul(include_urls=False) for etu in etuds]
|
||||
|
||||
return jsonify(data)
|
||||
|
||||
@ -97,7 +98,7 @@ def etudiant(etudid: int = None, nip: int = None, ine: int = None):
|
||||
@token_permission_required(Permission.APIView)
|
||||
def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None):
|
||||
"""
|
||||
Retourne la liste des semestres qu'un étudiant a suivis
|
||||
Retourne la liste des semestres qu'un étudiant a suivi, triés par ordre chronologique.
|
||||
|
||||
etudid : l'etudid d'un étudiant
|
||||
nip : le code nip d'un étudiant
|
||||
@ -108,7 +109,6 @@ def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None)
|
||||
{
|
||||
"titre": "master machine info",
|
||||
"gestion_semestrielle": false,
|
||||
"scodoc7_id": null,
|
||||
"date_debut": "01/09/2021",
|
||||
"bul_bgcolor": null,
|
||||
"date_fin": "15/12/2022",
|
||||
@ -139,27 +139,14 @@ def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None)
|
||||
]
|
||||
"""
|
||||
# Récupération de l'étudiant
|
||||
etu = get_etu_from_request(etudid, nip, ine)
|
||||
etud = get_etu_from_request(etudid, nip, ine)
|
||||
|
||||
# Récupération de toutes les inscriptions de l'étudiant
|
||||
formsemestres_inscriptions = models.FormSemestreInscription.query.filter_by(
|
||||
etud=etu
|
||||
).all()
|
||||
formsemestres = models.FormSemestre.query.filter(
|
||||
models.FormSemestreInscription.etudid == etud.id,
|
||||
models.FormSemestreInscription.formsemestre_id == models.FormSemestre.id,
|
||||
).order_by(models.FormSemestre.date_debut)
|
||||
|
||||
formsemestres = []
|
||||
# Récupération des formsemestres contenant les inscriptions de l'étudiant
|
||||
for formsemestre_inscription in formsemestres_inscriptions:
|
||||
res = models.FormSemestre.query.filter_by(
|
||||
id=formsemestre_inscription.formsemestre_id
|
||||
).first_or_404()
|
||||
formsemestres.append(res)
|
||||
|
||||
data = []
|
||||
# Mise en forme des données
|
||||
for formsemestre in formsemestres:
|
||||
data.append(formsemestre.to_dict())
|
||||
|
||||
return jsonify(data)
|
||||
return jsonify([formsemestre.to_dict() for formsemestre in formsemestres])
|
||||
|
||||
|
||||
@bp.route(
|
||||
@ -188,7 +175,9 @@ def etudiant_bulletin_semestre(
|
||||
"""
|
||||
# Fonction utilisée : app.scodoc.sco_bulletins_json.make_json_formsemestre_bulletinetud()
|
||||
|
||||
formsemestre = models.FormSemestre.query.filter_by(id=formsemestre_id).first_or_404()
|
||||
formsemestre = models.FormSemestre.query.filter_by(
|
||||
id=formsemestre_id
|
||||
).first_or_404()
|
||||
|
||||
dept = models.Departement.query.filter_by(id=formsemestre.dept_id).first_or_404()
|
||||
|
||||
@ -201,10 +190,10 @@ def etudiant_bulletin_semestre(
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
||||
"Veilliez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
)
|
||||
|
||||
return get_formsemestre_bulletin_etud_json(formsemestre, etu)
|
||||
return sco_bulletins.get_formsemestre_bulletin_etud_json(formsemestre, etu)
|
||||
|
||||
|
||||
@bp.route(
|
||||
@ -255,8 +244,6 @@ def etudiant_groups(
|
||||
}
|
||||
]
|
||||
"""
|
||||
# Fonction utilisée : app.scodoc.sco_groups.get_etud_groups()
|
||||
|
||||
if etudid is None:
|
||||
# Récupération de l'étudiant
|
||||
try:
|
||||
@ -266,19 +253,18 @@ def etudiant_groups(
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
||||
"Veilliez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||
)
|
||||
|
||||
# Récupération du formsemestre
|
||||
sem = models.FormSemestre.query.filter_by(id=formsemestre_id).first_or_404()
|
||||
try:
|
||||
# Utilisation de la fonction get_etud_groups
|
||||
data = get_etud_groups(etudid, sem.id)
|
||||
data = sco_groups.get_etud_groups(etudid, sem.id)
|
||||
except AttributeError:
|
||||
return error_response(
|
||||
409,
|
||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
||||
"Veilliez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide"
|
||||
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide"
|
||||
" et le formsemestre_id sont valides",
|
||||
)
|
||||
|
||||
|
@ -13,10 +13,10 @@ def get_etu_from_request(etudid, nip, ine):
|
||||
"""
|
||||
if etudid is None:
|
||||
if nip is None: # si ine
|
||||
etu = models.Identite.query.filter_by(code_ine=str(ine)).first()
|
||||
etud = models.Identite.query.filter_by(code_ine=str(ine)).first()
|
||||
else: # si nip
|
||||
etu = models.Identite.query.filter_by(code_nip=str(nip)).first()
|
||||
etud = models.Identite.query.filter_by(code_nip=str(nip)).first()
|
||||
else: # si etudid
|
||||
etu = models.Identite.query.filter_by(id=etudid).first()
|
||||
etud = models.Identite.query.filter_by(id=etudid).first()
|
||||
|
||||
return etu
|
||||
return etud
|
||||
|
Loading…
Reference in New Issue
Block a user