added password change form

This commit is contained in:
vabene1111 2020-03-18 13:06:39 +01:00
parent 9e524a8f22
commit 1cadb1e85e
2 changed files with 35 additions and 18 deletions

View File

@ -19,7 +19,13 @@
<form action="." method="post">
{% csrf_token %}
{{ user_name_form|crispy }}
<button class="btn btn-success" type="submit"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
<button class="btn btn-success" type="submit" name="user_name_form"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
</form>
<form action="." method="post">
{% csrf_token %}
{{ password_form|crispy }}
<button class="btn btn-success" type="submit" name="password_form"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
</form>
<br/>
@ -41,7 +47,7 @@
{% endfor %}
</select>
<br/>
<button class="btn btn-success" type="submit"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
<button class="btn btn-success" type="submit" name="preference_form"><i class="fas fa-save"></i> {% trans 'Save' %}</button>
</form>
</div>

View File

@ -3,7 +3,9 @@ import re
from datetime import datetime, timedelta
from django.contrib import messages
from django.contrib.auth import update_session_auth_hash
from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import PasswordChangeForm
from django.shortcuts import render, get_object_or_404
from django_tables2 import RequestConfig
from django.utils.translation import gettext as _
@ -161,26 +163,35 @@ def settings(request):
except UserPreference.DoesNotExist:
up = None
if request.method == "POST":
form = UserPreferenceForm(request.POST, prefix='preference')
if form.is_valid():
if not up:
up = UserPreference(user=request.user)
up.theme = form.cleaned_data['theme']
up.nav_color = form.cleaned_data['nav_color']
up.save()
user_name_form = UserNameForm(instance=request.user)
password_form = PasswordChangeForm(request.user)
form = UserNameForm(request.POST, prefix='name')
if form.is_valid():
request.user.first_name = form.cleaned_data['first_name']
request.user.last_name = form.cleaned_data['last_name']
request.user.save()
if request.method == "POST":
if 'preference_form' in request.POST:
form = UserPreferenceForm(request.POST, prefix='preference')
if form.is_valid():
if not up:
up = UserPreference(user=request.user)
up.theme = form.cleaned_data['theme']
up.nav_color = form.cleaned_data['nav_color']
up.save()
if 'user_name_form' in request.POST:
user_name_form = UserNameForm(request.POST, prefix='name')
if user_name_form.is_valid():
request.user.first_name = user_name_form.cleaned_data['first_name']
request.user.last_name = user_name_form.cleaned_data['last_name']
request.user.save()
if 'password_form' in request.POST:
password_form = PasswordChangeForm(request.user, request.POST)
if password_form.is_valid():
user = password_form.save()
update_session_auth_hash(request, user)
if up:
preference_form = UserPreferenceForm(instance=up)
else:
preference_form = UserPreferenceForm()
user_name_form = UserNameForm(instance=request.user)
return render(request, 'settings.html', {'preference_form': preference_form, 'user_name_form': user_name_form})
return render(request, 'settings.html', {'preference_form': preference_form, 'user_name_form': user_name_form, 'password_form': password_form})