########################################## Formsemestres ############################################################## 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.tools import get_etu_from_request from app.scodoc.sco_bulletins_json import make_json_formsemestre_bulletinetud 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"]) @token_auth.login_required @token_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 formsemetre = models.FormSemestre.query.filter_by(id=formsemestre_id).first() # Mise en forme des données data = formsemetre.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"], ) @token_auth.login_required @token_permission_required(Permission.APIView) def etudiant_bulletin(formsemestre_id, dept, format="json", etudid: int = None, nip: int = None, ine: int = None, ):#*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() # make_json_formsemestre_bulletinetud app.set_sco_dept(dept) if etudid is None: # Récupération de l'étudiant etu = get_etu_from_request(etudid, nip, ine) etudid = etu.etudid data = make_json_formsemestre_bulletinetud(formsemestre_id, etudid) return 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"]) @token_auth.login_required @token_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"]) @token_auth.login_required @token_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)