allow Register new account

This commit is contained in:
Laura Klünder 2017-12-07 16:46:12 +01:00
parent 460bacb099
commit d286aedccc
5 changed files with 42 additions and 2 deletions

View file

@ -64,6 +64,10 @@ main.map {
main.account form { main.account form {
max-width: 400px; max-width: 400px;
} }
#modal-content form button[type=submit] {
display: block;
width: 100%;
}
#modal-content :last-child { #modal-content :last-child {
margin: 0; margin: 0;
} }

View file

@ -9,6 +9,7 @@
{% csrf_token %} {% csrf_token %}
{{ form }} {{ form }}
<button type="submit">{% trans 'Log in' %}</button> <button type="submit">{% trans 'Log in' %}</button>
<a href="{% url 'site.register' %}">{% trans 'Create new account' %}</a>
</form> </form>
</main> </main>
{% endblock %} {% endblock %}

View file

@ -0,0 +1,14 @@
{% extends 'site/base.html' %}
{% load i18n %}
{% block content %}
<main class="account">
<h2>{% trans 'Create new account' %}</h2>
<form method="post" action="{{ request.path_info }}?{{ request.GET.urlencode }}">
{% csrf_token %}
{{ form }}
<button type="submit">{% trans 'Create new account' %}</button>
</form>
</main>
{% endblock %}

View file

@ -1,6 +1,6 @@
from django.conf.urls import url from django.conf.urls import url
from c3nav.site.views import account_view, login_view, logout_view, map_index, qr_code from c3nav.site.views import account_view, login_view, logout_view, map_index, qr_code, register_view
slug = r'(?P<slug>[a-z0-9-_.:]+)' slug = r'(?P<slug>[a-z0-9-_.:]+)'
slug2 = r'(?P<slug2>[a-z0-9-_.:]+)' slug2 = r'(?P<slug2>[a-z0-9-_.:]+)'
@ -17,5 +17,6 @@ urlpatterns = [
url(r'^qr/(?P<path>.*)$', qr_code, name='site.qr'), url(r'^qr/(?P<path>.*)$', qr_code, name='site.qr'),
url(r'^login$', login_view, name='site.login'), url(r'^login$', login_view, name='site.login'),
url(r'^logout$', logout_view, name='site.logout'), url(r'^logout$', logout_view, name='site.logout'),
url(r'^register$', register_view, name='site.register'),
url(r'^account/$', account_view, name='site.account'), url(r'^account/$', account_view, name='site.account'),
] ]

View file

@ -5,7 +5,7 @@ import qrcode
from django.conf import settings from django.conf import settings
from django.contrib.auth import login, logout from django.contrib.auth import login, logout
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
from django.core.serializers.json import DjangoJSONEncoder from django.core.serializers.json import DjangoJSONEncoder
from django.http import HttpResponse, HttpResponseBadRequest from django.http import HttpResponse, HttpResponseBadRequest
from django.shortcuts import redirect, render from django.shortcuts import redirect, render
@ -148,6 +148,26 @@ def logout_view(request):
return close_response(request) return close_response(request)
@never_cache
def register_view(request):
if request.user.is_authenticated:
return close_response(request)
if request.method == 'POST':
form = UserCreationForm(data=request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return close_response(request)
else:
form = UserCreationForm()
for field in form.fields.values():
field.help_text = None
return render(request, 'site/register.html', {'form': form})
@never_cache @never_cache
@login_required(login_url='site.login') @login_required(login_url='site.login')
def account_view(request): def account_view(request):