46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
"""AutoSco / views
|
|
"""
|
|
|
|
from flask import make_response, render_template
|
|
from app import log
|
|
from app.utils import utils as scu
|
|
from app.views import bp
|
|
from scodoc import api
|
|
|
|
|
|
@bp.route("/")
|
|
def index():
|
|
annee_scolaire = scu.annee_scolaire()
|
|
sems = api.get(f"/formsemestres/with_description/query?annee_scolaire={annee_scolaire}")
|
|
# nb: l'utilisation de l'API départementale permet de n'avoir
|
|
# que les semestres du département configuré.
|
|
|
|
# Ne retient que les semestres ayant une description et étant visibles
|
|
sems = [ s for s in sems if s["autosco"] and s["autosco"]["visible"] ]
|
|
return render_template("index.j2", sems=sems)
|
|
|
|
@bp.route("/formdescription/<int:formsemestre_id>")
|
|
def formsemestre_description(formsemestre_id:int):
|
|
"""Page description d'un formsemestre (=d'un cours)"""
|
|
sem = api.get(f"/formsemestre/{formsemestre_id}/with_description")
|
|
return render_template("formsemestre_description.j2", sem=sem)
|
|
|
|
@bp.route("/formsemestre/<int:formsemestre_id>/description/photo_ens")
|
|
def formsemestre_get_photo_ens(formsemestre_id: int):
|
|
"""Photo du responsable, ou illustration du formsemestre. Peut être vide."""
|
|
# demande à ScoDoc et renvoie
|
|
# on pourrait cacher
|
|
response = api.get(f"/formsemestre/{formsemestre_id}/description/photo_ens")
|
|
content_type = response.headers["Content-Type"]
|
|
if not content_type.startswith("image"):
|
|
log(f"formsemestre_get_photo_ens({formsemestre_id}): not an image")
|
|
return make_response("", 204) # 204 No Content status
|
|
|
|
r = make_response(response.content)
|
|
r.headers["Content-Type"] = content_type
|
|
return r
|
|
|
|
@bp.route("/formsemestre/<int:formsemestre_id>/inscription")
|
|
def formsemestre_inscription(formsemestre_id: int):
|
|
"""Formulaire d'auto-inscription étudiant"""
|
|
return "Formulaire d'auto-inscription étudiant" # TODO |