Skip to content

Commit f029a7c

Browse files
authored
Merge pull request #196 from th3hamm0r/feature/187-fix-wagtail-4-template-issue
Use new template for wagtail >= 4
2 parents b3f9cc7 + 934445d commit f029a7c

3 files changed

Lines changed: 109 additions & 45 deletions

File tree

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
{% extends "wagtailadmin/admin_base.html" %}
2+
{% load static i18n %}
3+
{% block titletag %}{% trans "Sign in" %}{% endblock %}
4+
{% block bodyclass %}login{% endblock %}
5+
6+
{% block extra_css %}
7+
{{ block.super }}
8+
9+
<link rel="stylesheet" href="{% static 'wagtailadmin/css/layouts/login.css' %}" type="text/css" />
10+
{% endblock %}
11+
12+
{% block furniture %}
13+
<div class="content-wrapper">
14+
{% if messages or form.errors %}
15+
<div class="messages">
16+
<ul>
17+
{% if form.errors %}
18+
<li class="error">{% blocktrans %}Invalid code{% endblocktrans %}</li>
19+
{% endif %}
20+
{% for message in messages %}
21+
<li class="{{ message.tags }}">{{ message }}</li>
22+
{% endfor %}
23+
</ul>
24+
</div>
25+
{% endif %}
26+
27+
{% block above_login %}{% endblock %}
28+
29+
<form action="{% url 'wagtail_2fa_auth' %}" method="post" autocomplete="off" novalidate>
30+
{% block login_form %}
31+
{% csrf_token %}
32+
33+
{% url 'wagtailadmin_home' as home_url %}
34+
<input type="hidden" name="next" value="{{ next|default:home_url }}" />
35+
36+
<h1>{% block branding_login %}{% trans "Enter your two-factor authentication code" %}{% endblock %}</h1>
37+
38+
<ul class="fields">
39+
{% block fields %}
40+
<li class="full">
41+
<div class="field iconfield">
42+
{{ form.otp_token.label_tag }}
43+
<div class="input icon-locked">
44+
{{ form.otp_token }}
45+
</div>
46+
</div>
47+
</li>
48+
49+
{% block extra_fields %}
50+
{% for field_name, field in form.extra_fields %}gs
51+
<li class="full">
52+
{{ field.label_tag }}
53+
<div class="field iconfield">
54+
{{ field }}
55+
</div>
56+
</li>
57+
{% endfor %}
58+
{% endblock extra_fields %}
59+
60+
{% endblock %}
61+
<li class="submit">
62+
{% block submit_buttons %}
63+
<button type="submit" class="button button-longrunning" tabindex="3" data-clicked-text="{% trans 'Signing in…' %}"><span class="icon icon-spinner"></span><em>{% trans 'Sign in' %}</em></button>
64+
<a href="{% url "wagtailadmin_logout" %}" class="button button-secondary" tabindex="4">{% trans 'Sign out' %}</a>
65+
{% endblock %}
66+
</li>
67+
</ul>
68+
{% endblock %}
69+
</form>
70+
71+
{% block below_login %}{% endblock %}
72+
73+
</div>
74+
{% endblock %}
Lines changed: 30 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
{% extends "wagtailadmin/admin_base.html" %}
2-
{% load static i18n %}
2+
{% load i18n wagtailadmin_tags %}
33
{% block titletag %}{% trans "Sign in" %}{% endblock %}
44
{% block bodyclass %}login{% endblock %}
55

