Compare commits

...

4 Commits

Author SHA1 Message Date
leonard_montalbano
6e72f35334 rectification de la route /departements 2022-04-28 09:06:20 +02:00
e2fa39393c Modif valeur permissions API 2022-04-27 09:46:51 +02:00
50d26db09f Ajout rôle standard LecteurAPI 2022-04-27 09:31:03 +02:00
55b786e655 API: formsemestre/apo/ 2022-04-27 09:24:20 +02:00
6 changed files with 47 additions and 34 deletions

View File

@ -16,15 +16,32 @@ def departements():
""" """
Retourne la liste des ids de départements visibles Retourne la liste des ids de départements visibles
Exemple de résultat : [2, 5, 8, 1, 4, 18] Exemple de résultat :
[
{
"id": 1,
"acronym": "TAPI",
"description": null,
"visible": true,
"date_creation": "Fri, 15 Apr 2022 12:19:28 GMT"
},
{
"id": 2,
"acronym": "MMI",
"description": null,
"visible": false,
"date_creation": "Fri, 18 Apr 2022 11:20:8 GMT"
},
...
]
""" """
# Récupération de tous les départements # Récupération de tous les départements
depts = models.Departement.query.filter_by(visible=True) depts = models.Departement.query.all()
# Mise en place de la liste avec tous les ids de départements # Mise en place de la liste avec tous les départements
depts_ids = [d.id for d in depts] data = [d.to_dict() for d in depts]
return jsonify(depts_ids) return jsonify(data)
@bp.route("/departements/<string:dept>/etudiants/liste", methods=["GET"]) @bp.route("/departements/<string:dept>/etudiants/liste", methods=["GET"])

View File

@ -344,8 +344,6 @@ def etudiant_bulletin_semestre(
} }
} }
""" """
# Fonction utilisée : app.scodoc.sco_bulletins_json.make_json_formsemestre_bulletinetud()
formsemestre = models.FormSemestre.query.filter_by( formsemestre = models.FormSemestre.query.filter_by(
id=formsemestre_id id=formsemestre_id
).first_or_404() ).first_or_404()

View File

@ -188,29 +188,6 @@ def formation_export_by_formation_id(formation_id: int, export_ids=False):
return jsonify(data) return jsonify(data)
@bp.route("/formations/apo/<string:etape_apo>", methods=["GET"])
@token_permission_required(Permission.APIView)
def formsemestre_apo(etape_apo: int):
"""
Retourne les informations sur les formsemestres
etape_apo : l'id d'une étape apogée
"""
# Récupération des formsemestres
apos = models.FormSemestreEtape.query.filter_by(etape_apo=etape_apo)
data = []
# Filtre les formsemestres correspondant + mise en forme des données
for apo in apos:
formsem = models.FormSemestre.query.filter_by(
id=apo["formsemestre_id"]
).first_or_404()
data.append(formsem.to_dict())
return jsonify(data)
# return error_response(501, message="Not implemented")
@bp.route("/formations/moduleimpl/<int:moduleimpl_id>", methods=["GET"]) @bp.route("/formations/moduleimpl/<int:moduleimpl_id>", methods=["GET"])
@token_permission_required(Permission.APIView) @token_permission_required(Permission.APIView)
def moduleimpls(moduleimpl_id: int): def moduleimpls(moduleimpl_id: int):

View File

@ -7,6 +7,7 @@ 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_permission_required from app.api.auth import token_permission_required
from app.api.tools import get_etu_from_etudid_or_nip_or_ine from app.api.tools import get_etu_from_etudid_or_nip_or_ine
from app.models import FormSemestre, FormSemestreEtape
from app.scodoc.sco_bulletins import get_formsemestre_bulletin_etud_json 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_bulletins_json import make_json_formsemestre_bulletinetud
from app.scodoc.sco_permissions import Permission from app.scodoc.sco_permissions import Permission
@ -60,6 +61,22 @@ def formsemestre(formsemestre_id: int):
return jsonify(data) return jsonify(data)
@bp.route("/formsemestre/apo/<string:etape_apo>", methods=["GET"])
@token_permission_required(Permission.APIView)
def formsemestre_apo(etape_apo: str):
"""
Retourne les informations sur les formsemestres
etape_apo : l'id d'une étape apogée
"""
formsemestres = FormSemestre.query.filter(
FormSemestreEtape.etape_apo == etape_apo,
FormSemestreEtape.formsemestre_id == FormSemestre.id,
)
return jsonify([formsemestre.to_dict() for formsemestre in formsemestres])
@bp.route( @bp.route(
"/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/etudid/<int:etudid>/bulletin", "/formsemestre/<int:formsemestre_id>/departements/<string:dept>/etudiant/etudid/<int:etudid>/bulletin",
methods=["GET"], methods=["GET"],

View File

@ -47,11 +47,12 @@ _SCO_PERMISSIONS = (
), ),
(1 << 25, "RelationsEntreprisesSend", "Envoyer des offres"), (1 << 25, "RelationsEntreprisesSend", "Envoyer des offres"),
(1 << 26, "RelationsEntreprisesValidate", "Valide les entreprises"), (1 << 26, "RelationsEntreprisesValidate", "Valide les entreprises"),
# 27 à 39 ... réservé pour "entreprises"
# Api scodoc9 # Api scodoc9
(1 << 27, "APIView", "Voir"), (1 << 40, "APIView", "Voir"),
(1 << 28, "APIEtudChangeGroups", "Modifier les groupes"), (1 << 41, "APIEtudChangeGroups", "Modifier les groupes"),
(1 << 29, "APIEditAllNotes", "Modifier toutes les notes"), (1 << 42, "APIEditAllNotes", "Modifier toutes les notes"),
(1 << 30, "APIAbsChange", "Saisir des absences"), (1 << 43, "APIAbsChange", "Saisir des absences"),
) )

View File

@ -72,6 +72,8 @@ SCO_ROLES_DEFAULTS = {
p.RelationsEntreprisesSend, p.RelationsEntreprisesSend,
p.RelationsEntreprisesValidate, p.RelationsEntreprisesValidate,
), ),
# LecteurAPI peut utiliser l'API en lecture
"LecteurAPI": (p.APIView,),
# Super Admin est un root: création/suppression de départements # Super Admin est un root: création/suppression de départements
# _tous_ les droits # _tous_ les droits
# Afin d'avoir tous les droits, il ne doit pas être asscoié à un département # Afin d'avoir tous les droits, il ne doit pas être asscoié à un département
@ -86,4 +88,5 @@ ROLES_ATTRIBUABLES_SCODOC = (
"ObservateurEntreprise", "ObservateurEntreprise",
"UtilisateurEntreprise", "UtilisateurEntreprise",
"AdminEntreprise", "AdminEntreprise",
"LecteurAPI",
) )