prise en compte des remarques de formations.py

This commit is contained in:
leonard_montalbano 2022-04-26 15:46:28 +02:00
parent c6187cbe0d
commit ce2b7334c6

View File

@ -4,9 +4,8 @@ from flask import jsonify
from app import models from app import models
from app.api import bp from app.api import bp
from app.api.errors import error_response 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.scodoc.sco_formations import formation_export from app.scodoc.sco_formations import formation_export
from app.scodoc.sco_moduleimpl import moduleimpl_list
from app.scodoc.sco_permissions import Permission from app.scodoc.sco_permissions import Permission
@ -34,7 +33,7 @@ def formations_by_id(formation_id: int):
formation_id : l'id d'une formation formation_id : l'id d'une formation
""" """
# Récupération de la formation # Récupération de la formation
forma = models.Formation.query.filter_by(id=formation_id).first() forma = models.Formation.query.filter_by(id=formation_id).first_or_404()
# Mise en forme des données # Mise en forme des données
data = [d.to_dict() for d in forma] data = [d.to_dict() for d in forma]
@ -72,12 +71,14 @@ def formsemestre_apo(etape_apo: int):
etape_apo : l'id d'une étape apogée etape_apo : l'id d'une étape apogée
""" """
# Récupération des formsemestres # Récupération des formsemestres
apos = models.FormSemestreEtape.query.filter_by(etape_apo=etape_apo).all() apos = models.FormSemestreEtape.query.filter_by(etape_apo=etape_apo)
data = [] data = []
# Filtre les formsemestres correspondant + mise en forme des données # Filtre les formsemestres correspondant + mise en forme des données
for apo in apos: for apo in apos:
formsem = models.FormSemestre.query.filter_by(id=apo["formsemestre_id"]).first() formsem = models.FormSemestre.query.filter_by(
id=apo["formsemestre_id"]
).first_or_404()
data.append(formsem.to_dict()) data.append(formsem.to_dict())
return jsonify(data) return jsonify(data)
@ -93,37 +94,32 @@ def moduleimpls(moduleimpl_id: int):
moduleimpl_id : l'id d'un moduleimpl moduleimpl_id : l'id d'un moduleimpl
""" """
# Récupération des tous les moduleimpl # Récupération des tous les moduleimpl
list_moduleimpls = models.ModuleImpl.query.filter_by(id=moduleimpl_id).all() list_moduleimpls = models.ModuleImpl.query.filter_by(id=moduleimpl_id)
# Mise en forme des données # Mise en forme des données
data = list_moduleimpls[0].to_dict() data = [moduleimpl.to_dict() for moduleimpl in list_moduleimpls]
return jsonify(data) return jsonify(data)
@bp.route( @bp.route(
"/formations/moduleimpl/<int:moduleimpl_id>/formsemestre/<int:formsemestre_id>", "/formations/moduleimpl/formsemestre/<int:formsemestre_id>/liste",
methods=["GET"], methods=["GET"],
) ) # XXX TODO penser à changer la route sur la doc
@token_permission_required(Permission.APIView) @token_permission_required(Permission.APIView)
def moduleimpls_sem(moduleimpl_id: int, formsemestre_id: int): def moduleimpls_sem(formsemestre_id: int):
""" """
Retourne la liste des moduleimpl d'un semestre Retourne la liste des moduleimpl d'un semestre
moduleimpl_id : l'id d'un moduleimpl moduleimpl_id : l'id d'un moduleimpl
formsemestre_id : l'id d'un formsemestre formsemestre_id : l'id d'un formsemestre
""" """
# Fonction utilisée : app.scodoc.sco_moduleimpl.moduleimpl_list() formsemestre = models.FormSemestre.query.filter_by(
id=formsemestre_id
).first_or_404()
# Utilisation de la fonction moduleimpl_list moduleimpls = formsemestre.modimpls_sorted
data = moduleimpl_list(moduleimpl_id, formsemestre_id)
if len(data) == 0: data = [moduleimpl.to_dict() for moduleimpl in moduleimpls]
return error_response(
409,
message="La requête ne peut être traitée en létat actuel. \n"
"Aucun moduleimpl ne correspond au 'moduleimpl_id' ou "
"'formsemestre_id' renseigné",
)
return jsonify(data) return jsonify(data)