Merge branch 'new_api' of https://scodoc.org/git/ScoDoc/ScoDoc into new_api
This commit is contained in:
commit
c3eeec29d8
@ -1,16 +1,16 @@
|
|||||||
#################################################### Etudiants ########################################################
|
#################################################### Etudiants ########################################################
|
||||||
import app
|
|
||||||
|
|
||||||
from flask import jsonify
|
from flask import jsonify
|
||||||
|
|
||||||
|
import app
|
||||||
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.api.tools import get_etu_from_request
|
from app.api.tools import get_etu_from_request
|
||||||
from app.models import FormSemestreInscription, FormSemestre, Identite
|
from app.models import FormSemestreInscription, FormSemestre, Identite
|
||||||
from app.scodoc.sco_bulletins import get_formsemestre_bulletin_etud_json
|
from app.scodoc import sco_bulletins
|
||||||
from app.scodoc.sco_groups import get_etud_groups
|
from app.scodoc import sco_groups
|
||||||
from app.scodoc.sco_permissions import Permission
|
from app.scodoc.sco_permissions import Permission
|
||||||
|
|
||||||
|
|
||||||
@ -46,13 +46,14 @@ def etudiants_courant():
|
|||||||
...
|
...
|
||||||
"""
|
"""
|
||||||
# Récupération de tous les étudiants
|
# Récupération de tous les étudiants
|
||||||
etus = Identite.query.filter(
|
etuds = Identite.query.filter(
|
||||||
Identite.id == FormSemestreInscription.etudid,
|
Identite.id == FormSemestreInscription.etudid,
|
||||||
FormSemestreInscription.formsemestre_id == FormSemestre.id,
|
FormSemestreInscription.formsemestre_id == FormSemestre.id,
|
||||||
FormSemestre.date_debut <= app.db.func.now(),
|
FormSemestre.date_debut <= app.db.func.now(),
|
||||||
FormSemestre.date_fin >= app.db.func.now())
|
FormSemestre.date_fin >= app.db.func.now(),
|
||||||
|
)
|
||||||
|
|
||||||
data = [etu.to_dict_bul(include_urls=False) for etu in etus]
|
data = [etu.to_dict_bul(include_urls=False) for etu in etuds]
|
||||||
|
|
||||||
return jsonify(data)
|
return jsonify(data)
|
||||||
|
|
||||||
@ -97,7 +98,7 @@ def etudiant(etudid: int = None, nip: int = None, ine: int = None):
|
|||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None):
|
def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None):
|
||||||
"""
|
"""
|
||||||
Retourne la liste des semestres qu'un étudiant a suivis
|
Retourne la liste des semestres qu'un étudiant a suivi, triés par ordre chronologique.
|
||||||
|
|
||||||
etudid : l'etudid d'un étudiant
|
etudid : l'etudid d'un étudiant
|
||||||
nip : le code nip d'un étudiant
|
nip : le code nip d'un étudiant
|
||||||
@ -108,7 +109,6 @@ def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None)
|
|||||||
{
|
{
|
||||||
"titre": "master machine info",
|
"titre": "master machine info",
|
||||||
"gestion_semestrielle": false,
|
"gestion_semestrielle": false,
|
||||||
"scodoc7_id": null,
|
|
||||||
"date_debut": "01/09/2021",
|
"date_debut": "01/09/2021",
|
||||||
"bul_bgcolor": null,
|
"bul_bgcolor": null,
|
||||||
"date_fin": "15/12/2022",
|
"date_fin": "15/12/2022",
|
||||||
@ -139,27 +139,14 @@ def etudiant_formsemestres(etudid: int = None, nip: int = None, ine: int = None)
|
|||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
# Récupération de l'étudiant
|
# Récupération de l'étudiant
|
||||||
etu = get_etu_from_request(etudid, nip, ine)
|
etud = get_etu_from_request(etudid, nip, ine)
|
||||||
|
|
||||||
# Récupération de toutes les inscriptions de l'étudiant
|
formsemestres = models.FormSemestre.query.filter(
|
||||||
formsemestres_inscriptions = models.FormSemestreInscription.query.filter_by(
|
models.FormSemestreInscription.etudid == etud.id,
|
||||||
etud=etu
|
models.FormSemestreInscription.formsemestre_id == models.FormSemestre.id,
|
||||||
).all()
|
).order_by(models.FormSemestre.date_debut)
|
||||||
|
|
||||||
formsemestres = []
|
return jsonify([formsemestre.to_dict() for formsemestre in formsemestres])
|
||||||
# Récupération des formsemestres contenant les inscriptions de l'étudiant
|
|
||||||
for formsemestre_inscription in formsemestres_inscriptions:
|
|
||||||
res = models.FormSemestre.query.filter_by(
|
|
||||||
id=formsemestre_inscription.formsemestre_id
|
|
||||||
).first_or_404()
|
|
||||||
formsemestres.append(res)
|
|
||||||
|
|
||||||
data = []
|
|
||||||
# Mise en forme des données
|
|
||||||
for formsemestre in formsemestres:
|
|
||||||
data.append(formsemestre.to_dict())
|
|
||||||
|
|
||||||
return jsonify(data)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
@ -188,7 +175,9 @@ def etudiant_bulletin_semestre(
|
|||||||
"""
|
"""
|
||||||
# Fonction utilisée : app.scodoc.sco_bulletins_json.make_json_formsemestre_bulletinetud()
|
# Fonction utilisée : app.scodoc.sco_bulletins_json.make_json_formsemestre_bulletinetud()
|
||||||
|
|
||||||
formsemestre = models.FormSemestre.query.filter_by(id=formsemestre_id).first_or_404()
|
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()
|
dept = models.Departement.query.filter_by(id=formsemestre.dept_id).first_or_404()
|
||||||
|
|
||||||
@ -201,10 +190,10 @@ def etudiant_bulletin_semestre(
|
|||||||
return error_response(
|
return error_response(
|
||||||
409,
|
409,
|
||||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
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",
|
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||||
)
|
)
|
||||||
|
|
||||||
return get_formsemestre_bulletin_etud_json(formsemestre, etu)
|
return sco_bulletins.get_formsemestre_bulletin_etud_json(formsemestre, etu)
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
@ -255,8 +244,6 @@ def etudiant_groups(
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
# Fonction utilisée : app.scodoc.sco_groups.get_etud_groups()
|
|
||||||
|
|
||||||
if etudid is None:
|
if etudid is None:
|
||||||
# Récupération de l'étudiant
|
# Récupération de l'étudiant
|
||||||
try:
|
try:
|
||||||
@ -266,19 +253,18 @@ def etudiant_groups(
|
|||||||
return error_response(
|
return error_response(
|
||||||
409,
|
409,
|
||||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
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",
|
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Récupération du formsemestre
|
# Récupération du formsemestre
|
||||||
sem = models.FormSemestre.query.filter_by(id=formsemestre_id).first_or_404()
|
sem = models.FormSemestre.query.filter_by(id=formsemestre_id).first_or_404()
|
||||||
try:
|
try:
|
||||||
# Utilisation de la fonction get_etud_groups
|
data = sco_groups.get_etud_groups(etudid, sem.id)
|
||||||
data = get_etud_groups(etudid, sem.id)
|
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
return error_response(
|
return error_response(
|
||||||
409,
|
409,
|
||||||
message="La requête ne peut être traitée en l’état actuel.\n "
|
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"
|
"Veuillez vérifier que l'id de l'étudiant (etudid, nip, ine) est valide"
|
||||||
" et le formsemestre_id sont valides",
|
" et le formsemestre_id sont valides",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -13,10 +13,10 @@ def get_etu_from_request(etudid, nip, ine):
|
|||||||
"""
|
"""
|
||||||
if etudid is None:
|
if etudid is None:
|
||||||
if nip is None: # si ine
|
if nip is None: # si ine
|
||||||
etu = models.Identite.query.filter_by(code_ine=str(ine)).first()
|
etud = models.Identite.query.filter_by(code_ine=str(ine)).first()
|
||||||
else: # si nip
|
else: # si nip
|
||||||
etu = models.Identite.query.filter_by(code_nip=str(nip)).first()
|
etud = models.Identite.query.filter_by(code_nip=str(nip)).first()
|
||||||
else: # si etudid
|
else: # si etudid
|
||||||
etu = models.Identite.query.filter_by(id=etudid).first()
|
etud = models.Identite.query.filter_by(id=etudid).first()
|
||||||
|
|
||||||
return etu
|
return etud
|
||||||
|
Loading…
Reference in New Issue
Block a user