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