forked from ScoDoc/ScoDoc
Form. assistance dans exception handler
This commit is contained in:
parent
c0a8f6f7d6
commit
6a525eb1a1
@ -62,7 +62,7 @@ def handle_access_denied(exc):
|
||||
return render_template("error_access_denied.html", exc=exc), 403
|
||||
|
||||
|
||||
def internal_server_error(e):
|
||||
def internal_server_error(exc):
|
||||
"""Bugs scodoc, erreurs 500"""
|
||||
# note that we set the 500 status explicitly
|
||||
return (
|
||||
@ -70,6 +70,8 @@ def internal_server_error(e):
|
||||
"error_500.html",
|
||||
SCOVERSION=sco_version.SCOVERSION,
|
||||
date=datetime.datetime.now().isoformat(),
|
||||
exc=exc,
|
||||
request_url=request.url,
|
||||
),
|
||||
500,
|
||||
)
|
||||
|
@ -51,7 +51,7 @@ import fcntl
|
||||
import subprocess
|
||||
import requests
|
||||
|
||||
from flask import flash
|
||||
from flask import flash, request
|
||||
from flask_login import current_user
|
||||
|
||||
import app.scodoc.notesdb as ndb
|
||||
@ -66,7 +66,7 @@ from app.scodoc.sco_exceptions import ScoValueError
|
||||
SCO_DUMP_LOCK = "/tmp/scodump.lock"
|
||||
|
||||
|
||||
def sco_dump_and_send_db():
|
||||
def sco_dump_and_send_db(message: str = "", request_url: str = ""):
|
||||
"""Dump base de données et l'envoie anonymisée pour debug"""
|
||||
H = [html_sco_header.sco_header(page_title="Assistance technique")]
|
||||
# get currect (dept) DB name:
|
||||
@ -95,7 +95,7 @@ def sco_dump_and_send_db():
|
||||
_anonymize_db(ano_db_name)
|
||||
|
||||
# Send
|
||||
r = _send_db(ano_db_name)
|
||||
r = _send_db(ano_db_name, message, request_url)
|
||||
if (
|
||||
r.status_code
|
||||
== requests.codes.INSUFFICIENT_STORAGE # pylint: disable=no-member
|
||||
@ -175,7 +175,7 @@ def _get_scodoc_serial():
|
||||
return 0
|
||||
|
||||
|
||||
def _send_db(ano_db_name):
|
||||
def _send_db(ano_db_name: str, message: str = "", request_url: str = ""):
|
||||
"""Dump this (anonymized) database and send it to tech support"""
|
||||
log(f"dumping anonymized database {ano_db_name}")
|
||||
try:
|
||||
@ -184,7 +184,9 @@ def _send_db(ano_db_name):
|
||||
)
|
||||
except subprocess.CalledProcessError as e:
|
||||
log(f"sco_dump_and_send_db: exception in anonymisation: {e}")
|
||||
raise ScoValueError(f"erreur lors de l'anonymisation de la base {ano_db_name}")
|
||||
raise ScoValueError(
|
||||
f"erreur lors de l'anonymisation de la base {ano_db_name}"
|
||||
) from e
|
||||
|
||||
log("uploading anonymized dump...")
|
||||
files = {"file": (ano_db_name + ".dump", dump)}
|
||||
@ -194,6 +196,8 @@ def _send_db(ano_db_name):
|
||||
files=files,
|
||||
data={
|
||||
"dept_name": sco_preferences.get_preference("DeptName"),
|
||||
"message": message or "",
|
||||
"request_url": request_url or request.url,
|
||||
"serial": _get_scodoc_serial(),
|
||||
"sco_user": str(current_user),
|
||||
"sent_by": sco_users.user_info(str(current_user))["nomcomplet"],
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% import 'bootstrap/wtf.html' as wtf %}
|
||||
|
||||
{% block title %}Une erreur est survenue !{% endblock %}
|
||||
{% block body %}
|
||||
{% block app_content %}
|
||||
<h1>Une erreur est survenue !</h1>
|
||||
<p>Oups...</tt> <span style="color:red;"><b>ScoDoc version
|
||||
<span style="font-size: 120%;">{{SCOVERSION}}</span></b></span>
|
||||
@ -12,10 +12,22 @@
|
||||
|
||||
<p> Si le problème persiste, contacter l'administrateur de votre site,
|
||||
ou écrire la liste "notes" <a href="mailto:notes@listes.univ-paris13.fr">notes@listes.univ-paris13.fr</a> en
|
||||
indiquant la version du logiciel
|
||||
<br />
|
||||
(plus d'informations sur les listes de diffusion <a href="https://scodoc.org/ListesDeDiffusion/">voir
|
||||
cette page</a>).
|
||||
indiquant la version du logiciel.
|
||||
</p>
|
||||
{% if 'scodoc_dept' in g %}
|
||||
<p>Pour aider les développeurs à corriger le problème, nous vous suggérons d'envoyer les données
|
||||
sur votre configuration:
|
||||
<form method="POST" action="{{ url_for( 'scolar.sco_dump_and_send_db', scodoc_dept=g.scodoc_dept ) }}">
|
||||
<input type="hidden" name="request_url" value="{{request_url}}">
|
||||
<input type="submit" value="Envoyer données assistance">
|
||||
<div>Message optionnel: </div>
|
||||
<textarea name="message" cols="40" rows="4"></textarea>
|
||||
|
||||
</form>
|
||||
</p>
|
||||
{% endif %}
|
||||
<p>Pour plus d'informations sur les listes de diffusion <a href="https://scodoc.org/ListesDeDiffusion/">voir
|
||||
cette page</a>.
|
||||
</p>
|
||||
|
||||
<p><a href="{{ url_for('scodoc.index') }}">retour à la page d'accueil</a></p>
|
||||
|
@ -2190,7 +2190,11 @@ def stat_bac(formsemestre_id):
|
||||
return Bacs
|
||||
|
||||
|
||||
# --- Dump
|
||||
sco_publish(
|
||||
"/sco_dump_and_send_db", sco_dump_db.sco_dump_and_send_db, Permission.ScoView
|
||||
)
|
||||
# --- Dump (assistance)
|
||||
@bp.route("/sco_dump_and_send_db", methods=["GET", "POST"])
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def sco_dump_and_send_db(message="", request_url=""):
|
||||
"Send anonymized data to supervision"
|
||||
return sco_dump_db.sco_dump_and_send_db(message, request_url)
|
||||
|
Loading…
Reference in New Issue
Block a user