diff --git a/edivorce/apps/core/templates/404.html b/edivorce/apps/core/templates/404.html
new file mode 100644
index 00000000..88dbb433
--- /dev/null
+++ b/edivorce/apps/core/templates/404.html
@@ -0,0 +1,20 @@
+{% extends 'base.html' %}
+
+{% block title %}{{ block.super }}: 404 Page Not Found{% endblock %}
+
+{% block content %}
+
404
+The page you are looking for cannot be found
+
+{% endblock %}
+
+{% block formbuttons %}
+
+{% endblock %}
+
+{% block sidebarNav %}
+
+{% endblock %}
+{% block sidebar %}
+
+{% endblock %}
diff --git a/edivorce/apps/core/templates/500.html b/edivorce/apps/core/templates/500.html
new file mode 100644
index 00000000..351947bf
--- /dev/null
+++ b/edivorce/apps/core/templates/500.html
@@ -0,0 +1,20 @@
+{% extends 'base.html' %}
+
+{% block title %}{{ block.super }}: 500 Internal Server Error{% endblock %}
+
+{% block content %}
+Internal Server Error
+You have encountered an error on the website.
+
+{% endblock %}
+
+{% block formbuttons %}
+
+{% endblock %}
+
+{% block sidebarNav %}
+
+{% endblock %}
+{% block sidebar %}
+
+{% endblock %}
diff --git a/edivorce/apps/core/urls.py b/edivorce/apps/core/urls.py
index e219e00b..abcdd5f1 100644
--- a/edivorce/apps/core/urls.py
+++ b/edivorce/apps/core/urls.py
@@ -2,6 +2,9 @@ from django.conf.urls import url
from .views import main, system, styleguide, pdf, api, localdev
+handler404 = 'core.views.main.page_not_found'
+handler500 = 'core.views.main.server_error'
+
urlpatterns = [
url(r'^guide$', styleguide.guide),
url(r'^f/(?P.*)', main.serve),
@@ -25,7 +28,7 @@ urlpatterns = [
url(r'^pdf-form(?P[0-9]{1,3}(_we|_claimant1|_claimant2)?)$', pdf.form, name="pdf_form"),
url(r'^prequalification/step_(?P[0-9]{2})$', main.prequalification, name="prequalification"),
url(r'^question/(?P.*)$', main.question, name="question_steps"),
- url(r'^', main.intro, name="intro"),
+ url(r'^$', main.intro, name="intro"),
]
diff --git a/edivorce/apps/core/views/main.py b/edivorce/apps/core/views/main.py
index 46faab49..4292aefa 100644
--- a/edivorce/apps/core/views/main.py
+++ b/edivorce/apps/core/views/main.py
@@ -1,6 +1,7 @@
from django.conf import settings
-from django.shortcuts import render, redirect
+from django.shortcuts import render, redirect, render_to_response
from django.utils import timezone
+from django.template import RequestContext
from edivorce.apps.core.utils.template_step_order import template_step_order
from ..decorators import bceid_required
import datetime
@@ -8,7 +9,6 @@ from ..models import BceidUser
from ..utils.user_response import get_responses_from_db, get_responses_from_db_grouped_by_steps, \
get_responses_from_session, copy_session_to_db, get_step_status
from edivorce.apps.core.utils.question_step_mapping import list_of_registries
-from django.core.exceptions import ObjectDoesNotExist
@bceid_required
@@ -148,6 +148,20 @@ def overview(request):
return render(request, 'overview.html', context=responses_dict_by_step)
+def page_not_found(request):
+ response = render_to_response('404.html', {},
+ context_instance=RequestContext(request))
+ response.status_code = 404
+ return response
+
+
+def server_error(request):
+ response = render_to_response('500.html', {},
+ context_instance=RequestContext(request))
+ response.status_code = 500
+ return response
+
+
def __get_bceid_user(request):
user, created = BceidUser.objects.get_or_create(user_guid=request.bceid_user.guid)