API: ajout session_id au formsemestre. formsemestre/programme

This commit is contained in:
Emmanuel Viennet 2022-05-05 08:21:42 +02:00
parent 443eb72687
commit b740f40389

View File

@ -4,14 +4,11 @@ from flask import jsonify
import app 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.auth import token_auth, token_permission_required from app.api.auth import token_auth, token_permission_required
from app.api.tools import get_etu_from_etudid_or_nip_or_ine from app.models import Departement, FormSemestre, FormSemestreEtape
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_permissions import Permission from app.scodoc.sco_permissions import Permission
from app.scodoc.sco_pvjury import formsemestre_pvjury from app.scodoc.sco_utils import ModuleType
@bp.route("/formsemestre/<int:formsemestre_id>", methods=["GET"]) @bp.route("/formsemestre/<int:formsemestre_id>", methods=["GET"])
@ -53,10 +50,15 @@ def formsemestre(formsemestre_id: int):
} }
""" """
formsemestre = models.FormSemestre.query.filter_by( formsemestre: FormSemestre = models.FormSemestre.query.filter_by(
id=formsemestre_id id=formsemestre_id
).first_or_404() ).first_or_404()
data = formsemestre.to_dict() data = formsemestre.to_dict()
# Pour le moment on a besoin de fixer le departement
# pour accéder aux préferences
dept = Departement.query.get(formsemestre.dept_id)
app.set_sco_dept(dept.acronym)
data["session_id"] = formsemestre.session_id()
return jsonify(data) return jsonify(data)
@ -71,32 +73,7 @@ def formsemestre_apo(etape_apo: str):
Exemple de résultat : Exemple de résultat :
[ [
{ { ...formsemestre...
"date_fin": "31/08/2022",
"resp_can_edit": false,
"dept_id": 1,
"etat": true,
"resp_can_change_ens": true,
"id": 1,
"modalite": "FI",
"ens_can_edit_eval": false,
"formation_id": 1,
"gestion_compensation": false,
"elt_sem_apo": null,
"semestre_id": 1,
"bul_hide_xml": false,
"elt_annee_apo": null,
"titre": "Semestre test",
"block_moyennes": false,
"scodoc7_id": null,
"date_debut": "01/09/2021",
"gestion_semestrielle": false,
"bul_bgcolor": "white",
"formsemestre_id": 1,
"titre_num": "Semestre test semestre 1",
"date_debut_iso": "2021-09-01",
"date_fin_iso": "2022-08-31",
"responsables": []
}, ... }, ...
] ]
""" """
@ -341,114 +318,112 @@ def bulletins(formsemestre_id: int):
# return jsonify(data) # return jsonify(data)
# XXX A spécifier et compléter TODO @bp.route(
# @bp.route( "/formsemestre/<int:formsemestre_id>/programme",
# "/formsemestre/<int:formsemestre_id>/programme", methods=["GET"],
# methods=["GET"], )
# ) @token_auth.login_required
# @token_auth.login_required @token_permission_required(Permission.APIView)
# @token_permission_required(Permission.APIView) def formsemestre_programme(formsemestre_id: int): # XXX nom bizarre ??
# def semestre_index(formsemestre_id: int): # XXX nom bizarre ?? """
# """ Retourne la liste des Ues, ressources et SAE d'un semestre
# Retourne la liste des Ues, ressources et SAE d'un semestre
# formsemestre_id : l'id d'un formsemestre formsemestre_id : l'id d'un formsemestre
# Exemple de résultat : Exemple de résultat :
# { {
# "ues": [ "ues": [
# { {
# "type": 0, "type": 0,
# "formation_id": 1, "formation_id": 1,
# "ue_code": "UCOD11", "ue_code": "UCOD11",
# "id": 1, "id": 1,
# "ects": 12.0, "ects": 12.0,
# "acronyme": "RT1.1", "acronyme": "RT1.1",
# "is_external": false, "is_external": false,
# "numero": 1, "numero": 1,
# "code_apogee": "", "code_apogee": "",
# "titre": "Administrer les r\u00e9seaux et l\u2019Internet", "titre": "Administrer les r\u00e9seaux et l\u2019Internet",
# "coefficient": 0.0, "coefficient": 0.0,
# "semestre_idx": 1, "semestre_idx": 1,
# "color": "#B80004", "color": "#B80004",
# "ue_id": 1 "ue_id": 1
# }, },
# ... ...
# ], ],
# "ressources": [ "ressources": [
# { {
# "titre": "Fondamentaux de la programmation", "titre": "Fondamentaux de la programmation",
# "coefficient": 1.0, "coefficient": 1.0,
# "module_type": 2, "module_type": 2,
# "id": 17, "id": 17,
# "ects": null, "ects": null,
# "abbrev": null, "abbrev": null,
# "ue_id": 3, "ue_id": 3,
# "code": "R107", "code": "R107",
# "formation_id": 1, "formation_id": 1,
# "heures_cours": 0.0, "heures_cours": 0.0,
# "matiere_id": 3, "matiere_id": 3,
# "heures_td": 0.0, "heures_td": 0.0,
# "semestre_id": 1, "semestre_id": 1,
# "heures_tp": 0.0, "heures_tp": 0.0,
# "numero": 70, "numero": 70,
# "code_apogee": "", "code_apogee": "",
# "module_id": 17 "module_id": 17
# }, },
# ... ...
# ], ],
# "saes": [ "saes": [
# { {
# "titre": "Se pr\u00e9senter sur Internet", "titre": "Se pr\u00e9senter sur Internet",
# "coefficient": 1.0, "coefficient": 1.0,
# "module_type": 3, "module_type": 3,
# "id": 14, "id": 14,
# "ects": null, "ects": null,
# "abbrev": null, "abbrev": null,
# "ue_id": 3, "ue_id": 3,
# "code": "SAE14", "code": "SAE14",
# "formation_id": 1, "formation_id": 1,
# "heures_cours": 0.0, "heures_cours": 0.0,
# "matiere_id": 3, "matiere_id": 3,
# "heures_td": 0.0, "heures_td": 0.0,
# "semestre_id": 1, "semestre_id": 1,
# "heures_tp": 0.0, "heures_tp": 0.0,
# "numero": 40, "numero": 40,
# "code_apogee": "", "code_apogee": "",
# "module_id": 14 "module_id": 14
# }, },
# ... ...
# ] ],
# } "modules" : [ ... les modules qui ne sont niu des SAEs ni des ressources ... ]
# """ }
"""
formsemestre: FormSemestre = models.FormSemestre.query.filter_by(
id=formsemestre_id
).first_or_404()
# formsemestre: FormSemestre = models.FormSemestre.query.filter_by( ues = formsemestre.query_ues()
# id=formsemestre_id ressources = [
# ).first_or_404() modimpl.module
for modimpl in formsemestre.modimpls_sorted
if modimpl.module.module_type == ModuleType.RESSOURCE
]
saes = [
modimpl.module
for modimpl in formsemestre.modimpls_sorted
if modimpl.module.module_type == ModuleType.SAE
]
modules = [
modimpl.module
for modimpl in formsemestre.modimpls_sorted
if modimpl.module.module_type == ModuleType.STANDARD
]
# ues = formsemestre.query_ues() data = {
"ues": [ue.to_dict() for ue in ues],
"ressources": [m.to_dict() for m in ressources],
"saes": [m.to_dict() for m in saes],
"modules": [m.to_dict() for m in modules],
}
# ues_dict = [] return jsonify(data)
# ressources = []
# saes = []
# for ue in ues:
# ues_dict.append(ue.to_dict())
# ressources = ue.get_ressources()
# saes = ue.get_saes()
# data_ressources = []
# for ressource in ressources:
# data_ressources.append(ressource.to_dict())
# data_saes = []
# for sae in saes:
# data_saes.append(sae.to_dict())
# data = {
# "ues": ues_dict,
# "ressources": data_ressources,
# "saes": data_saes,
# }
# return data