Merge branch '35-better-error-templates' into 'master'
Resolve "Better Error templates" Closes #35 See merge request BeryJu.org/passbook!20
This commit is contained in:
commit
9a1a0f0aa8
26
passbook/core/templates/error/400.html
Normal file
26
passbook/core/templates/error/400.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
{% extends 'login/base.html' %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load utils %}
|
||||
|
||||
{% block head %}
|
||||
{{ block.super }}
|
||||
<style>
|
||||
.pf-icon {
|
||||
font-size: 48px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block card %}
|
||||
<header class="login-pf-header">
|
||||
<h1>{% trans 'Bad Request' %}</h1>
|
||||
</header>
|
||||
<form>
|
||||
{% if 'back' in request.GET %}
|
||||
<a href="{% back %}" class="btn btn-primary btn-block btn-lg">{% trans 'Back' %}</a>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
26
passbook/core/templates/error/403.html
Normal file
26
passbook/core/templates/error/403.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
{% extends 'login/base.html' %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load utils %}
|
||||
|
||||
{% block head %}
|
||||
{{ block.super }}
|
||||
<style>
|
||||
.pf-icon {
|
||||
font-size: 48px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block card %}
|
||||
<header class="login-pf-header">
|
||||
<h1>{% trans 'Forbidden' %}</h1>
|
||||
</header>
|
||||
<form>
|
||||
{% if 'back' in request.GET %}
|
||||
<a href="{% back %}" class="btn btn-primary btn-block btn-lg">{% trans 'Back' %}</a>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
26
passbook/core/templates/error/404.html
Normal file
26
passbook/core/templates/error/404.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
{% extends 'login/base.html' %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load utils %}
|
||||
|
||||
{% block head %}
|
||||
{{ block.super }}
|
||||
<style>
|
||||
.pf-icon {
|
||||
font-size: 48px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block card %}
|
||||
<header class="login-pf-header">
|
||||
<h1>{% trans 'Not Found' %}</h1>
|
||||
</header>
|
||||
<form>
|
||||
{% if 'back' in request.GET %}
|
||||
<a href="{% back %}" class="btn btn-primary btn-block btn-lg">{% trans 'Back' %}</a>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
26
passbook/core/templates/error/500.html
Normal file
26
passbook/core/templates/error/500.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
{% extends 'login/base.html' %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load utils %}
|
||||
|
||||
{% block head %}
|
||||
{{ block.super }}
|
||||
<style>
|
||||
.pf-icon {
|
||||
font-size: 48px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block card %}
|
||||
<header class="login-pf-header">
|
||||
<h1>{% trans 'Server Error' %}</h1>
|
||||
</header>
|
||||
<form>
|
||||
{% if 'back' in request.GET %}
|
||||
<a href="{% back %}" class="btn btn-primary btn-block btn-lg">{% trans 'Back' %}</a>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -7,13 +7,18 @@ from django.urls import include, path
|
|||
from django.views.generic import RedirectView
|
||||
|
||||
from passbook.core.auth import view
|
||||
from passbook.core.views import authentication, overview, user
|
||||
from passbook.core.views import authentication, error, overview, user
|
||||
from passbook.lib.utils.reflection import get_apps
|
||||
|
||||
LOGGER = getLogger(__name__)
|
||||
admin.autodiscover()
|
||||
admin.site.login = RedirectView.as_view(pattern_name='passbook_core:auth-login')
|
||||
|
||||
handler400 = error.BadRequestView.as_view()
|
||||
handler403 = error.ForbiddenView.as_view()
|
||||
handler404 = error.NotFoundView.as_view()
|
||||
handler500 = error.BadRequestView.as_view()
|
||||
|
||||
core_urls = [
|
||||
# Authentication views
|
||||
path('auth/login/', authentication.LoginView.as_view(), name='auth-login'),
|
||||
|
|
60
passbook/core/views/error.py
Normal file
60
passbook/core/views/error.py
Normal file
|
@ -0,0 +1,60 @@
|
|||
"""passbook core error views"""
|
||||
|
||||
from django.http.response import (HttpResponseBadRequest,
|
||||
HttpResponseForbidden, HttpResponseNotFound,
|
||||
HttpResponseServerError)
|
||||
from django.template.response import TemplateResponse
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
|
||||
class BadRequestTemplateResponse(TemplateResponse, HttpResponseBadRequest):
|
||||
"""Combine Template response with Http Code 400"""
|
||||
|
||||
class ForbiddenTemplateResponse(TemplateResponse, HttpResponseForbidden):
|
||||
"""Combine Template response with Http Code 403"""
|
||||
|
||||
class NotFoundTemplateResponse(TemplateResponse, HttpResponseNotFound):
|
||||
"""Combine Template response with Http Code 404"""
|
||||
|
||||
class ServerErrorTemplateResponse(TemplateResponse, HttpResponseServerError):
|
||||
"""Combine Template response with Http Code 500"""
|
||||
|
||||
class BadRequestView(TemplateView):
|
||||
"""Show Bad Request message"""
|
||||
|
||||
response_class = BadRequestTemplateResponse
|
||||
template_name = 'error/400.html'
|
||||
|
||||
extra_context = {
|
||||
'is_login': True
|
||||
}
|
||||
|
||||
class ForbiddenView(TemplateView):
|
||||
"""Show Forbidden message"""
|
||||
|
||||
response_class = ForbiddenTemplateResponse
|
||||
template_name = 'error/403.html'
|
||||
|
||||
extra_context = {
|
||||
'is_login': True
|
||||
}
|
||||
|
||||
class NotFoundView(TemplateView):
|
||||
"""Show Not Found message"""
|
||||
|
||||
response_class = NotFoundTemplateResponse
|
||||
template_name = 'error/404.html'
|
||||
|
||||
extra_context = {
|
||||
'is_login': True
|
||||
}
|
||||
|
||||
class ServerErrorView(TemplateView):
|
||||
"""Show Server Error message"""
|
||||
|
||||
response_class = ServerErrorTemplateResponse
|
||||
template_name = 'error/500.html'
|
||||
|
||||
extra_context = {
|
||||
'is_login': True
|
||||
}
|
Reference in a new issue