Profile page + password changing
This commit is contained in:
parent
994cdfb234
commit
d995feaad2
4
TODO
4
TODO
|
@ -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…
Reference in New Issue