########################################## 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_permission_required from app.api.tools import get_etu_from_etudid_or_nip_or_ine from app.scodoc.sco_bulletins import get_formsemestre_bulletin_etud_json 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 @bp.route("/formations/formsemestre/", methods=["GET"]) @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_or_404() # 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_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 try: app.set_sco_dept(dept) except: return error_response( 409, message="La requête ne peut être traitée en l’état actuel.\n " "Veilliez vérifier que le nom de département est valide", ) if etudid is None: # Récupération de l'étudiant try: etu = get_etu_from_etudid_or_nip_or_ine(etudid, nip, ine) etudid = etu.etudid 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", ) 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_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_bulletins.get_formsemestre_bulletin_etud_json() 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() app.set_sco_dept(dept.acronym) etuds = formsemestre.etuds data = [] for etu in etuds: bul_etu = get_formsemestre_bulletin_etud_json(formsemestre, etu) data.append(bul_etu.json) return jsonify(data) @bp.route("/formsemestre//jury", methods=["GET"]) @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() 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() app.set_sco_dept(dept.acronym) data = formsemestre_pvjury(formsemestre_id) # try: # # Utilisation de la fonction formsemestre_pvjury # data = formsemestre_pvjury(formsemestre_id) # except AttributeError: # return error_response( # 409, # message="La requête ne peut être traitée en l’état actuel. \n" # "Veillez vérifier la conformité du 'formation_id'", # ) return jsonify(data)