diff --git a/passbook/core/templates/error/403.html b/passbook/core/templates/error/403.html
deleted file mode 100644
index 7aaebb64c..000000000
--- a/passbook/core/templates/error/403.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends 'login/base.html' %}
-
-{% load static %}
-{% load i18n %}
-{% load utils %}
-
-{% block head %}
-{{ block.super }}
-
-{% endblock %}
-
-{% block card %}
-
-
-{% endblock %}
diff --git a/passbook/core/templates/error/404.html b/passbook/core/templates/error/404.html
deleted file mode 100644
index 3dcfbb5cc..000000000
--- a/passbook/core/templates/error/404.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends 'login/base.html' %}
-
-{% load static %}
-{% load i18n %}
-{% load utils %}
-
-{% block head %}
-{{ block.super }}
-
-{% endblock %}
-
-{% block card %}
-
-
-{% endblock %}
diff --git a/passbook/core/templates/error/500.html b/passbook/core/templates/error/500.html
deleted file mode 100644
index 4aa544a6f..000000000
--- a/passbook/core/templates/error/500.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends 'login/base.html' %}
-
-{% load static %}
-{% load i18n %}
-{% load utils %}
-
-{% block head %}
-{{ block.super }}
-
-{% endblock %}
-
-{% block card %}
-
-
-{% endblock %}
diff --git a/passbook/core/templates/error/400.html b/passbook/core/templates/error/generic.html
similarity index 74%
rename from passbook/core/templates/error/400.html
rename to passbook/core/templates/error/generic.html
index 4c6d5c069..1c5b2ea5a 100644
--- a/passbook/core/templates/error/400.html
+++ b/passbook/core/templates/error/generic.html
@@ -4,16 +4,6 @@
{% load i18n %}
{% load utils %}
-{% block head %}
-{{ block.super }}
-
-{% endblock %}
-
{% block card_title %}
{% trans 'Bad Request' %}
{% endblock %}
diff --git a/passbook/core/views/error.py b/passbook/core/views/error.py
index f199d8df1..4d498e36d 100644
--- a/passbook/core/views/error.py
+++ b/passbook/core/views/error.py
@@ -29,29 +29,37 @@ class ServerErrorTemplateResponse(TemplateResponse, HttpResponseServerError):
class BadRequestView(TemplateView):
"""Show Bad Request message"""
+ extra_context = {"card_title": "Bad Request"}
+
response_class = BadRequestTemplateResponse
- template_name = "error/400.html"
+ template_name = "error/generic.html"
class ForbiddenView(TemplateView):
"""Show Forbidden message"""
+ extra_context = {"card_title": "Forbidden"}
+
response_class = ForbiddenTemplateResponse
- template_name = "error/403.html"
+ template_name = "error/generic.html"
class NotFoundView(TemplateView):
"""Show Not Found message"""
+ extra_context = {"card_title": "Not Found"}
+
response_class = NotFoundTemplateResponse
- template_name = "error/404.html"
+ template_name = "error/generic.html"
class ServerErrorView(TemplateView):
"""Show Server Error message"""
+ extra_context = {"card_title": "Server Error"}
+
response_class = ServerErrorTemplateResponse
- template_name = "error/500.html"
+ template_name = "error/generic.html"
# pylint: disable=useless-super-delegation
def dispatch(self, *args, **kwargs):
diff --git a/passbook/factors/view.py b/passbook/factors/view.py
index eee50cf64..a81357e42 100644
--- a/passbook/factors/view.py
+++ b/passbook/factors/view.py
@@ -14,6 +14,7 @@ from passbook.core.views.utils import PermissionDeniedView
from passbook.lib.config import CONFIG
from passbook.lib.utils.reflection import class_to_path, path_to_class
from passbook.lib.utils.urls import is_url_absolute
+from passbook.lib.views import bad_request_message
from passbook.policies.engine import PolicyEngine
LOGGER = get_logger()
@@ -62,9 +63,7 @@ class AuthenticationView(UserPassesTestMixin, View):
f"match configured domain of '{config_domain}'."
)
LOGGER.warning(message)
- return render(
- self.request, "error/400.html", context={"message": message}, status=400
- )
+ return bad_request_message(self.request, message)
return None
def handle_no_permission(self) -> HttpResponse:
diff --git a/passbook/lib/views.py b/passbook/lib/views.py
index f7d25f425..cb537b826 100644
--- a/passbook/lib/views.py
+++ b/passbook/lib/views.py
@@ -27,4 +27,9 @@ class CreateAssignPermView(CreateView):
def bad_request_message(request: HttpRequest, message: str) -> HttpResponse:
"""Return generic error page with message, with status code set to 400"""
- return render(request, "error/400.html", {"message": message}, status=400)
+ return render(
+ request,
+ "error/generic.html",
+ {"message": message, "card_title": "Bad Request",},
+ status=400,
+ )