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
|
formsemestre, bulletins_sem.res
|
||||||
)
|
)
|
||||||
if warn_html:
|
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(
|
ue_validation_by_niveau = validations_view.get_ue_validation_by_niveau(
|
||||||
refcomp, etud
|
refcomp, etud
|
||||||
)
|
)
|
||||||
|
@ -242,7 +242,8 @@ class ResultatsSemestreClassic(NotesTableCompat):
|
|||||||
)
|
)
|
||||||
}">saisir le coefficient de cette UE avant de continuer</a></p>
|
}">saisir le coefficient de cette UE avant de continuer</a></p>
|
||||||
</div>
|
</div>
|
||||||
"""
|
""",
|
||||||
|
safe=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -518,7 +518,8 @@ class ResultatsSemestre(ResultatsCache):
|
|||||||
Corrigez ou faite corriger le programme
|
Corrigez ou faite corriger le programme
|
||||||
<a href="{url_for('notes.ue_table', scodoc_dept=g.scodoc_dept,
|
<a href="{url_for('notes.ue_table', scodoc_dept=g.scodoc_dept,
|
||||||
formation_id=ue_capitalized.formation_id)}">via cette page</a>.
|
formation_id=ue_capitalized.formation_id)}">via cette page</a>.
|
||||||
"""
|
""",
|
||||||
|
safe=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# Coefs de l'UE capitalisée en formation classique:
|
# 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))
|
return r'<img %s src="%s"%s/>' % (match.group(2), logo.filepath, match.group(4))
|
||||||
raise ScoValueError(
|
raise ScoValueError(
|
||||||
'balise "%s": logo "%s" introuvable'
|
'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")
|
log("_drop_ano_db: no temp db, nothing to drop")
|
||||||
return
|
return
|
||||||
cmd = ["dropdb", ano_db_name]
|
cmd = ["dropdb", ano_db_name]
|
||||||
log("sco_dump_and_send_db: {}".format(cmd))
|
log(f"sco_dump_and_send_db: {cmd}")
|
||||||
try:
|
try:
|
||||||
_ = subprocess.check_output(cmd)
|
_ = subprocess.check_output(cmd)
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as exc:
|
||||||
log("sco_dump_and_send_db: exception dropdb {}".format(e))
|
log(f"sco_dump_and_send_db: exception dropdb {exc}")
|
||||||
raise ScoValueError(
|
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,
|
scodoc_dept=g.scodoc_dept,
|
||||||
formation_id=formation.id,
|
formation_id=formation.id,
|
||||||
),
|
),
|
||||||
|
safe=True,
|
||||||
) from exc
|
) from exc
|
||||||
|
|
||||||
ScolarNews.add(
|
ScolarNews.add(
|
||||||
|
@ -45,13 +45,17 @@ class ScoInvalidCSRF(ScoException):
|
|||||||
|
|
||||||
|
|
||||||
class ScoValueError(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
|
# mal nommée: super classe de toutes les exceptions avec page
|
||||||
# d'erreur gentille.
|
# d'erreur gentille.
|
||||||
def __init__(self, msg, dest_url=None):
|
def __init__(self, msg, dest_url=None, safe=False):
|
||||||
super().__init__(msg)
|
super().__init__(msg)
|
||||||
self.dest_url = dest_url
|
self.dest_url = dest_url
|
||||||
|
self.safe = safe # utilisé par template sco_value_error.j2
|
||||||
|
|
||||||
|
|
||||||
class ScoPermissionDenied(ScoValueError):
|
class ScoPermissionDenied(ScoValueError):
|
||||||
|
@ -115,7 +115,8 @@ def formsemestre_synchro_etuds(
|
|||||||
url_for('notes.formsemestre_editwithmodules',
|
url_for('notes.formsemestre_editwithmodules',
|
||||||
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre.id)
|
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre.id)
|
||||||
}">Modifier ce semestre</a>)
|
}">Modifier ce semestre</a>)
|
||||||
"""
|
""",
|
||||||
|
safe=True,
|
||||||
)
|
)
|
||||||
footer = html_sco_header.sco_footer()
|
footer = html_sco_header.sco_footer()
|
||||||
base_url = url_for(
|
base_url = url_for(
|
||||||
|
@ -5,15 +5,19 @@
|
|||||||
|
|
||||||
<h2>Erreur !</h2>
|
<h2>Erreur !</h2>
|
||||||
|
|
||||||
{{ exc }}
|
{% if exc.safe %}
|
||||||
|
{{ exc | safe }}
|
||||||
|
{% else %}
|
||||||
|
{{ exc }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div style="margin-top: 16px;">
|
<div style="margin-top: 16px;">
|
||||||
{% if g.scodoc_dept %}
|
{% 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 %}
|
{% 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 %}
|
{% 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 %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1436,14 +1436,14 @@ def formsemestre_desinscription(etudid, formsemestre_id, dialog_confirmed=False)
|
|||||||
if nt.etud_has_decision(etudid):
|
if nt.etud_has_decision(etudid):
|
||||||
raise ScoValueError(
|
raise ScoValueError(
|
||||||
f"""Désinscription impossible: l'étudiant a une décision de jury
|
f"""Désinscription impossible: l'étudiant a une décision de jury
|
||||||
(la supprimer avant si nécessaire:
|
(la supprimer avant si nécessaire avec
|
||||||
<a href="{
|
<a class="stdlink" href="{
|
||||||
url_for("notes.formsemestre_validation_suppress_etud",
|
url_for("notes.formsemestre_validation_suppress_etud",
|
||||||
scodoc_dept=g.scodoc_dept, etudid=etudid,
|
scodoc_dept=g.scodoc_dept, etudid=etudid,
|
||||||
formsemestre_id=formsemestre_id)
|
formsemestre_id=formsemestre_id)
|
||||||
}">supprimer décision jury</a>
|
}">supprimer décision jury</a>)
|
||||||
)
|
""",
|
||||||
"""
|
safe=True,
|
||||||
)
|
)
|
||||||
if not dialog_confirmed:
|
if not dialog_confirmed:
|
||||||
etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0]
|
etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
|
Loading…
Reference in New Issue
Block a user