1
0
forked from ScoDoc/ScoDoc

premier jet du problème d'étudiants changeant de département

This commit is contained in:
leonard_montalbano 2022-05-12 16:14:36 +02:00
parent c4fce43b1a
commit 43cbb8537c

View File

@ -1,4 +1,5 @@
#################################################### Etudiants ######################################################## #################################################### Etudiants ########################################################
import json
from flask import jsonify from flask import jsonify
@ -14,6 +15,50 @@ from app.scodoc import sco_groups
from app.scodoc.sco_permissions import Permission from app.scodoc.sco_permissions import Permission
@bp.route("/etudiant/test/etudid/<int:etudid>", methods=["GET"])
@bp.route("/etudiant/test/nip/<string:nip>", methods=["GET"])
@bp.route("/etudiant/test/ine/<string:ine>", methods=["GET"])
@token_auth.login_required
@token_permission_required(Permission.APIView)
def etudiant_test(etudid: int = None, nip: int = None, ine: int = None):
# Récupération de tous les étudiants qui portent le même code_nip
etus = models.Identite.query.filter_by(code_nip=nip).all()
# Mise en place d'une liste des différents etudid de l'étudiant
list_id_etu = []
for etu in etus:
list_id_etu.append(etu.id)
list_res = []
# Pour chaque etudid de l'étudiant
for i in range(len(list_id_etu)):
etudid = list_id_etu[i]
# on va chercher les formsemestres auquel il est inscrit
formsemestres = models.FormSemestre.query.filter(
models.FormSemestreInscription.etudid == etudid,
models.FormSemestreInscription.formsemestre_id == models.FormSemestre.id,
).order_by(models.FormSemestre.date_debut)
# récupération du dernier en date
res = formsemestres[-1]
list_res.append(res)
# trie les formsemestres trouvé de l'étudiants par date
def sort_by_key(list):
return list.date_debut
list_res_sorted = sorted(list_res, key=sort_by_key)
# récupération du dernier formsemestre en date tout départements confondu
res = list_res_sorted[-1].to_dict()
return jsonify(res)
# return error_response(504, message="not implemented")
@bp.route("/etudiants/courant", defaults={"long": False}) @bp.route("/etudiants/courant", defaults={"long": False})
@bp.route("/etudiants/courant/long", defaults={"long": True}) @bp.route("/etudiants/courant/long", defaults={"long": True})
@token_auth.login_required @token_auth.login_required