partie formation fini

This commit is contained in:
leonard_montalbano 2022-02-22 15:50:52 +01:00
parent 3fab8300a1
commit 976fdf5b4e

View File

@ -50,7 +50,7 @@ from app.api.errors import error_response
from app import models
from app.models import FormSemestre, FormSemestreInscription, Identite
from app.models import ApcReferentielCompetences
from app.scodoc.sco_abs import annule_absence, annule_justif
from app.scodoc.sco_abs import annule_absence, annule_justif, add_absence, add_justif
from app.scodoc.sco_bulletins import formsemestre_bulletinetud_dict
from app.scodoc.sco_bulletins_json import make_json_formsemestre_bulletinetud
from app.scodoc.sco_evaluation_db import do_evaluation_get_all_notes
@ -343,17 +343,27 @@ def formation_export_by_formation_id(formation_id: int, export_ids=False):
"""
La formation, avec UE, matières, modules
"""
data = formation_export(formation_id)
try:
data = formation_export(formation_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("/formations/apo/<int:etape_apo>", methods=["GET"])
@bp.route("/formations/apo/<string:etape_apo>", methods=["GET"])
def formsemestre_apo(etape_apo: int):
"""
Information sur les formsemestres
"""
return error_response(501, message="Not implemented")
apos = models.FormSemestreEtape.query.filter_by(etape_apo=etape_apo).all()
data = []
for apo in apos:
formsem = models.FormSemestre.query.filter_by(id=apo["formsemestre_id"]).first()
data.append(formsem.to_dict())
return jsonify(data)
# return error_response(501, message="Not implemented")
@bp.route("/formations/moduleimpl/<int:moduleimpl_id>", methods=["GET"])
@ -376,9 +386,12 @@ def moduleimpls_sem(moduleimpl_id: int, formsemestre_id: int):
"""
Liste de moduleimpl d'un semestre
"""
data = moduleimpl_list(moduleimpl_id, formsemestre_id)
try:
data = moduleimpl_list(moduleimpl_id, formsemestre_id)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
return jsonify(data)
# return error_response(501, message="Not implemented")
#################################################### UE ###############################################################
@ -433,7 +446,7 @@ def etudiant_bulletin(formsemestre_id, dept, etudid, format="json", *args, size)
elif args[0] == "long":
data = formsemestre_bulletinetud_dict(formsemestre_id, etudid)
else:
return error_response(501, message="Not implemented")
return error_response(409, message="La requête ne peut être traitée en létat actuel")
return jsonify(data)
@ -623,7 +636,9 @@ def annule_decision_jury(formsemestre_id: int, etudid=None, nip=None, ine=None):
#################################################### Absences #########################################################
@bp.route("/absences/<int:etudid>", methods=["GET"])
@bp.route("/absences/etudid/<int:etudid>", methods=["GET"])
@bp.route("/absences/nip/<int:nip>", methods=["GET"])
@bp.route("/absences/ine/<int:ine>", methods=["GET"])
def absences(etudid=None, nip=None, ine=None):
"""
Liste des absences d'un étudiant donné
@ -646,7 +661,9 @@ def absences(etudid=None, nip=None, ine=None):
return error_response(501, message="Not implemented")
@bp.route("/absences/<int:etudid>/abs_just_only", methods=["GET"])
@bp.route("/absences/etudid/<int:etudid>/abs_just_only", methods=["GET"])
@bp.route("/absences/nip/<int:nip>/abs_just_only", methods=["GET"])
@bp.route("/absences/ine/<int:ine>/abs_just_only", methods=["GET"])
def absences_justify(etudid=None, nip=None, ine=None):
"""
Liste des absences justifiés d'un étudiant donné
@ -669,13 +686,89 @@ def absences_justify(etudid=None, nip=None, ine=None):
return error_response(501, message="Not implemented")
@bp.route("/absences/abs_signale", methods=["POST"])
@bp.route("/absences/abs_signale?etudid=<int:etudid>&date=<string:date>&matin=<string:matin>&justif=<string:justif>",
"&description=<string:description>", methods=["POST"])
@bp.route("/absences/abs_signale?nip=<int:nip>&date=<string:date>&matin=<string:matin>&justif=<string:justif>",
"&description=<string:description>", methods=["POST"])
@bp.route("/absences/abs_signale?ine=<int:ine>&date=<string:date>&matin=<string:matin>&justif=<string:justif>"
"&description=<string:description>", methods=["POST"])
@bp.route("/absences/abs_signale?ine=<int:ine>&date=<string:date>&matin=<string:matin>&justif=<string:justif>"
"&description=<string:description>&moduleimpl_id=<int:moduleimpl_id>", methods=["POST"])
@token_auth.login_required
def abs_signale():
def abs_signale(date: datetime, matin: bool, justif: bool, etudid=None, nip=None, ine=None, description=None,
moduleimpl_id=None):
"""
Retourne un html
Permet d'ajouter une absence en base
"""
return error_response(501, message="Not implemented")
# fonction to use : add_absence, add_justif
if description is not None:
if moduleimpl_id is not None:
if etudid is not None:
try:
add_absence(etudid, date, matin, justif, description, moduleimpl_id)
add_justif(etudid, date, matin, description)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
if nip is not None:
etu = models.Identite.query.filter_by(code_nip=nip).first()
try:
add_absence(etu.etudid, date, matin, justif, description, moduleimpl_id)
add_justif(etu.etudid, date, matin, description)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
if ine is not None:
etu = models.Identite.query.filter_by(code_ine=ine).first()
try:
add_absence(etu.etudid, date, matin, justif, description, moduleimpl_id)
add_justif(etu.etudid, date, matin, description)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
return error_response(409, message="La requête ne peut être traitée en létat actuel")
else:
if etudid is not None:
try:
add_absence(etudid, date, matin, justif, description)
add_justif(etudid, date, matin, description)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
if nip is not None:
etu = models.Identite.query.filter_by(code_nip=nip).first()
try:
add_absence(etu.etudid, date, matin, justif, description)
add_justif(etu.etudid, date, matin, description)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
if ine is not None:
etu = models.Identite.query.filter_by(code_ine=ine).first()
try:
add_absence(etu.etudid, date, matin, justif, description)
add_justif(etu.etudid, date, matin, description)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
return error_response(409, message="La requête ne peut être traitée en létat actuel")
else:
if etudid is not None:
try:
add_absence(etudid, date, matin, justif)
add_justif(etudid, date, matin)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
if nip is not None:
etu = models.Identite.query.filter_by(code_nip=nip).first()
try:
add_absence(etu.etudid, date, matin, justif)
add_justif(etu.etudid, date, matin)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
if ine is not None:
etu = models.Identite.query.filter_by(code_ine=ine).first()
try:
add_absence(etu.etudid, date, matin, justif)
add_justif(etu.etudid, date, matin)
except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel")
return error_response(200, message="OK")
@bp.route("/absences/abs_annule?etudid=<int:etudid>&jour=<string:jour>&matin=<string:matin>", methods=["POST"])
@ -737,7 +830,7 @@ def abs_groupe_etat(
Liste des absences d'un ou plusieurs groupes entre deux dates
"""
# list_abs_date<
# list_abs_date
return error_response(501, message="Not implemented")
@ -749,6 +842,7 @@ def liste_logos(format="json"):
"""
Liste des logos définis pour le site scodoc.
"""
# fonction to use : list_logos()
return error_response(501, message="Not implemented")
@ -757,6 +851,7 @@ def recup_logo_global(nom: str):
"""
Retourne l'image au format png ou jpg
"""
# fonction to use find_logo
return error_response(501, message="Not implemented")
@ -773,4 +868,5 @@ def recup_logo_dept_global(dept: str, nom: str):
"""
L'image format png ou jpg
"""
# fonction to use find_logo
return error_response(501, message="Not implemented")