From 458aae82d00f2171bd8b24ce7f1c2037f607b59f Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Tue, 26 Apr 2022 13:46:09 +0200 Subject: [PATCH] relecture etudiants.py --- app/api/etudiants.py | 60 +++++++++++++++++--------------------------- app/api/tools.py | 8 +++--- 2 files changed, 27 insertions(+), 41 deletions(-) diff --git a/app/api/etudiants.py b/app/api/etudiants.py index abf951756..5d50cf2a4 100644 --- a/app/api/etudiants.py +++ b/app/api/etudiants.py @@ -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", ) diff --git a/app/api/tools.py b/app/api/tools.py index 4ac0aeda8..775660bdb 100644 --- a/app/api/tools.py +++ b/app/api/tools.py @@ -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