forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -15,7 +15,7 @@ from werkzeug.exceptions import NotFound
|
|||||||
|
|
||||||
import app.scodoc.sco_assiduites as scass
|
import app.scodoc.sco_assiduites as scass
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app import db
|
from app import db, set_sco_dept
|
||||||
from app.api import api_bp as bp
|
from app.api import api_bp as bp
|
||||||
from app.api import api_web_bp
|
from app.api import api_web_bp
|
||||||
from app.api import get_model_api_object, tools
|
from app.api import get_model_api_object, tools
|
||||||
@ -294,6 +294,7 @@ def justif_create(etudid: int = None, nip=None, ine=None):
|
|||||||
404,
|
404,
|
||||||
message="étudiant inconnu",
|
message="étudiant inconnu",
|
||||||
)
|
)
|
||||||
|
set_sco_dept(etud.departement.acronym)
|
||||||
|
|
||||||
# Récupération des justificatifs à créer
|
# Récupération des justificatifs à créer
|
||||||
create_list: list[object] = request.get_json(force=True)
|
create_list: list[object] = request.get_json(force=True)
|
||||||
|
100
app/api/users.py
100
app/api/users.py
@ -443,61 +443,61 @@ def role_delete(role_name: str):
|
|||||||
return {"OK": True}
|
return {"OK": True}
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/user/<int:uid>/edt")
|
# @bp.route("/user/<int:uid>/edt")
|
||||||
@api_web_bp.route("/user/<int:uid>/edt")
|
# @api_web_bp.route("/user/<int:uid>/edt")
|
||||||
@login_required
|
# @login_required
|
||||||
@scodoc
|
# @scodoc
|
||||||
@permission_required(Permission.ScoView)
|
# @permission_required(Permission.ScoView)
|
||||||
@as_json
|
# @as_json
|
||||||
def user_edt(uid: int):
|
# def user_edt(uid: int):
|
||||||
"""L'emploi du temps de l'utilisateur.
|
# """L'emploi du temps de l'utilisateur.
|
||||||
Si ok, une liste d'évènements. Sinon, une chaine indiquant un message d'erreur.
|
# Si ok, une liste d'évènements. Sinon, une chaine indiquant un message d'erreur.
|
||||||
|
|
||||||
show_modules_titles affiche le titre complet du module (défaut), sinon juste le code.
|
# show_modules_titles affiche le titre complet du module (défaut), sinon juste le code.
|
||||||
|
|
||||||
Il faut la permission ScoView + (UsersView ou bien être connecté comme l'utilisateur demandé)
|
# Il faut la permission ScoView + (UsersView ou bien être connecté comme l'utilisateur demandé)
|
||||||
"""
|
# """
|
||||||
if g.scodoc_dept is None: # route API non départementale
|
# if g.scodoc_dept is None: # route API non départementale
|
||||||
if not current_user.has_permission(Permission.UsersView):
|
# if not current_user.has_permission(Permission.UsersView):
|
||||||
return scu.json_error(403, "accès non autorisé")
|
# return scu.json_error(403, "accès non autorisé")
|
||||||
user: User = db.session.get(User, uid)
|
# user: User = db.session.get(User, uid)
|
||||||
if user is None:
|
# if user is None:
|
||||||
return json_error(404, "user not found")
|
# return json_error(404, "user not found")
|
||||||
# Check permission
|
# # Check permission
|
||||||
if current_user.id != user.id:
|
# if current_user.id != user.id:
|
||||||
if g.scodoc_dept:
|
# if g.scodoc_dept:
|
||||||
allowed_depts = current_user.get_depts_with_permission(Permission.UsersView)
|
# allowed_depts = current_user.get_depts_with_permission(Permission.UsersView)
|
||||||
if (None not in allowed_depts) and (user.dept not in allowed_depts):
|
# if (None not in allowed_depts) and (user.dept not in allowed_depts):
|
||||||
return json_error(404, "user not found")
|
# return json_error(404, "user not found")
|
||||||
|
|
||||||
show_modules_titles = scu.to_bool(request.args.get("show_modules_titles", False))
|
# show_modules_titles = scu.to_bool(request.args.get("show_modules_titles", False))
|
||||||
|
|
||||||
# Cherche ics
|
# # Cherche ics
|
||||||
if not user.edt_id:
|
# if not user.edt_id:
|
||||||
return json_error(404, "user not configured")
|
# return json_error(404, "user not configured")
|
||||||
ics_filename = sco_edt_cal.get_ics_user_edt_filename(user.edt_id)
|
# ics_filename = sco_edt_cal.get_ics_user_edt_filename(user.edt_id)
|
||||||
if not ics_filename:
|
# if not ics_filename:
|
||||||
return json_error(404, "no calendar for this user")
|
# return json_error(404, "no calendar for this user")
|
||||||
|
|
||||||
_, calendar = sco_edt_cal.load_calendar(ics_filename)
|
# _, calendar = sco_edt_cal.load_calendar(ics_filename)
|
||||||
|
|
||||||
# TODO:
|
# # TODO:
|
||||||
# - Construire mapping edt2modimpl: edt_id -> modimpl
|
# # - Construire mapping edt2modimpl: edt_id -> modimpl
|
||||||
# pour cela, considérer tous les formsemestres de la période de l'edt
|
# # pour cela, considérer tous les formsemestres de la période de l'edt
|
||||||
# (soit on considère l'année scolaire du 1er event, ou celle courante,
|
# # (soit on considère l'année scolaire du 1er event, ou celle courante,
|
||||||
# soit on cherche min, max des dates des events)
|
# # soit on cherche min, max des dates des events)
|
||||||
# - Modifier décodage des groupes dans convert_ics pour avoi run mapping
|
# # - Modifier décodage des groupes dans convert_ics pour avoi run mapping
|
||||||
# de groupe par semestre (retrouvé grâce au modimpl associé à l'event)
|
# # de groupe par semestre (retrouvé grâce au modimpl associé à l'event)
|
||||||
|
|
||||||
raise NotImplementedError() # TODO XXX WIP
|
# raise NotImplementedError() # TODO XXX WIP
|
||||||
|
|
||||||
events_scodoc, _ = sco_edt_cal.convert_ics(
|
# events_scodoc, _ = sco_edt_cal.convert_ics(
|
||||||
calendar,
|
# calendar,
|
||||||
edt2group=edt2group,
|
# edt2group=edt2group,
|
||||||
default_group=default_group,
|
# default_group=default_group,
|
||||||
edt2modimpl=edt2modimpl,
|
# edt2modimpl=edt2modimpl,
|
||||||
)
|
# )
|
||||||
edt_dict = sco_edt_cal.translate_calendar(
|
# edt_dict = sco_edt_cal.translate_calendar(
|
||||||
events_scodoc, group_ids, show_modules_titles=show_modules_titles
|
# events_scodoc, group_ids, show_modules_titles=show_modules_titles
|
||||||
)
|
# )
|
||||||
return edt_dict
|
# return edt_dict
|
||||||
|
Loading…
Reference in New Issue
Block a user