1
0
Fork 0

Add robots and custom 404/500 pages

merge-requests/142/head
Nikos Roussos 2015-07-21 11:42:23 +03:00
parent 83e97884ea
commit e8e5bf34a3
8 changed files with 73 additions and 14 deletions

View File

@ -6,6 +6,7 @@ urlpatterns = patterns(
'network.base.views', 'network.base.views',
url(r'^$', 'index', name='home'), url(r'^$', 'index', name='home'),
url(r'^about/$', TemplateView.as_view(template_name='base/about.html'), name='about'), url(r'^about/$', TemplateView.as_view(template_name='base/about.html'), name='about'),
url(r'^robots\.txt$', 'robots', name='robots'),
# Observations # Observations
url(r'^observations/$', 'observations_list', name='observations_list'), url(r'^observations/$', 'observations_list', name='observations_list'),

View File

@ -7,7 +7,7 @@ from django.views.decorators.http import require_POST
from django.shortcuts import get_object_or_404, render, redirect from django.shortcuts import get_object_or_404, render, redirect
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.utils.timezone import now, make_aware, utc from django.utils.timezone import now, make_aware, utc
from django.http import JsonResponse from django.http import JsonResponse, HttpResponseNotFound, HttpResponseServerError, HttpResponse
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from network.base.models import (Station, Transponder, Observation, from network.base.models import (Station, Transponder, Observation,
@ -34,6 +34,23 @@ def index(request):
return render(request, 'base/home.html', ctx) return render(request, 'base/home.html', ctx)
def custom_404(request):
"""Custom 404 error handler."""
return HttpResponseNotFound(render(request, '404.html'))
def custom_500(request):
"""Custom 500 error handler."""
return HttpResponseServerError(render(request, '500.html'))
def robots(request):
data = render(request, 'robots.txt', {'environment': settings.ENVIRONMENT})
response = HttpResponse(data,
content_type='text/plain; charset=utf-8')
return response
def observations_list(request): def observations_list(request):
"""View to render Observations page.""" """View to render Observations page."""
observations = Observation.objects.all() observations = Observation.objects.all()

View File

@ -59,6 +59,8 @@ body {
font-family:'ClearSans'; font-family:'ClearSans';
} }
a:hover { a:hover {
text-decoration: none; text-decoration: none;
} }
@ -93,6 +95,13 @@ a:hover {
border-color: #eed3d7; border-color: #eed3d7;
} }
.error {
margin-top: 40px;
width: 500px;
margin: auto;
text-align: center;
}
.img-avatar { .img-avatar {
border: 2px solid white; border: 2px solid white;
border-radius: 50px; border-radius: 50px;

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -1,9 +1,20 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load staticfiles %}
{% block title %}Page Not found{% endblock %} {% block title %} - Page Not found{% endblock %}
{% block content %} {% block content %}
<h1>Page Not found</h1> <div class="error">
<h1>404</h1>
<p>This is not the page you were looking for.</p> <h3>Page Not Found</h3>
{% endblock content %}
<p>
This is not the page you were looking for.
Head back to <a href="{% url 'base:home' %}">homepage</a>.
</p>
<p><img src="{% static 'img/error.png' %}"></p>
</div>
{% endblock content %}

View File

@ -1,12 +1,20 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load staticfiles %}
{% block title %}Server Error{% endblock %} {% block title %} - Server Error{% endblock %}
{% block content %} {% block content %}
<h1>Ooops!!! 500</h1> <div class="error">
<h1>500</h1>
<h3>Looks like something went wrong!</h3> <h3>Server Error</h3>
<p>We track these errors automatically, but if the problem persists feel free to contact us. In the meantime, try refreshing.</p> <p>
We track these errors automatically, but if the problem persists feel free to contact us.
In the meantime, try refreshing. Head back to <a href="{% url 'base:home' %}">homepage</a>.
</p>
<p><img src="{% static 'img/error.png' %}"></p>
</div>
{% endblock content %} {% endblock content %}

View File

@ -0,0 +1,6 @@
user-agent: *
{% if environment == 'dev' %}
Disallow: /admin/
{% else %}
Disallow: /
{% endif %}

View File

@ -1,12 +1,12 @@
from __future__ import unicode_literals
from django.conf import settings from django.conf import settings
from django.conf.urls import patterns, include, url from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.contrib import admin from django.contrib import admin
handler404 = 'network.base.views.custom_404'
handler500 = 'network.base.views.custom_500'
urlpatterns = patterns( urlpatterns = patterns(
'', '',
@ -21,4 +21,11 @@ urlpatterns = patterns(
url(r'^api/', include('network.api.urls')) url(r'^api/', include('network.api.urls'))
) )
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) if settings.DEBUG:
urlpatterns += patterns(
'',
url(r'^404/$', handler404),
url(r'^500/$', handler500),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
)