diff --git a/server.py b/server.py index b5397a4224b5fe779ea899600a91b6dbe3d14454..0997e7ca654d2119ca65594664ec86f3bd2d2e3d 100755 --- a/server.py +++ b/server.py @@ -1524,6 +1524,26 @@ def list_errors(): "errors-list.html", erros=errors, errors_table=errors_table) +@app.route("/errors/delete") +@login_required +@protect_csrf +@require_modify_right() +def delete_errors(): + user = current_user() + errors = [ + error for error in Error.query.all() + if error.protocol.protocoltype.has_private_view_right(user) + ] + if errors: + for error in errors: + db.session.delete(error) + db.session.commit() + flash("Alle verfügbaren Fehler gelöscht.", "alert-success") + else : + flash("Keine Fehler zum Löschen gefunden.") + return back.redirect("list_errors") + + @app.route("/error/show/<int:error_id>") @back.anchor @login_required diff --git a/templates/errors-list.html b/templates/errors-list.html index aaab0b7002841bf5b297cbb7bd05dd8212530112..9a211a419bcb3764cacbe57069a9f79cec3721de 100644 --- a/templates/errors-list.html +++ b/templates/errors-list.html @@ -5,5 +5,6 @@ {% block content %} <div class="container"> {{render_table(errors_table)}} + <a href="{{url_for("delete_errors", csrf_token=get_csrf_token())}}"> Alle Löschen</a> </div> {% endblock %}