Compare commits

...

4 Commits

3 changed files with 82 additions and 64 deletions

View File

@ -66,6 +66,7 @@ from app.scodoc.sco_permissions import Permission
from app.scodoc.sco_prepajury import feuille_preparation_jury from app.scodoc.sco_prepajury import feuille_preparation_jury
from app.scodoc.sco_pvjury import formsemestre_pvjury from app.scodoc.sco_pvjury import formsemestre_pvjury
from app.scodoc.sco_recapcomplet import formsemestre_recapcomplet from app.scodoc.sco_recapcomplet import formsemestre_recapcomplet
from app.scodoc.sco_saisie_notes import notes_add
@bp.route("/departements", methods=["GET"]) @bp.route("/departements", methods=["GET"])
@ -158,11 +159,12 @@ def referenciel_competences(dept: str, formation_id: int):
return jsonify(ref.to_dict()) return jsonify(ref.to_dict())
@bp.route("/departements/<string:dept>/formations/programme/<string:sem_idx>", methods=["GET"]) @bp.route("/departements/<string:dept>/formsemestre<string:formsemestre_id>/programme", methods=["GET"])
def semestre_index(dept: str, sem_idx: str): def semestre_index(dept: str, formsemestre_id: int):
"""
Retourne la liste des Ues, ressources et SAE d'un semestre
""" """
"""
return error_response(501, message="not implemented") return error_response(501, message="not implemented")
@ -570,15 +572,18 @@ def evaluation_notes(evaluation_id: int):
return jsonify(data) return jsonify(data)
@bp.route( @bp.route("/evaluations/eval_set_notes?eval_id=<int:eval_id>&etudid=<int:etudid>&note=<float:note>", methods=["POST"])
"/evaluations/eval_set_notes?eval_id=<int:eval_id>&etudid=<int:etudid>&note=<int:note>", @bp.route("/evaluations/eval_set_notes?eval_id=<int:eval_id>&nip=<int:nip>&note=<float:note>", methods=["POST"])
methods=["POST"], @bp.route("/evaluations/eval_set_notes?eval_id=<int:eval_id>&ine=<int:ine>&note=<float:note>", methods=["POST"])
)
@token_auth.login_required @token_auth.login_required
def evaluation_set_notes(eval_id: int, etudid: int, note: float): def evaluation_set_notes(eval_id: int, etudid: int, note: float):
""" """
Set les notes d'une évaluation pour un étudiant donnée Set les notes d'une évaluation pour un étudiant donnée
""" """
# fonction to use : notes_add
# Qu'est ce qu'un user ???
#notes_add()
return error_response(501, message="Not implemented") return error_response(501, message="Not implemented")
@ -845,6 +850,7 @@ def abs_groupe_etat(
###################################################### Logos ########################################################## ###################################################### Logos ##########################################################
# XXX TODO voir get_logo déjà existant dans app/views/scodoc.py
@bp.route("/logos", methods=["GET"]) @bp.route("/logos", methods=["GET"])
def liste_logos(format="json"): def liste_logos(format="json"):
@ -852,15 +858,16 @@ def liste_logos(format="json"):
Liste des logos définis pour le site scodoc. Liste des logos définis pour le site scodoc.
""" """
# fonction to use : list_logos() # fonction to use : list_logos()
try: # try:
res = list_logos() # res = list_logos()
except ValueError: # except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel") # return error_response(409, message="La requête ne peut être traitée en létat actuel")
#
# if res is None:
# return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés")
#
# return res
if res is None:
return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés")
return res
@bp.route("/logos/<string:logo_name>", methods=["GET"]) @bp.route("/logos/<string:logo_name>", methods=["GET"])
@ -869,15 +876,17 @@ def recup_logo_global(logo_name: str):
Retourne l'image au format png ou jpg Retourne l'image au format png ou jpg
""" """
# fonction to use find_logo # fonction to use find_logo
try: # try:
res = find_logo(logo_name) # res = find_logo(logo_name)
except ValueError: # except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel") # return error_response(409, message="La requête ne peut être traitée en létat actuel")
#
# if res is None:
# return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés")
#
# return res
if res is None:
return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés")
return res
@bp.route("/departements/<string:dept>/logos", methods=["GET"]) @bp.route("/departements/<string:dept>/logos", methods=["GET"])
@ -886,16 +895,16 @@ def logo_dept(dept: str):
Liste des logos définis pour le département visé. Liste des logos définis pour le département visé.
""" """
# fonction to use: _list_dept_logos # fonction to use: _list_dept_logos
dept_id = models.Departement.query.filter_by(acronym=dept).first() # dept_id = models.Departement.query.filter_by(acronym=dept).first()
try: # try:
res = _list_dept_logos(dept_id.id) # res = _list_dept_logos(dept_id.id)
except ValueError: # except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel") # return error_response(409, message="La requête ne peut être traitée en létat actuel")
#
if res is None: # if res is None:
return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés") # return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés")
#
return res # return res
@bp.route("/departement/<string:dept>/logos/<string:logo_name>", methods=["GET"]) @bp.route("/departement/<string:dept>/logos/<string:logo_name>", methods=["GET"])
@ -904,13 +913,13 @@ def recup_logo_dept_global(dept: str, logo_name: str):
L'image format png ou jpg L'image format png ou jpg
""" """
# fonction to use find_logo # fonction to use find_logo
dept_id = models.Departement.query.filter_by(acronym=dept).first() # dept_id = models.Departement.query.filter_by(acronym=dept).first()
try: # try:
res = find_logo(logo_name, dept_id.id) # res = find_logo(logo_name, dept_id.id)
except ValueError: # except ValueError:
return error_response(409, message="La requête ne peut être traitée en létat actuel") # return error_response(409, message="La requête ne peut être traitée en létat actuel")
#
if res is None: # if res is None:
return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés") # return error_response(200, message="Aucun logo trouvé correspondant aux informations renseignés")
#
return res # return res

