########################################## Formsemestres ############################################################## from flask import jsonify from app import models from app.api import bp from app.api.errors import error_response from app.decorators import permission_required from app.scodoc.sco_bulletins import formsemestre_bulletinetud_dict from app.scodoc.sco_permissions import Permission from app.scodoc.sco_pvjury import formsemestre_pvjury from app.scodoc.sco_recapcomplet import formsemestre_recapcomplet @bp.route("/formations/formsemestre/", methods=["GET"]) @permission_required(Permission.APIView) def formsemestre(formsemestre_id: int): """ Retourne l'information sur le formsemestre correspondant au formsemestre_id formsemestre_id : l'id d'un formsemestre """ # Récupération de tous les formsemestres list_formsemetre = models.FormSemestre.query.filter_by(id=formsemestre_id) # Mise en forme des données data = list_formsemetre[0].to_dict() return jsonify(data) @bp.route( "/formsemestre//departements//etudiant/etudid//bulletin", methods=["GET"], ) @bp.route( "/formsemestre//departements//etudiant/nip//bulletin", methods=["GET"], ) @bp.route( "/formsemestre//departements//etudiant/ine//bulletin", methods=["GET"], ) @permission_required(Permission.APIView) def etudiant_bulletin(formsemestre_id, dept, etudid, format="json", *args, size): """ Retourne le bulletin de note d'un étudiant formsemestre_id : l'id d'un formsemestre etudid : l'etudid d'un étudiant nip : le code nip d'un étudiant ine : le code ine d'un étudiant """ # Fonction utilisée : app.scodoc.sco_bulletins.formsemestre_billetinetud_dict() data = [] if args[0] == "short": data = formsemestre_bulletinetud_dict(formsemestre_id, etudid, version=args[0]) elif args[0] == "selectevals": data = formsemestre_bulletinetud_dict(formsemestre_id, etudid, version=args[0]) elif args[0] == "long": data = formsemestre_bulletinetud_dict(formsemestre_id, etudid) else: return error_response(409, message="La requête ne peut être traitée en l’état actuel") return jsonify(data) @bp.route("/formsemestre//bulletins", methods=["GET"]) @permission_required(Permission.APIView) def bulletins(formsemestre_id: int): """ Retourne les bulletins d'un formsemestre donné formsemestre_id : l'id d'un formesemestre """ # Fonction utilisée : app.scodoc.sco_recapcomplet.formsemestre_recapcomplet() try: # Utilisation de la fonction formsemestre_recapcomplet data = formsemestre_recapcomplet(formsemestre_id) except ValueError: return error_response(409, message="La requête ne peut être traitée en l’état actuel") return jsonify(data) @bp.route("/formsemestre//jury", methods=["GET"]) @permission_required(Permission.APIView) def jury(formsemestre_id: int): """ Retourne le récapitulatif des décisions jury formsemestre_id : l'id d'un formsemestre """ # Fonction utilisée : app.scodoc.sco_pvjury.formsemestre_pvjury() try: # Utilisation de la fonction formsemestre_pvjury data = formsemestre_pvjury(formsemestre_id) except ValueError: return error_response(409, message="La requête ne peut être traitée en l’état actuel") return jsonify(data)