1
0
forked from ScoDoc/ScoDoc

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 import models
from app.models import FormSemestre, FormSemestreInscription, Identite from app.models import FormSemestre, FormSemestreInscription, Identite
from app.models import ApcReferentielCompetences 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 import formsemestre_bulletinetud_dict
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_evaluation_db import do_evaluation_get_all_notes 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 La formation, avec UE, matières, modules
""" """
try:
data = formation_export(formation_id) 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) 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): def formsemestre_apo(etape_apo: int):
""" """
Information sur les formsemestres 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"]) @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 Liste de moduleimpl d'un semestre
""" """
try:
data = moduleimpl_list(moduleimpl_id, formsemestre_id) 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 jsonify(data)
# return error_response(501, message="Not implemented")
#################################################### UE ############################################################### #################################################### UE ###############################################################
@ -433,7 +446,7 @@ def etudiant_bulletin(formsemestre_id, dept, etudid, format="json", *args, size)
elif args[0] == "long": elif args[0] == "long":
data = formsemestre_bulletinetud_dict(formsemestre_id, etudid) data = formsemestre_bulletinetud_dict(formsemestre_id, etudid)
else: 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) return jsonify(data)
@ -623,7 +636,9 @@ def annule_decision_jury(formsemestre_id: int, etudid=None, nip=None, ine=None):
#################################################### Absences ######################################################### #################################################### 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): def absences(etudid=None, nip=None, ine=None):
""" """
Liste des absences d'un étudiant donné 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") 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): def absences_justify(etudid=None, nip=None, ine=None):
""" """
Liste des absences justifiés d'un étudiant donné 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") 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 @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"]) @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 Liste des absences d'un ou plusieurs groupes entre deux dates
""" """
# list_abs_date< # list_abs_date
return error_response(501, message="Not implemented") 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. Liste des logos définis pour le site scodoc.
""" """
# fonction to use : list_logos()
return error_response(501, message="Not implemented") 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 Retourne l'image au format png ou jpg
""" """
# fonction to use find_logo
return error_response(501, message="Not implemented") 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 L'image format png ou jpg
""" """
# fonction to use find_logo
return error_response(501, message="Not implemented") return error_response(501, message="Not implemented")