Profile page + password changing

py3
Sebastian Lohff 7 years ago
parent 994cdfb234
commit d995feaad2

@ -1,8 +1,6 @@
- bastla will die passwort regeln einfacher haben - bastla will die passwort regeln einfacher haben
- beim qso log kann noch vorne die uhrzeit dran - beim qso log kann noch vorne die uhrzeit dran
- ggf passwort ändern
- bastla will anderen regex - bastla will anderen regex
- dj7xj: mit space ins nächste feld springen
- dj7xj: EXC in logzeile fest anzeigen - dj7xj: EXC in logzeile fest anzeigen
(Partially) Done (Partially) Done
@ -17,6 +15,8 @@
- call dupe check mit tastypie based on call+band - call dupe check mit tastypie based on call+band
- qsoform muss den report richtig parsen, gucken ob es [0-5][0-9] ist (blöden validator adden) - qsoform muss den report richtig parsen, gucken ob es [0-5][0-9] ist (blöden validator adden)
- after registration direct login! - after registration direct login!
- dj7xj: mit space ins nächste feld springen
- ggf passwort ändern
Glaube nich, dass ich das mache Glaube nich, dass ich das mache
- call dupe validation könnte ins model wandern - call dupe validation könnte ins model wandern

@ -3,7 +3,7 @@ from django.shortcuts import render
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.admin.views.decorators import staff_member_required from django.contrib.admin.views.decorators import staff_member_required
from django.db.models import Q from django.db.models import Q
from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.contrib import messages from django.contrib import messages
from django.urls import reverse from django.urls import reverse
@ -156,3 +156,17 @@ def register(request):
form = CustomUserCreationForm() form = CustomUserCreationForm()
return render(request, 'registration/register.html', {"form": form}) return render(request, 'registration/register.html', {"form": form})
@login_required
def profile(request):
pwForm = None
if request.method == 'POST':
pwForm = PasswordChangeForm(user=request.user, data=request.POST)
if pwForm.is_valid():
pwForm.save()
auth_login(request, pwForm.user)
messages.success(request, "Password changed")
else:
pwForm = PasswordChangeForm(user=request.user)
return render(request, 'registration/profile.html', {"pwForm": pwForm})

@ -21,7 +21,7 @@ from django.contrib.auth import views as auth_views
#from django.contrib.auth.forms import UserCreationForm #from django.contrib.auth.forms import UserCreationForm
#from contest.forms import CustomUserCreationForm #from contest.forms import CustomUserCreationForm
from contest.views import index, register from contest.views import index, register, profile
@ -33,6 +33,7 @@ urlpatterns = [
url(r'^login/$', auth_views.login, name='login'), url(r'^login/$', auth_views.login, name='login'),
url(r'^logout/$', auth_views.logout, {'next_page': '/'}, name='logout'), url(r'^logout/$', auth_views.logout, {'next_page': '/'}, name='logout'),
url(r'^register/$', register, name='register'), url(r'^register/$', register, name='register'),
url(r'^profile/$', profile, name='profile'),
#url(r'^register/$', CreateView.as_view( #url(r'^register/$', CreateView.as_view(
# template_name='registration/register.html', # template_name='registration/register.html',
# form_class=CustomUserCreationForm, # form_class=CustomUserCreationForm,

@ -66,7 +66,7 @@
{% endif %} {% endif %}
</ul> </ul>
{% if user.is_authenticated %} {% if user.is_authenticated %}
<p class="navbar-text navbar-right"><kbd>{{ user.username }} @ {% if user.ref %}{{ user.ref }}{% else %}???{% endif %}</kbd></p> <p class="navbar-text navbar-right"><a href="{% url "profile" %}"><kbd>{{ user.username }} @ {% if user.ref %}{{ user.ref }}{% else %}???{% endif %}</kbd></a></p>
{% endif %} {% endif %}
</div><!--/.nav-collapse --> </div><!--/.nav-collapse -->
</div> </div>

@ -0,0 +1,36 @@
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="row">
<div class="col-sm-6">
<div class="panel panel-default">
<div class="panel-heading">User Info</div>
<div class="panel-body">
<p>
<dl class="dl-horizontal">
<dt>Username</dt>
<dd>{{ user }}</td>
<dt>Exchange</dt>
<dd>{{ user.ref|default:"Not registered" }}</td>
</dl>
</p>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="panel panel-default">
<div class="panel-heading">Change Password</div>
<div class="panel-body">
<form method="POST" action="{% url "profile" %}">
{% csrf_token %}
{{ pwForm|crispy }}
<button type="submit" class="btn btn-primary" name="form" value="pwchange">Change Password</button>
</form>
</div>
</div>
</div>
</div>
{% endblock %}
Loading…
Cancel
Save