diff --git a/app/__init__.py b/app/__init__.py index 28d94dfd46cfd390e06734f04e85eee4323a121a..eead606373872ae3e0ffef4b97c414ecbceacab4 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -167,6 +167,8 @@ def create_app(config_class=Config): return "", 404 else: app.logger.error(f"Page not found: {request.path}") + session['error_header'] = 'Unable to find requested page' + session['generic_error_message'] = f"Page not found: {request.path}" session['error_message'] = f"Page not found: {request.path}" return redirect(url_for('errors.error')) @@ -174,14 +176,18 @@ def create_app(config_class=Config): @app.errorhandler(Exception) def handle_exception(e): app.logger.error(f"Unhandled exception: {e}") + session['error_header'] = 'Something unexpected happened' session['error_message'] = str(e) + session['generic_error_message'] = 'Something went wrong, if this continues please contact support' return redirect(url_for('errors.error')) @app.errorhandler(403) def handle_exception(e): app.logger.debug(f"Unauthorized: {e}") + session['error_header'] = "You don't have permission to view this resource" session['error_message'] = str(e) + session['generic_error_message'] = f"You don't have permission to view the {request.endpoint} endpoint. If you believe this is in error contact support." return redirect(url_for('errors.no_permission')) diff --git a/app/errors/routes.py b/app/errors/routes.py index 5b744f674ca38168cd77bdf76b666ee46a9577e2..321328a152bc24993c168c02c6cb4e9529093730 100644 --- a/app/errors/routes.py +++ b/app/errors/routes.py @@ -4,16 +4,18 @@ from app.logger import error_logger @bp.route('/error') def error(): - error_message = 'Something went wrong, if this continues please contact support.' + error_header = session['error_header'] + error_message = session['generic_error_message'] user_id = 'User Not Logged In' if g.is_admin: # Only display error if admin is logged in, otherwise throw generic error to user error_message = session.get('error_message') if '_user_id' in session: user_id = session['_user_id'] error_logger.error(f"Error: {error_message} \nAction performed by UserID: {user_id}") - return render_template("errors/error.html", error_message=error_message) + return render_template("errors/error.html", error_header=error_header, error_message=error_message) @bp.route('/no_permission') def no_permission(): - error_message = 'You do not have the required permission to view this page.' - return render_template("errors/error.html", error_message=error_message) + error_header = session['error_header'] + error_message = session['generic_error_message'] + return render_template("errors/error.html", error_header=error_header, error_message=error_message) diff --git a/app/templates/_results.html b/app/templates/_results.html index 980e47f188220c99edfcffd12af024ad00f7b825..01ae38b760a65dcde8672956325af5a30ce54f5a 100644 --- a/app/templates/_results.html +++ b/app/templates/_results.html @@ -20,7 +20,7 @@ <td><img src="{{ item.main_image_url }}" class="main-image" alt="Main Image" onclick="event.stopPropagation(); showModal({{ item.image_urls | safe }});"></td> <td>{{ item.depart_location }}</td> <td> - {% if discount > 0 %} + {% if discount > 0 %} <span style="text-decoration: line-through;">£ {{ item.original_cost }}</span> <span>£ {{ item.discounted_cost }}</span> {% else %} diff --git a/app/templates/errors/error.html b/app/templates/errors/error.html index 94f3b68e68cfb6af78981ecaf46c1962c79d42b6..348d2b1e6edcc290d1c35c22abdc1b326ecdb648 100644 --- a/app/templates/errors/error.html +++ b/app/templates/errors/error.html @@ -6,7 +6,7 @@ <link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon"> </head> <div class="quandary-div"> - <h1>Something went wrong</h1> + <h1>{{error_header}}</h1> <div class="container"> <div><span>{{ error_message }}</span></div> <div class="button_2" onclick="history.back()">