0001-middleware-use-a-template-for-maintenance-page-65126.patch
hobo/maintenance/templates/hobo/maintenance/maintenance_page.html | ||
---|---|---|
1 |
{% load i18n %} |
|
2 | ||
3 |
<html> |
|
4 |
<body> |
|
5 |
<h1>{% trans "This site is currently unavailable." %}</h1> |
|
6 |
<p>{{ maintenance_message|default:"" }}</p> |
|
7 |
</body> |
|
8 |
</html> |
hobo/middleware/maintenance.py | ||
---|---|---|
15 | 15 |
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
16 | 16 | |
17 | 17 |
from django.conf import settings |
18 |
from django.http import HttpResponse
|
|
18 |
from django.template.response import TemplateResponse
|
|
19 | 19 |
from django.utils.translation import ugettext as _ |
20 | 20 | |
21 | 21 | |
... | ... | |
38 | 38 |
def __call__(self, request): |
39 | 39 |
maintenance_mode = getattr(settings, 'MAINTENANCE_PAGE', None) |
40 | 40 |
if maintenance_mode and not pass_through(request): |
41 |
maintenance_msg = _('The site is under maintenance') |
|
42 |
return HttpResponse('<h1>%s</h1>' % maintenance_msg, status=503) |
|
41 |
return TemplateResponse(request, 'hobo/maintenance/maintenance_page.html', status=503).render() |
|
43 | 42 |
return self.get_response(request) |
tests/test_maintenance.py | ||
---|---|---|
11 | 11 | |
12 | 12 |
settings.MAINTENANCE_PAGE = True |
13 | 13 |
resp = app.get('/', status=503) |
14 |
assert 'The site is under maintenance' in resp.text
|
|
14 |
assert 'This site is currently unavailable.' in resp.text
|
|
15 | 15 | |
16 | 16 |
settings.MAINTENANCE_PASS_THROUGH_IPS = ['127.0.0.1'] |
17 | 17 |
resp = app.get('/') |
18 |
- |