Custom template for common error handlers

This commit is contained in:
papi 2023-12-31 15:52:35 +03:00
parent 698bd41694
commit 86bad61156
14 changed files with 30 additions and 325 deletions

View File

@ -298,33 +298,3 @@ def semester_delete_view(request, pk):
@admin_required @admin_required
def dashboard_view(request): def dashboard_view(request):
return render(request, "app/dashboard.html") return render(request, "app/dashboard.html")
# ########################################################
def handler404(request, exception, template_name="common/404.html"):
response = render(request, "common/404.html")
response.status_code = 404
return response
def handler500(request, *args, **argv):
response = render(request, "common/500.html")
response.status_code = 500
return response
def handler400(request, exception, template_name="common/400.html"):
response = render(request, "common/400.html")
response.status_code = 400
return response
def handler403(request, exception, template_name="common/403.html"):
response = render(request, "common/403.html")
response.status_code = 403
return response

View File

@ -47,7 +47,3 @@ if settings.DEBUG:
), ),
path("500/", default_views.server_error), path("500/", default_views.server_error),
] ]
handler404 = "app.views.handler404"
handler500 = "app.views.handler500"
handler400 = "app.views.handler400"

View File

@ -1,234 +0,0 @@
/* poppins-100 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 100;
src: url('../fonts/poppins/poppins-v5-latin-100.eot'); /* IE9 Compat Modes */
src: local('Poppins Thin'), local('Poppins-Thin'),
url('../fonts/poppins/poppins-v5-latin-100.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-100.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-100.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-100.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-100.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-200 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 200;
src: url('../fonts/poppins/poppins-v5-latin-200.eot'); /* IE9 Compat Modes */
src: local('Poppins ExtraLight'), local('Poppins-ExtraLight'),
url('../fonts/poppins/poppins-v5-latin-200.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-200.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-200.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-200.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-200.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-200italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 200;
src: url('../fonts/poppins/poppins-v5-latin-200italic.eot'); /* IE9 Compat Modes */
src: local('Poppins ExtraLight Italic'), local('Poppins-ExtraLightItalic'),
url('../fonts/poppins/poppins-v5-latin-200italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-200italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-200italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-200italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-200italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-100italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 100;
src: url('../fonts/poppins/poppins-v5-latin-100italic.eot'); /* IE9 Compat Modes */
src: local('Poppins Thin Italic'), local('Poppins-ThinItalic'),
url('../fonts/poppins/poppins-v5-latin-100italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-100italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-100italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-100italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-100italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-300 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 300;
src: url('../fonts/poppins/poppins-v5-latin-300.eot'); /* IE9 Compat Modes */
src: local('Poppins Light'), local('Poppins-Light'),
url('../fonts/poppins/poppins-v5-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-300.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-300.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-300italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 300;
src: url('../fonts/poppins/poppins-v5-latin-300italic.eot'); /* IE9 Compat Modes */
src: local('Poppins Light Italic'), local('Poppins-LightItalic'),
url('../fonts/poppins/poppins-v5-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-300italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-300italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-300italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-regular - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
src: url('../fonts/poppins/poppins-v5-latin-regular.eot'); /* IE9 Compat Modes */
src: local('Poppins Regular'), local('Poppins-Regular'),
url('../fonts/poppins/poppins-v5-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-regular.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-regular.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 400;
src: url('../fonts/poppins/poppins-v5-latin-italic.eot'); /* IE9 Compat Modes */
src: local('Poppins Italic'), local('Poppins-Italic'),
url('../fonts/poppins/poppins-v5-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-500 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
src: url('../fonts/poppins/poppins-v5-latin-500.eot'); /* IE9 Compat Modes */
src: local('Poppins Medium'), local('Poppins-Medium'),
url('../fonts/poppins/poppins-v5-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-500.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-500.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-500.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-500italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 500;
src: url('../fonts/poppins/poppins-v5-latin-500italic.eot'); /* IE9 Compat Modes */
src: local('Poppins Medium Italic'), local('Poppins-MediumItalic'),
url('../fonts/poppins/poppins-v5-latin-500italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-500italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-500italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-500italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-500italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-600 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
src: url('../fonts/poppins/poppins-v5-latin-600.eot'); /* IE9 Compat Modes */
src: local('Poppins SemiBold'), local('Poppins-SemiBold'),
url('../fonts/poppins/poppins-v5-latin-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-600.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-600.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-600.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-600.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-600italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 600;
src: url('../fonts/poppins/poppins-v5-latin-600italic.eot'); /* IE9 Compat Modes */
src: local('Poppins SemiBold Italic'), local('Poppins-SemiBoldItalic'),
url('../fonts/poppins/poppins-v5-latin-600italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-600italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-600italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-600italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-600italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-700 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
src: url('../fonts/poppins/poppins-v5-latin-700.eot'); /* IE9 Compat Modes */
src: local('Poppins Bold'), local('Poppins-Bold'),
url('../fonts/poppins/poppins-v5-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-700.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-700.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-700italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 700;
src: url('../fonts/poppins/poppins-v5-latin-700italic.eot'); /* IE9 Compat Modes */
src: local('Poppins Bold Italic'), local('Poppins-BoldItalic'),
url('../fonts/poppins/poppins-v5-latin-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-700italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-700italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-700italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-800 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 800;
src: url('../fonts/poppins/poppins-v5-latin-800.eot'); /* IE9 Compat Modes */
src: local('Poppins ExtraBold'), local('Poppins-ExtraBold'),
url('../fonts/poppins/poppins-v5-latin-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-800.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-800.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-800.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-800.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-800italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 800;
src: url('../fonts/poppins/poppins-v5-latin-800italic.eot'); /* IE9 Compat Modes */
src: local('Poppins ExtraBold Italic'), local('Poppins-ExtraBoldItalic'),
url('../fonts/poppins/poppins-v5-latin-800italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-800italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-800italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-800italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-800italic.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-900 - latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 900;
src: url('../fonts/poppins/poppins-v5-latin-900.eot'); /* IE9 Compat Modes */
src: local('Poppins Black'), local('Poppins-Black'),
url('../fonts/poppins/poppins-v5-latin-900.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-900.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-900.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-900.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-900.svg#Poppins') format('svg'); /* Legacy iOS */
}
/* poppins-900italic - latin */
@font-face {
font-family: 'Poppins';
font-style: italic;
font-weight: 900;
src: url('../fonts/poppins/poppins-v5-latin-900italic.eot'); /* IE9 Compat Modes */
src: local('Poppins Black Italic'), local('Poppins-BlackItalic'),
url('../fonts/poppins/poppins-v5-latin-900italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../fonts/poppins/poppins-v5-latin-900italic.woff2') format('woff2'), /* Super Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-900italic.woff') format('woff'), /* Modern Browsers */
url('../fonts/poppins/poppins-v5-latin-900italic.ttf') format('truetype'), /* Safari, Android, iOS */
url('../fonts/poppins/poppins-v5-latin-900italic.svg#Poppins') format('svg'); /* Legacy iOS */
}

View File

@ -1,7 +1,7 @@
{% extends 'common/_base.html' %} {% extends 'error_handler_base.html' %}
{% block content %} {% block content %}
<div class="text-center"> <div class="text-center mt-5">
<h1>Bad request</h1> <h1>Bad request</h1>
<p>Please make sure the form is correctly filled.</p> <p>Please make sure the form is correctly filled.</p>
<a href="/" class="link">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; Return to the app</a>

View File

@ -1,7 +1,7 @@
{% extends 'common/_base.html' %} {% extends 'error_handler_base.html' %}
{% block content %} {% block content %}
<div class="text-center"> <div class="text-center mt-5">
<h1>403, forbidden</h1> <h1>403, forbidden</h1>
<p>You need the proper permission to make that request.</p> <p>You need the proper permission to make that request.</p>
<a href="/" class="link">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; Return to the app</a>

View File

@ -1,7 +1,7 @@
{% extends 'common/_base.html' %} {% extends 'error_handler_base.html' %}
{% block content %} {% block content %}
<div class="text-center"> <div class="text-center mt-5">
<h1>404</h1> <h1>404</h1>
<p>Looks like the page you're looking for is does not exist.</p> <p>Looks like the page you're looking for is does not exist.</p>
<a href="/" class="link">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; Return to the app</a>

View File

@ -1,7 +1,7 @@
{% extends 'common/_base.html' %} {% extends 'error_handler_base.html' %}
{% block content %} {% block content %}
<div class="text-center"> <div class="text-center mt-5">
<h1>Server error</h1> <h1>Server error</h1>
<p>Please try again later.</p> <p>Please try again later.</p>
<a href="/" class="link">&LeftArrow; Return to the app</a> <a href="/" class="link">&LeftArrow; Return to the app</a>

View File

@ -77,9 +77,7 @@
{% empty %} {% empty %}
<tr> <tr>
<td></td> <td colspan="8">
<td></td>
<td>
<span class="text-danger"> <span class="text-danger">
No Lecturer(s). No Lecturer(s).
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
@ -91,9 +89,6 @@
</a> </a>
</span> </span>
</td> </td>
<td></td>
<td></td>
<td></td>
</tr> </tr>
</tr> </tr>

View File

@ -84,9 +84,7 @@
{% empty %} {% empty %}
<tr> <tr>
<td></td> <td colspan="6">
<td></td>
<td>
<span class="text-danger"> <span class="text-danger">
No Student. No Student.
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
@ -98,9 +96,6 @@
</a> </a>
</span> </span>
</td> </td>
<td></td>
<td></td>
<td></td>
</tr> </tr>
</tr> </tr>

View File

@ -53,8 +53,8 @@
<div class="title-1">News &amp; Events</div> <div class="title-1">News &amp; Events</div>
<ul class="col-md-2 ml-auto d-flex"> <ul class="col-md-2 ms-auto d-flex">
<li class="mr-3"> <li class="me-3">
<span class="color-indicator bg-primary"></span> News <span class="color-indicator bg-primary"></span> News
</li> </li>
<li> <li>

View File

@ -10,7 +10,6 @@
<title>{% block title %}DjangoSMS{% endblock title %}</title> <title>{% block title %}DjangoSMS{% endblock title %}</title>
<link rel="shortcut icon" href="{% static 'img/favicon.png' %}" type="image/x-icon"> <link rel="shortcut icon" href="{% static 'img/favicon.png' %}" type="image/x-icon">
<!-- <link href="{% static 'css/font-face.css' %}" rel="stylesheet" media="all"> -->
<link rel="stylesheet" type="text/css" href="{% static 'vendor/bootstrap-5.3.2/css/bootstrap.min.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'vendor/bootstrap-5.3.2/css/bootstrap.min.css' %}">
@ -23,15 +22,22 @@
</head> </head>
<body> <body>
{% include 'aside.html' %} {% block sidebar %}
{% include 'aside.html' %}
{% endblock %}
{% block maincontent %}
<div id="main"> <div id="main">
{% include 'navbar.html' %} {% block topbar %}
{% include 'navbar.html' %}
{% endblock %}
<div class="container-fluid" id="main-content"> <div class="container-fluid" id="main-content">
{% block content %}{% endblock content %} {% block content %}{% endblock content %}
</div> </div>
</div> </div>
{% endblock %}
<script type="text/javascript" src="{% static 'vendor/jquery-3.7.1/jquery-3.7.1.min.js' %}"></script> <script type="text/javascript" src="{% static 'vendor/jquery-3.7.1/jquery-3.7.1.min.js' %}"></script>
<script type="text/javascript" src="{% static 'vendor/bootstrap-5.3.2/js/bootstrap.bundle.min.js' %}"></script> <script type="text/javascript" src="{% static 'vendor/bootstrap-5.3.2/js/bootstrap.bundle.min.js' %}"></script>

View File

@ -1,31 +0,0 @@
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>{% block title %}Django Learning Management System{% endblock title %}</title>
<link rel="shortcut icon" href="{% static 'img/favicon.png' %}" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'css/all.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
<body>
<div id="main">
<div class="container-fluid" id="main-content">
{% block content %}{% endblock content %}
</div>
</div>
</body>
</html>

View File

@ -87,7 +87,7 @@
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
<td> <td>
<div class="dropdown"> <div class="dropdown">
<button class="btn btn-sm" id="dropdownMenuButton" data-toggle="dropdown" <button class="btn btn-sm" type="button" data-bs-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"> aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v"></i> <i class="fas fa-ellipsis-v"></i>
</button> </button>

View File

@ -0,0 +1,8 @@
{% extends 'base.html' %}
{% block sidebar %}{% endblock %}
{% block maincontent %}
{% block content %}
{% endblock %}
{% endblock %}