Add set password pages

This commit is contained in:
Christian Cueni 2019-07-16 14:09:42 +02:00
parent 3820256872
commit 334684a1db
9 changed files with 122 additions and 2 deletions

View File

@ -2,7 +2,7 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% load i18n %} {% load i18n %}
{% block title %}{% trans 'Setze dein Passwort?' %}{% endblock %} {% block title %}{% trans 'Setze dein Passwort' %}{% endblock %}
{% block body %} {% block body %}
<h1 class="logo">skillbox</h1> <h1 class="logo">skillbox</h1>

View File

@ -0,0 +1,13 @@
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans 'Passwort setzen abgeschlossen' %}{% endblock %}
{% block body %}
<h1 class="logo">skillbox</h1>
<h2 class="reset-heading">{% trans 'Passwort setzen abgeschlossen' %}</h2>
<p>{% trans 'Dein Passwort wurde erfolgreich gesetzt. Du kannst dich nun auf der Loginseite anmelden.' %}</p>
<p><a href="{% url "login" %}">{% trans 'Einloggen' %}</a></p>
</div>
{% endblock %}

View File

@ -0,0 +1,23 @@
<!-- templates/registration/password_reset_confirm.html -->
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans 'Setze dein Passwort' %}{% endblock %}
{% block body %}
<h1 class="logo">skillbox</h1>
<h2 class="reset-heading">{% trans 'Setze dein Passwort' %}</h2>
<form method="post" class="mt-1">
{% csrf_token %}
<div>
{{ form.new_password1.label_tag }}
{{ form.new_password1 }}
</div>
<div>
{{ form.new_password2.label_tag }}
{{ form.new_password2 }}
</div>
<button class="btn mt-1" type="submit" name="action">{% trans 'Passwort setzen' %}</button>
</form>
{% endblock %}

View File

@ -0,0 +1,12 @@
<!-- templates/registration/password_reset_form.html -->
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans 'Anweisungen versandt' %}{% endblock %}
{% block body %}
<h1 class="logo">skillbox</h1>
<h2 class="reset-heading">{% trans 'Schau in dein Postfach' %}</h2>
<p>{% trans 'Wir haben die Anweisungen um dein Passwort zu setzen, an dich verschickt. Das E-Mail sollte in Kürze bei dir ankommen.' %}</p>
</div>
{% endblock %}

View File

@ -0,0 +1,12 @@
{% load i18n %}{% autoescape off %}
{% blocktrans %}Du erhältst dieses E-Mail, um dein Passwort auf {{ site_name }} initial zu setzen.{% endblocktrans %}
{% trans "Bitte öffne folgende Seite, um dein neues Passwort einzugeben:" %}
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'set_password_confirm' uidb64=uid token=token %}
{% endblock %}
{% trans "Dein Benutzername lautet:" %} {{ user.get_username }}
{% trans "Dein Skillbox Team" %}
{% endautoescape %}

View File

@ -0,0 +1,24 @@
<!-- templates/registration/password_reset_form.html -->
{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans 'Setze ein Passort' %}{% endblock %}
{% block body %}
<h1 class="logo">skillbox</h1>
<h2 class="reset-heading">{% trans 'Setze ein Passort' %}</h2>
<p>{% trans 'Gib deine E-Mail ein und erhalte weitere Anweisungen um dein Passwort initial zu setzen.' %}</p>
<form method="post" class="mt-1">
{% csrf_token %}
<div>
{{ form.email.label_tag }}
{{ form.email }}
</div>
<button class="btn mt-1" type="submit" name="action">{% trans 'Passwort setzen' %}</button>
<input type="hidden" name="next" value="{{ next }}"/>
</form>
</div>
{% endblock %}

View File

@ -0,0 +1 @@
myskillbox Passwort setzen

View File

@ -2,12 +2,13 @@ from django.conf import settings
from django.conf.urls import url, include from django.conf.urls import url, include
from django.conf.urls.static import static from django.conf.urls.static import static
from django.contrib import admin from django.contrib import admin
from django.urls import re_path from django.urls import re_path, path
from django.views.generic import RedirectView from django.views.generic import RedirectView
from wagtail.admin import urls as wagtailadmin_urls from wagtail.admin import urls as wagtailadmin_urls
from wagtail.core import urls as wagtail_urls from wagtail.core import urls as wagtail_urls
from core import views from core import views
from core.views import SetPasswordView, SetPasswordDoneView, SetPasswordConfirmView, SetPasswordCompleteView
urlpatterns = [ urlpatterns = [
# django admin # django admin
@ -15,6 +16,12 @@ urlpatterns = [
url(r'^accounts/', include('django.contrib.auth.urls')), url(r'^accounts/', include('django.contrib.auth.urls')),
url(r'^statistics/', include('statistics.urls', namespace='statistics')), url(r'^statistics/', include('statistics.urls', namespace='statistics')),
# set password
path('set-password/', SetPasswordView.as_view(), name='set_password'),
path('set-password/done/', SetPasswordDoneView.as_view(), name='set_password_done'),
path('set-password/<uidb64>/<token>/', SetPasswordConfirmView.as_view(), name='set_password_confirm'),
path('set-password/done/', SetPasswordCompleteView.as_view(), name='set_password_complete'),
# wagtail # wagtail
url(r'^cms/', include(wagtailadmin_urls)), url(r'^cms/', include(wagtailadmin_urls)),

View File

@ -2,10 +2,14 @@ import requests
from django.conf import settings from django.conf import settings
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.views import PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView, \
PasswordResetCompleteView
from django.http.response import HttpResponse from django.http.response import HttpResponse
from django.shortcuts import render from django.shortcuts import render
from django.urls import reverse_lazy
from django.views.decorators.csrf import ensure_csrf_cookie from django.views.decorators.csrf import ensure_csrf_cookie
from graphene_django.views import GraphQLView from graphene_django.views import GraphQLView
from django.utils.translation import gettext_lazy as _
class PrivateGraphQLView(LoginRequiredMixin, GraphQLView): class PrivateGraphQLView(LoginRequiredMixin, GraphQLView):
@ -22,3 +26,27 @@ def home(request):
print('Can not connect to dev server at http://localhost:8080:', e) print('Can not connect to dev server at http://localhost:8080:', e)
return render(request, 'index.html', {}) return render(request, 'index.html', {})
class SetPasswordView(PasswordResetView):
email_template_name = 'registration/set_password_email.html'
subject_template_name = 'registration/set_password_subject.txt'
success_url = reverse_lazy('set_password_done')
template_name = 'registration/set_password_form.html'
title = _('Password setzen')
class SetPasswordDoneView(PasswordResetDoneView):
template_name = 'registration/set_password_done.html'
title = _('Password setzen versandt')
class SetPasswordConfirmView(PasswordResetConfirmView):
success_url = reverse_lazy('set_password_complete')
template_name = 'registration/set_password_confirm.html'
title = _('Gib ein Passwort ein')
class SetPasswordCompleteView(PasswordResetCompleteView):
template_name = 'registration/set_password_complete.html'
title = _('Passwort setzen erfolgreich')