Projet

Général

Profil

0001-middleware-use-a-template-for-maintenance-page-65126.patch

Emmanuel Cazenave, 13 mai 2022 16:57

Télécharger (2,58 ko)

Voir les différences:

Subject: [PATCH] middleware: use a template for maintenance page (#65126)

 .../templates/hobo/maintenance/maintenance_page.html      | 8 ++++++++
 hobo/middleware/maintenance.py                            | 7 +++++--
 tests/test_maintenance.py                                 | 2 +-
 3 files changed, 14 insertions(+), 3 deletions(-)
 create mode 100644 hobo/maintenance/templates/hobo/maintenance/maintenance_page.html
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

  
......
39 39
        maintenance_mode = getattr(settings, 'MAINTENANCE_PAGE', None)
40 40
        if maintenance_mode and not pass_through(request):
41 41
            maintenance_msg = _('The site is under maintenance')
42
            return HttpResponse('<h1>%s</h1>' % maintenance_msg, status=503)
42
            context = {'maintenance_msg': maintenance_msg}
43
            return TemplateResponse(
44
                request, 'hobo/maintenance/maintenance_page.html', context=context, status=503
45
            ).render()
43 46
        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
-