forked from ScoDoc/ScoDoc
Enhance ScoValueError messages (lié à 87aaf12d27
)
This commit is contained in:
parent
8847a1f008
commit
3b436fa0f3
@ -124,7 +124,9 @@ def _build_bulletin_but_infos(
|
||||
formsemestre, bulletins_sem.res
|
||||
)
|
||||
if warn_html:
|
||||
raise ScoValueError("<b>Formation mal configurée pour le BUT</b>" + warn_html)
|
||||
raise ScoValueError(
|
||||
"<b>Formation mal configurée pour le BUT</b>" + warn_html, safe=True
|
||||
)
|
||||
ue_validation_by_niveau = validations_view.get_ue_validation_by_niveau(
|
||||
refcomp, etud
|
||||
)
|
||||
|
@ -242,7 +242,8 @@ class ResultatsSemestreClassic(NotesTableCompat):
|
||||
)
|
||||
}">saisir le coefficient de cette UE avant de continuer</a></p>
|
||||
</div>
|
||||
"""
|
||||
""",
|
||||
safe=True,
|
||||
)
|
||||
|
||||
|
||||
|
@ -518,7 +518,8 @@ class ResultatsSemestre(ResultatsCache):
|
||||
Corrigez ou faite corriger le programme
|
||||
<a href="{url_for('notes.ue_table', scodoc_dept=g.scodoc_dept,
|
||||
formation_id=ue_capitalized.formation_id)}">via cette page</a>.
|
||||
"""
|
||||
""",
|
||||
safe=True,
|
||||
)
|
||||
else:
|
||||
# Coefs de l'UE capitalisée en formation classique:
|
||||
|
@ -122,7 +122,8 @@ def replacement_function(match) -> str:
|
||||
return r'<img %s src="%s"%s/>' % (match.group(2), logo.filepath, match.group(4))
|
||||
raise ScoValueError(
|
||||
'balise "%s": logo "%s" introuvable'
|
||||
% (pydoc.html.escape(balise), pydoc.html.escape(name))
|
||||
% (pydoc.html.escape(balise), pydoc.html.escape(name)),
|
||||
safe=True,
|
||||
)
|
||||
|
||||
|
||||
|
@ -216,11 +216,11 @@ def _drop_ano_db(ano_db_name):
|
||||
log("_drop_ano_db: no temp db, nothing to drop")
|
||||
return
|
||||
cmd = ["dropdb", ano_db_name]
|
||||
log("sco_dump_and_send_db: {}".format(cmd))
|
||||
log(f"sco_dump_and_send_db: {cmd}")
|
||||
try:
|
||||
_ = subprocess.check_output(cmd)
|
||||
except subprocess.CalledProcessError as e:
|
||||
log("sco_dump_and_send_db: exception dropdb {}".format(e))
|
||||
except subprocess.CalledProcessError as exc:
|
||||
log(f"sco_dump_and_send_db: exception dropdb {exc}")
|
||||
raise ScoValueError(
|
||||
"erreur lors de la suppression de la base {}".format(ano_db_name)
|
||||
)
|
||||
f"erreur lors de la suppression de la base {ano_db_name}"
|
||||
) from exc
|
||||
|
@ -326,6 +326,7 @@ def do_formation_create(args: dict) -> Formation:
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
formation_id=formation.id,
|
||||
),
|
||||
safe=True,
|
||||
) from exc
|
||||
|
||||
ScolarNews.add(
|
||||
|
@ -45,13 +45,17 @@ class ScoInvalidCSRF(ScoException):
|
||||
|
||||
|
||||
class ScoValueError(ScoException):
|
||||
"Exception avec page d'erreur utilisateur, et qui stoque dest_url"
|
||||
"""Exception avec page d'erreur utilisateur
|
||||
- dest_url : url où aller après la page d'erreur
|
||||
- safe (default False): si vrai, affiche le message non html quoté.
|
||||
"""
|
||||
|
||||
# mal nommée: super classe de toutes les exceptions avec page
|
||||
# d'erreur gentille.
|
||||
def __init__(self, msg, dest_url=None):
|
||||
def __init__(self, msg, dest_url=None, safe=False):
|
||||
super().__init__(msg)
|
||||
self.dest_url = dest_url
|
||||
self.safe = safe # utilisé par template sco_value_error.j2
|
||||
|
||||
|
||||
class ScoPermissionDenied(ScoValueError):
|
||||
|
@ -115,7 +115,8 @@ def formsemestre_synchro_etuds(
|
||||
url_for('notes.formsemestre_editwithmodules',
|
||||
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre.id)
|
||||
}">Modifier ce semestre</a>)
|
||||
"""
|
||||
""",
|
||||
safe=True,
|
||||
)
|
||||
footer = html_sco_header.sco_footer()
|
||||
base_url = url_for(
|
||||
|
@ -5,15 +5,19 @@
|
||||
|
||||
<h2>Erreur !</h2>
|
||||
|
||||
{{ exc }}
|
||||
{% if exc.safe %}
|
||||
{{ exc | safe }}
|
||||
{% else %}
|
||||
{{ exc }}
|
||||
{% endif %}
|
||||
|
||||
<div style="margin-top: 16px;">
|
||||
{% if g.scodoc_dept %}
|
||||
<a href="{{ exc.dest_url or url_for('scolar.index_html', scodoc_dept=g.scodoc_dept) }}">continuer</a>
|
||||
<a class="stdlink" href="{{ exc.dest_url or url_for('scolar.index_html', scodoc_dept=g.scodoc_dept) }}">continuer</a>
|
||||
{% elif exc.dest_url %}
|
||||
<a href="{{ exc.dest_url or url_for('scodoc.index') }}">continuer</a>
|
||||
<a class="stdlink" href="{{ exc.dest_url or url_for('scodoc.index') }}">continuer</a>
|
||||
{% else %}
|
||||
<a href="{{ exc.dest_url or url_for('scodoc.index') }}">retour page d'accueil</a>
|
||||
<a class="stdlink" href="{{ exc.dest_url or url_for('scodoc.index') }}">retour page d'accueil</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
@ -1436,14 +1436,14 @@ def formsemestre_desinscription(etudid, formsemestre_id, dialog_confirmed=False)
|
||||
if nt.etud_has_decision(etudid):
|
||||
raise ScoValueError(
|
||||
f"""Désinscription impossible: l'étudiant a une décision de jury
|
||||
(la supprimer avant si nécessaire:
|
||||
<a href="{
|
||||
(la supprimer avant si nécessaire avec
|
||||
<a class="stdlink" href="{
|
||||
url_for("notes.formsemestre_validation_suppress_etud",
|
||||
scodoc_dept=g.scodoc_dept, etudid=etudid,
|
||||
formsemestre_id=formsemestre_id)
|
||||
}">supprimer décision jury</a>
|
||||
)
|
||||
"""
|
||||
}">supprimer décision jury</a>)
|
||||
""",
|
||||
safe=True,
|
||||
)
|
||||
if not dialog_confirmed:
|
||||
etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0]
|
||||
|
Loading…
Reference in New Issue
Block a user