6-
{% block extra_css %}
7-
{{ block.super }}
8-
9-
<link rel="stylesheet" href="{% static 'wagtailadmin/css/layouts/login.css' %}" type="text/css" />
10-
{% endblock %}
11-
126
{% block furniture %}
13-
<div class="content-wrapper">
14-
{% if messages or form.errors %}
15-
<div class="messages">
7+
<main class="content-wrapper" id="main">
8+
<h1>{% block branding_login %}{% trans "Enter your two-factor authentication code" %}{% endblock %}</h1>
9+
10+
<div class="messages" role="status">
11+
{# Always show messages div so it can be appended to by JS #}
12+
{% if messages or form.errors %}
1613
<ul>
1714
{% if form.errors %}
1815
<li class="error">{% blocktrans %}Invalid code{% endblocktrans %}</li>
@@ -21,54 +18,43 @@
2118
<li class="{{ message.tags }}">{{ message }}</li>
2219
{% endfor %}
2320
</ul>
24-
</div>
25-
{% endif %}
21+
{% endif %}
22+
</div>
2623

2724
{% block above_login %}{% endblock %}
2825

2926
<form action="{% url 'wagtail_2fa_auth' %}" method="post" autocomplete="off" novalidate>
3027
{% block login_form %}
31-
{% csrf_token %}
28+
{% csrf_token %}
3229

33-
{% url 'wagtailadmin_home' as home_url %}
34-
<input type="hidden" name="next" value="{{ next|default:home_url }}" />
30+
{% url 'wagtailadmin_home' as home_url %}
31+
<input type="hidden" name="next" value="{{ next|default:home_url }}" />
3532

36-
<h1>{% block branding_login %}{% trans "Enter your two-factor authentication code" %}{% endblock %}</h1>
37-
38-
<ul class="fields">
3933
{% block fields %}
40-
<li class="full">
41-
<div class="field iconfield">
42-
{{ form.otp_token.label_tag }}
43-
<div class="input icon-locked">
44-
{{ form.otp_token }}
45-
</div>
46-
</div>
47-
</li>
34+
{% field field=form.otp_token %}{% endfield %}
4835

49-
{% block extra_fields %}
50-
{% for field_name, field in form.extra_fields %}gs
51-
<li class="full">
52-
{{ field.label_tag }}
53-
<div class="field iconfield">
54-
{{ field }}
55-
</div>
56-
</li>
57-
{% endfor %}
58-
{% endblock extra_fields %}
36+
{% block extra_fields %}
37+
{% for field_name, field in form.extra_fields %}
38+
{% field field=field %}{% endfield %}
39+
{% endfor %}
40+
{% endblock extra_fields %}
5941

6042
{% endblock %}
61-
<li class="submit">
62-
{% block submit_buttons %}
63-
<button type="submit" class="button button-longrunning" tabindex="3" data-clicked-text="{% trans 'Signing in…' %}"><span class="icon icon-spinner"></span><em>{% trans 'Sign in' %}</em></button>
43+
{% endblock %}
44+
<footer class="form-actions">
45+
{% block submit_buttons %}
46+
<button type="submit" class="button button-longrunning" tabindex="3" data-clicked-text="{% trans 'Signing in…' %}">{% icon name="spinner" %}<em>{% trans 'Sign in' %}</em></button>
6447
<a href="{% url "wagtailadmin_logout" %}" class="button button-secondary" tabindex="4">{% trans 'Sign out' %}</a>
65-
{% endblock %}
66-
</li>
67-
</ul>
68-
{% endblock %}
48+
{% endblock %}
49+
</footer>
6950
</form>
7051

7152
{% block below_login %}{% endblock %}
7253

73-
</div>
54+
{% block branding_logo %}
55+
<div class="login-logo">
56+
<img class="login-logo-img" alt="" src="{% versioned_static 'wagtailadmin/images/wagtail-logo.svg' %}" />
57+
</div>
58+
{% endblock %}
59+
</main>
7460
{% endblock %}

src/wagtail_2fa/views.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,16 @@
2323
from django_otp import login as otp_login
2424
from django_otp.plugins.otp_totp.models import TOTPDevice
2525

26+
from wagtail import VERSION as WAGTAIL_VERSION
2627
from wagtail_2fa import forms, utils
2728
from wagtail_2fa.mixins import OtpRequiredMixin
2829

2930

3031
class LoginView(RedirectURLMixin, FormView):
31-
template_name = "wagtail_2fa/otp_form.html"
32+
if WAGTAIL_VERSION >= (4, 0, 0):
33+
template_name = "wagtail_2fa/otp_form.html"
34+
else:
35+
template_name = "wagtail_2fa/legacy/otp_form.html"
3236
form_class = forms.TokenForm
3337
redirect_field_name = REDIRECT_FIELD_NAME
3438

0 commit comments

Comments
 (0)