View File

@ -1013,11 +1013,16 @@ def mail_bulletin(formsemestre_id, I, pdfdata, filename, recipient_addr):
intro_mail = sco_preferences.get_preference("bul_intro_mail", formsemestre_id) intro_mail = sco_preferences.get_preference("bul_intro_mail", formsemestre_id)
if intro_mail: if intro_mail:
hea = intro_mail % { try:
"nomprenom": etud["nomprenom"], hea = intro_mail % {
"dept": dept, "nomprenom": etud["nomprenom"],
"webmaster": webmaster, "dept": dept,
} "webmaster": webmaster,
}
except KeyError as e:
raise ScoValueError(
"format 'Message d'accompagnement' (bul_intro_mail) invalide, revoir les réglages dans les préférences"
)
else: else:
hea = "" hea = ""

View File

@ -854,23 +854,27 @@ def formsemestre_import_etud_admission(
apo_emailperso = etud.get("mailperso", "") apo_emailperso = etud.get("mailperso", "")
if info["emailperso"] and not apo_emailperso: if info["emailperso"] and not apo_emailperso:
apo_emailperso = info["emailperso"] apo_emailperso = info["emailperso"]
if ( if import_email:
import_email if not "mail" in etud:
and info["email"] != etud["mail"] raise ScoValueError(
or info["emailperso"] != apo_emailperso "la réponse portail n'a pas le champs requis 'mail'"
): )
sco_etud.adresse_edit( if (
cnx, info["email"] != etud["mail"]
args={ or info["emailperso"] != apo_emailperso
"etudid": etudid, ):
"adresse_id": info["adresse_id"], sco_etud.adresse_edit(
"email": etud["mail"], cnx,
"emailperso": apo_emailperso, args={
}, "etudid": etudid,
) "adresse_id": info["adresse_id"],
# notifie seulement les changements d'adresse mail institutionnelle "email": etud["mail"],
if info["email"] != etud["mail"]: "emailperso": apo_emailperso,
changed_mails.append((info, etud["mail"])) },
)
# notifie seulement les changements d'adresse mail institutionnelle
if info["email"] != etud["mail"]:
changed_mails.append((info, etud["mail"]))
else: else:
unknowns.append(code_nip) unknowns.append(code_nip)
sco_cache.invalidate_formsemestre(formsemestre_id=sem["formsemestre_id"]) sco_cache.invalidate_formsemestre(formsemestre_id=sem["formsemestre_id"])