forked from ScoDoc/ScoDoc
correction sco_abs.py + petites modifications sur différents fichiers api
This commit is contained in:
parent
1c87405f42
commit
f0ce0b574e
@ -70,7 +70,7 @@ def absences(etudid: int = None, nip: int = None, ine: int = None):
|
|||||||
@bp.route("/absences/nip/<int:nip>/just", methods=["GET"])
|
@bp.route("/absences/nip/<int:nip>/just", methods=["GET"])
|
||||||
@bp.route("/absences/ine/<int:ine>/just", methods=["GET"])
|
@bp.route("/absences/ine/<int:ine>/just", methods=["GET"])
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def absences_justify(etudid: int = None, nip: int = None, ine: int = None):
|
def absences_just(etudid: int = None, nip: int = None, ine: int = None):
|
||||||
"""
|
"""
|
||||||
Retourne la liste des absences justifiées d'un étudiant donné
|
Retourne la liste des absences justifiées d'un étudiant donné
|
||||||
|
|
||||||
|
@ -40,7 +40,8 @@ def liste_etudiants(dept: str, formsemestre_id=None):
|
|||||||
formsemestre_id: l'id d'un formesemestre
|
formsemestre_id: l'id d'un formesemestre
|
||||||
|
|
||||||
Exemple de résultat :
|
Exemple de résultat :
|
||||||
{
|
[
|
||||||
|
{
|
||||||
"civilite": "X",
|
"civilite": "X",
|
||||||
"code_ine": null,
|
"code_ine": null,
|
||||||
"code_nip": null,
|
"code_nip": null,
|
||||||
@ -50,8 +51,8 @@ def liste_etudiants(dept: str, formsemestre_id=None):
|
|||||||
"etudid": 18,
|
"etudid": 18,
|
||||||
"nom": "MOREL",
|
"nom": "MOREL",
|
||||||
"prenom": "JACQUES"
|
"prenom": "JACQUES"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"civilite": "X",
|
"civilite": "X",
|
||||||
"code_ine": null,
|
"code_ine": null,
|
||||||
"code_nip": null,
|
"code_nip": null,
|
||||||
@ -61,8 +62,9 @@ def liste_etudiants(dept: str, formsemestre_id=None):
|
|||||||
"etudid": 19,
|
"etudid": 19,
|
||||||
"nom": "FOURNIER",
|
"nom": "FOURNIER",
|
||||||
"prenom": "ANNE"
|
"prenom": "ANNE"
|
||||||
},
|
},
|
||||||
...
|
...
|
||||||
|
]
|
||||||
"""
|
"""
|
||||||
# Si le formsemestre_id a été renseigné
|
# Si le formsemestre_id a été renseigné
|
||||||
if formsemestre_id is not None:
|
if formsemestre_id is not None:
|
||||||
@ -96,39 +98,39 @@ def liste_semestres_courant(dept: str):
|
|||||||
dept: l'acronym d'un département
|
dept: l'acronym d'un département
|
||||||
|
|
||||||
Exemple de résultat :
|
Exemple de résultat :
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"titre": "master machine info",
|
"titre": "master machine info",
|
||||||
"gestion_semestrielle": false,
|
"gestion_semestrielle": false,
|
||||||
"scodoc7_id": null,
|
"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",
|
||||||
"resp_can_edit": false,
|
"resp_can_edit": false,
|
||||||
"dept_id": 1,
|
"dept_id": 1,
|
||||||
"etat": true,
|
"etat": true,
|
||||||
"resp_can_change_ens": false,
|
"resp_can_change_ens": false,
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"modalite": "FI",
|
"modalite": "FI",
|
||||||
"ens_can_edit_eval": false,
|
"ens_can_edit_eval": false,
|
||||||
"formation_id": 1,
|
"formation_id": 1,
|
||||||
"gestion_compensation": false,
|
"gestion_compensation": false,
|
||||||
"elt_sem_apo": null,
|
"elt_sem_apo": null,
|
||||||
"semestre_id": 1,
|
"semestre_id": 1,
|
||||||
"bul_hide_xml": false,
|
"bul_hide_xml": false,
|
||||||
"elt_annee_apo": null,
|
"elt_annee_apo": null,
|
||||||
"block_moyennes": false,
|
"block_moyennes": false,
|
||||||
"formsemestre_id": 1,
|
"formsemestre_id": 1,
|
||||||
"titre_num": "master machine info semestre 1",
|
"titre_num": "master machine info semestre 1",
|
||||||
"date_debut_iso": "2021-09-01",
|
"date_debut_iso": "2021-09-01",
|
||||||
"date_fin_iso": "2022-12-15",
|
"date_fin_iso": "2022-12-15",
|
||||||
"responsables": [
|
"responsables": [
|
||||||
3,
|
3,
|
||||||
2
|
2
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
...
|
...
|
||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
# Récupération des départements comportant l'acronym mit en paramètre
|
# Récupération des départements comportant l'acronym mit en paramètre
|
||||||
dept = models.Departement.query.filter_by(acronym=dept).first_or_404()
|
dept = models.Departement.query.filter_by(acronym=dept).first_or_404()
|
||||||
@ -248,7 +250,6 @@ def semestre_index(dept: str, formsemestre_id: int):
|
|||||||
...
|
...
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
app.set_sco_dept(dept)
|
app.set_sco_dept(dept)
|
||||||
|
@ -13,7 +13,7 @@ from app.scodoc.sco_permissions import Permission
|
|||||||
from app.scodoc.sco_pvjury import formsemestre_pvjury
|
from app.scodoc.sco_pvjury import formsemestre_pvjury
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/formations/formsemestre/<int:formsemestre_id>", methods=["GET"])
|
@bp.route("/formsemestre/<int:formsemestre_id>", methods=["GET"])
|
||||||
@token_permission_required(Permission.APIView)
|
@token_permission_required(Permission.APIView)
|
||||||
def formsemestre(formsemestre_id: int):
|
def formsemestre(formsemestre_id: int):
|
||||||
"""
|
"""
|
||||||
|
@ -10,7 +10,7 @@ from app.scodoc.sco_pvjury import formsemestre_pvjury
|
|||||||
|
|
||||||
|
|
||||||
@bp.route("/jury/formsemestre/<int:formsemestre_id>/preparation_jury", methods=["GET"])
|
@bp.route("/jury/formsemestre/<int:formsemestre_id>/preparation_jury", methods=["GET"])
|
||||||
# @token_permission_required(Permission.)
|
# @token_permission_required(Permission.?)
|
||||||
def jury_preparation(formsemestre_id: int):
|
def jury_preparation(formsemestre_id: int):
|
||||||
"""
|
"""
|
||||||
Retourne la feuille de préparation du jury
|
Retourne la feuille de préparation du jury
|
||||||
@ -26,7 +26,7 @@ def jury_preparation(formsemestre_id: int):
|
|||||||
|
|
||||||
|
|
||||||
@bp.route("/jury/formsemestre/<int:formsemestre_id>/decisions_jury", methods=["GET"])
|
@bp.route("/jury/formsemestre/<int:formsemestre_id>/decisions_jury", methods=["GET"])
|
||||||
# @token_permission_required(Permission.)
|
# @token_permission_required(Permission.?)
|
||||||
def jury_decisions(formsemestre_id: int):
|
def jury_decisions(formsemestre_id: int):
|
||||||
"""
|
"""
|
||||||
Retourne les décisions du jury suivant un formsemestre donné
|
Retourne les décisions du jury suivant un formsemestre donné
|
||||||
@ -39,69 +39,3 @@ def jury_decisions(formsemestre_id: int):
|
|||||||
decision_jury = formsemestre_pvjury(formsemestre_id)
|
decision_jury = formsemestre_pvjury(formsemestre_id)
|
||||||
|
|
||||||
return error_response(501, message="Not implemented")
|
return error_response(501, message="Not implemented")
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
|
||||||
"/jury/set_decision/etudid?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
|
|
||||||
"&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
|
|
||||||
methods=["POST"],
|
|
||||||
)
|
|
||||||
@bp.route(
|
|
||||||
"/jury/set_decision/nip?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
|
|
||||||
"&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
|
|
||||||
methods=["POST"],
|
|
||||||
)
|
|
||||||
@bp.route(
|
|
||||||
"/jury/set_decision/ine?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
|
|
||||||
"&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
|
|
||||||
methods=["POST"],
|
|
||||||
)
|
|
||||||
# @token_permission_required(Permission.)
|
|
||||||
def set_decision_jury(
|
|
||||||
formsemestre_id: int,
|
|
||||||
decision_jury: str,
|
|
||||||
devenir_jury: str,
|
|
||||||
assiduite: bool,
|
|
||||||
etudid: int = None,
|
|
||||||
nip: int = None,
|
|
||||||
ine: int = None,
|
|
||||||
):
|
|
||||||
"""
|
|
||||||
Attribuer la décision du jury et le devenir à un etudiant
|
|
||||||
|
|
||||||
formsemestre_id : l'id d'un formsemestre
|
|
||||||
decision_jury : la décision du jury
|
|
||||||
devenir_jury : le devenir du jury
|
|
||||||
assiduite : True ou False
|
|
||||||
etudid : l'etudid d'un étudiant
|
|
||||||
nip: le code nip d'un étudiant
|
|
||||||
ine : le code ine d'un étudiant
|
|
||||||
"""
|
|
||||||
return error_response(501, message="Not implemented")
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
|
||||||
"/jury/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/annule_decision",
|
|
||||||
methods=["DELETE"],
|
|
||||||
)
|
|
||||||
@bp.route(
|
|
||||||
"/jury/nip/<int:nip>/formsemestre/<int:formsemestre_id>/annule_decision",
|
|
||||||
methods=["DELETE"],
|
|
||||||
)
|
|
||||||
@bp.route(
|
|
||||||
"/jury/ine/<int:ine>/formsemestre/<int:formsemestre_id>/annule_decision",
|
|
||||||
methods=["DELETE"],
|
|
||||||
)
|
|
||||||
# @token_permission_required(Permission.)
|
|
||||||
def annule_decision_jury(
|
|
||||||
formsemestre_id: int, etudid: int = None, nip: int = None, ine: int = None
|
|
||||||
):
|
|
||||||
"""
|
|
||||||
Supprime la déciosion du jury pour un étudiant donné
|
|
||||||
|
|
||||||
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
|
|
||||||
"""
|
|
||||||
return error_response(501, message="Not implemented")
|
|
||||||
|
@ -186,3 +186,68 @@
|
|||||||
# )
|
# )
|
||||||
|
|
||||||
# return error_response(200, message="OK")
|
# return error_response(200, message="OK")
|
||||||
|
|
||||||
|
# @bp.route(
|
||||||
|
# "/jury/set_decision/etudid?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
|
||||||
|
# "&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
|
||||||
|
# methods=["POST"],
|
||||||
|
# )
|
||||||
|
# @bp.route(
|
||||||
|
# "/jury/set_decision/nip?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
|
||||||
|
# "&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
|
||||||
|
# methods=["POST"],
|
||||||
|
# )
|
||||||
|
# @bp.route(
|
||||||
|
# "/jury/set_decision/ine?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>"
|
||||||
|
# "&jury=<string:decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>",
|
||||||
|
# methods=["POST"],
|
||||||
|
# )
|
||||||
|
# # @token_permission_required(Permission.)
|
||||||
|
# def set_decision_jury(
|
||||||
|
# formsemestre_id: int,
|
||||||
|
# decision_jury: str,
|
||||||
|
# devenir_jury: str,
|
||||||
|
# assiduite: bool,
|
||||||
|
# etudid: int = None,
|
||||||
|
# nip: int = None,
|
||||||
|
# ine: int = None,
|
||||||
|
# ):
|
||||||
|
# """
|
||||||
|
# Attribuer la décision du jury et le devenir à un etudiant
|
||||||
|
#
|
||||||
|
# formsemestre_id : l'id d'un formsemestre
|
||||||
|
# decision_jury : la décision du jury
|
||||||
|
# devenir_jury : le devenir du jury
|
||||||
|
# assiduite : True ou False
|
||||||
|
# etudid : l'etudid d'un étudiant
|
||||||
|
# nip: le code nip d'un étudiant
|
||||||
|
# ine : le code ine d'un étudiant
|
||||||
|
# """
|
||||||
|
# return error_response(501, message="Not implemented")
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# @bp.route(
|
||||||
|
# "/jury/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/annule_decision",
|
||||||
|
# methods=["DELETE"],
|
||||||
|
# )
|
||||||
|
# @bp.route(
|
||||||
|
# "/jury/nip/<int:nip>/formsemestre/<int:formsemestre_id>/annule_decision",
|
||||||
|
# methods=["DELETE"],
|
||||||
|
# )
|
||||||
|
# @bp.route(
|
||||||
|
# "/jury/ine/<int:ine>/formsemestre/<int:formsemestre_id>/annule_decision",
|
||||||
|
# methods=["DELETE"],
|
||||||
|
# )
|
||||||
|
# # @token_permission_required(Permission.)
|
||||||
|
# def annule_decision_jury(
|
||||||
|
# formsemestre_id: int, etudid: int = None, nip: int = None, ine: int = None
|
||||||
|
# ):
|
||||||
|
# """
|
||||||
|
# Supprime la déciosion du jury pour un étudiant donné
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# """
|
||||||
|
# return error_response(501, message="Not implemented")
|
||||||
|
@ -420,21 +420,23 @@ WHERE A.ETUDID = %(etudid)s
|
|||||||
|
|
||||||
def list_abs_date(etudid, beg_date=None, end_date=None):
|
def list_abs_date(etudid, beg_date=None, end_date=None):
|
||||||
"""Liste des absences et justifs entre deux dates (inclues)."""
|
"""Liste des absences et justifs entre deux dates (inclues)."""
|
||||||
|
print("On rentre")
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
cursor = cnx.cursor(cursor_factory=ndb.ScoDocCursor)
|
cursor = cnx.cursor(cursor_factory=ndb.ScoDocCursor)
|
||||||
|
print("Juste avant le SQL")
|
||||||
|
|
||||||
cursor.execute(
|
cursor.execute(
|
||||||
"""SELECT jour, matin, estabs, estjust, description FROM ABSENCES A
|
"""SELECT jour, matin, estabs, estjust, description FROM ABSENCES A
|
||||||
WHERE A.ETUDID = %(etudid)s"""
|
WHERE A.ETUDID = %(etudid)s"""
|
||||||
+ (
|
+ ""
|
||||||
""
|
if beg_date is None
|
||||||
if beg_date is None
|
else """
|
||||||
else """
|
|
||||||
AND A.jour >= %(beg_date)s
|
AND A.jour >= %(beg_date)s
|
||||||
AND A.jour <= %(end_date)s
|
AND A.jour <= %(end_date)s
|
||||||
""",
|
""",
|
||||||
vars(),
|
vars(),
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
absences = cursor.dictfetchall()
|
absences = cursor.dictfetchall()
|
||||||
# remove duplicates
|
# remove duplicates
|
||||||
A = {} # { (jour, matin) : abs }
|
A = {} # { (jour, matin) : abs }
|
||||||
|
@ -24,7 +24,7 @@ from tests.api.setup_test_api import SCODOC_URL, CHECK_CERTIFICATE, HEADERS
|
|||||||
# formsemestre
|
# formsemestre
|
||||||
def test_formsemestre():
|
def test_formsemestre():
|
||||||
r = requests.get(
|
r = requests.get(
|
||||||
SCODOC_URL + "/ScoDoc/api/formations/formsemestre/1",
|
SCODOC_URL + "/ScoDoc/api/formsemestre/1",
|
||||||
headers=HEADERS,
|
headers=HEADERS,
|
||||||
verify=CHECK_CERTIFICATE,
|
verify=CHECK_CERTIFICATE,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user