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_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_web_bp
|
||||
from app.api import get_model_api_object, tools
|
||||
@ -294,6 +294,7 @@ def justif_create(etudid: int = None, nip=None, ine=None):
|
||||
404,
|
||||
message="étudiant inconnu",
|
||||
)
|
||||
set_sco_dept(etud.departement.acronym)
|
||||
|
||||
# Récupération des justificatifs à créer
|
||||
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}
|
||||
|
||||
|
||||
@bp.route("/user/<int:uid>/edt")
|
||||
@api_web_bp.route("/user/<int:uid>/edt")
|
||||
@login_required
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@as_json
|
||||
def user_edt(uid: int):
|
||||
"""L'emploi du temps de l'utilisateur.
|
||||
Si ok, une liste d'évènements. Sinon, une chaine indiquant un message d'erreur.
|
||||
# @bp.route("/user/<int:uid>/edt")
|
||||
# @api_web_bp.route("/user/<int:uid>/edt")
|
||||
# @login_required
|
||||
# @scodoc
|
||||
# @permission_required(Permission.ScoView)
|
||||
# @as_json
|
||||
# def user_edt(uid: int):
|
||||
# """L'emploi du temps de l'utilisateur.
|
||||
# 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é)
|
||||
"""
|
||||
if g.scodoc_dept is None: # route API non départementale
|
||||
if not current_user.has_permission(Permission.UsersView):
|
||||
return scu.json_error(403, "accès non autorisé")
|
||||
user: User = db.session.get(User, uid)
|
||||
if user is None:
|
||||
return json_error(404, "user not found")
|
||||
# Check permission
|
||||
if current_user.id != user.id:
|
||||
if g.scodoc_dept:
|
||||
allowed_depts = current_user.get_depts_with_permission(Permission.UsersView)
|
||||
if (None not in allowed_depts) and (user.dept not in allowed_depts):
|
||||
return json_error(404, "user not found")
|
||||
# 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 not current_user.has_permission(Permission.UsersView):
|
||||
# return scu.json_error(403, "accès non autorisé")
|
||||
# user: User = db.session.get(User, uid)
|
||||
# if user is None:
|
||||
# return json_error(404, "user not found")
|
||||
# # Check permission
|
||||
# if current_user.id != user.id:
|
||||
# if g.scodoc_dept:
|
||||
# allowed_depts = current_user.get_depts_with_permission(Permission.UsersView)
|
||||
# if (None not in allowed_depts) and (user.dept not in allowed_depts):
|
||||
# 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
|
||||
if not user.edt_id:
|
||||
return json_error(404, "user not configured")
|
||||
ics_filename = sco_edt_cal.get_ics_user_edt_filename(user.edt_id)
|
||||
if not ics_filename:
|
||||
return json_error(404, "no calendar for this user")
|
||||
# # Cherche ics
|
||||
# if not user.edt_id:
|
||||
# return json_error(404, "user not configured")
|
||||
# ics_filename = sco_edt_cal.get_ics_user_edt_filename(user.edt_id)
|
||||
# if not ics_filename:
|
||||
# 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:
|
||||
# - Construire mapping edt2modimpl: edt_id -> modimpl
|
||||
# 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 cherche min, max des dates des events)
|
||||
# - Modifier décodage des groupes dans convert_ics pour avoi run mapping
|
||||
# de groupe par semestre (retrouvé grâce au modimpl associé à l'event)
|
||||
# # TODO:
|
||||
# # - Construire mapping edt2modimpl: edt_id -> modimpl
|
||||
# # 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 cherche min, max des dates des events)
|
||||
# # - Modifier décodage des groupes dans convert_ics pour avoi run mapping
|
||||
# # 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(
|
||||
calendar,
|
||||
edt2group=edt2group,
|
||||
default_group=default_group,
|
||||
edt2modimpl=edt2modimpl,
|
||||
)
|
||||
edt_dict = sco_edt_cal.translate_calendar(
|
||||
events_scodoc, group_ids, show_modules_titles=show_modules_titles
|
||||
)
|
||||
return edt_dict
|
||||
# events_scodoc, _ = sco_edt_cal.convert_ics(
|
||||
# calendar,
|
||||
# edt2group=edt2group,
|
||||
# default_group=default_group,
|
||||
# edt2modimpl=edt2modimpl,
|
||||
# )
|
||||
# edt_dict = sco_edt_cal.translate_calendar(
|
||||
# events_scodoc, group_ids, show_modules_titles=show_modules_titles
|
||||
# )
|
||||
# return edt_dict
|
||||
|
Loading…
Reference in New Issue
Block a user