Private
Public Access
1
0

team manager can edit user

This commit is contained in:
Sander Roosendaal
2018-03-04 16:18:58 +01:00
parent fd99872160
commit e517767641
4 changed files with 48 additions and 23 deletions

View File

@@ -598,7 +598,7 @@ class Rower(models.Model):
verbose_name='Show Notes for Favorite Charts') verbose_name='Show Notes for Favorite Charts')
def __str__(self): def __str__(self):
return self.user.firstname+' '+self.user.last_name return self.user.first_name+' '+self.user.last_name
def __unicode__(self): def __unicode__(self):
return self.user.first_name+' '+self.user.last_name return self.user.first_name+' '+self.user.last_name

View File

@@ -1,11 +1,25 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load staticfiles %}
{% load rowerfilters %}
{% block title %}Change Rower {% endblock %} {% block title %}Change Rower {% endblock %}
{% block content %} {% block content %}
<div class="grid_12 alpha"> <div class="grid_12 alpha">
<h1>User Settings</h1> <div class="grid_8 alpha">
<p><a href="http://analytics.rowsandall.com/2017/11/02/rowsandall-settings-page-tutorial/">Need help? Click to read the tutorial</a></p> <h1>User Settings for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
<p><a href="http://analytics.rowsandall.com/2017/11/02/rowsandall-settings-page-tutorial/">Need help? Click to read the tutorial</a></p>
</div>
<div class="grid_2 suffix_2 omega dropdown">
<button class="grid_2 alpha button green small dropbtn">
Change Rower
</button>
<div class="dropdown-content">
{% for rower in user|team_rowers %}
<a class="button green small" href="/rowers/rower/edit/{{ rower.id }}">{{ rower.user.first_name }} {{ rower.user.last_name }}</a>
{% endfor %}
</div>
</div>
<div class="grid_6 alpha"> <div class="grid_6 alpha">
<p> <p>
<h2>Heart Rate Zones</h2> <h2>Heart Rate Zones</h2>
@@ -88,7 +102,11 @@
<div class="grid_6 alpha"> <div class="grid_6 alpha">
<div class="grid_2 suffix_4 alpha"> <div class="grid_2 suffix_4 alpha">
<p> <p>
{% if rower.user == user %}
<a class="button gray small" href="/password_change/">Password Change</a> <a class="button gray small" href="/password_change/">Password Change</a>
{% else %}
&nbsp;
{% endif %}
</p> </p>
</div> </div>
</div> </div>
@@ -116,7 +134,7 @@
</table> </table>
{% csrf_token %} {% csrf_token %}
<div class="grid_2 alpha"> <div class="grid_2 alpha">
{% if rower.rowerplan == 'basic' %} {% if rower.rowerplan == 'basic' and rower.user == user %}
<a class="button blue" href="/rowers/promembership">Upgrade</a> <a class="button blue" href="/rowers/promembership">Upgrade</a>
{% else %} {% else %}
&nbsp; &nbsp;
@@ -152,6 +170,7 @@
</div> </div>
</div> </div>
</div> </div>
{% if rower.user == user %}
<div class="grid_12 alpha"> <div class="grid_12 alpha">
<div class="grid_6 alpha"> <div class="grid_6 alpha">
<p> <p>
@@ -161,7 +180,7 @@
</div> </div>
</p> </p>
</div> </div>
<div class="grid_6 omega"> <div class="grid_6 omega">
<p> <p>
<h2>Favorite Charts</h2> <h2>Favorite Charts</h2>
@@ -223,7 +242,7 @@
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endif %}

View File

@@ -357,6 +357,7 @@ urlpatterns = [
url(r'^me/request/(\w+.*)/$',views.manager_requests_view), url(r'^me/request/(\w+.*)/$',views.manager_requests_view),
url(r'^me/request/$',views.manager_requests_view), url(r'^me/request/$',views.manager_requests_view),
url(r'^me/edit/$',views.rower_edit_view), url(r'^me/edit/$',views.rower_edit_view),
url(r'^rower/edit/(?P<rowerid>\d+)$',views.rower_edit_view),
url(r'^me/edit/(.+.*)/$',views.rower_edit_view), url(r'^me/edit/(.+.*)/$',views.rower_edit_view),
url(r'^me/c2authorize/$',views.rower_c2_authorize), url(r'^me/c2authorize/$',views.rower_c2_authorize),
url(r'^me/revokeapp/(?P<id>\d+)$',views.rower_revokeapp_view), url(r'^me/revokeapp/(?P<id>\d+)$',views.rower_revokeapp_view),

View File

@@ -10866,8 +10866,16 @@ def rower_exportsettings_view(request):
# Page where user can set his details # Page where user can set his details
# Add email address to form so user can change his email address # Add email address to form so user can change his email address
@login_required() @login_required()
def rower_edit_view(request,message=""): def rower_edit_view(request,rowerid=0,message=""):
r = getrower(request.user) if rowerid==0:
r = getrower(request.user)
else:
r = Rower.objects.get(id=rowerid)
if not checkaccessuser(request.user,r):
raise PermissionDenied("You have no access to these user settings")
rowerid = r.id
if request.method == 'POST' and "ut2" in request.POST: if request.method == 'POST' and "ut2" in request.POST:
form = RowerForm(request.POST) form = RowerForm(request.POST)
if form.is_valid(): if form.is_valid():
@@ -10881,7 +10889,6 @@ def rower_edit_view(request,message=""):
an = cd['an'] an = cd['an']
rest = cd['rest'] rest = cd['rest']
try: try:
r = getrower(request.user)
r.max = max(min(hrmax,250),10) r.max = max(min(hrmax,250),10)
r.ut2 = max(min(ut2,250),10) r.ut2 = max(min(ut2,250),10)
r.ut1 = max(min(ut1,250),10) r.ut1 = max(min(ut1,250),10)
@@ -10896,7 +10903,7 @@ def rower_edit_view(request,message=""):
powerform = RowerPowerForm(instance=r) powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r)
accountform = AccountRowerForm(instance=r) accountform = AccountRowerForm(instance=r)
userform = UserForm(instance=request.user) userform = UserForm(instance=r.user)
return render(request, 'rower_form.html', return render(request, 'rower_form.html',
{'form':form, {'form':form,
'powerzonesform':powerzonesform, 'powerzonesform':powerzonesform,
@@ -10916,7 +10923,7 @@ def rower_edit_view(request,message=""):
#form = RowerForm(instance=r) #form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r) powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r)
userform = UserForm(instance=request.user) userform = UserForm(instance=r.user)
accountform = AccountRowerForm(instance=r) accountform = AccountRowerForm(instance=r)
return render(request, 'rower_form.html', return render(request, 'rower_form.html',
{'form':form, {'form':form,
@@ -10938,7 +10945,6 @@ def rower_edit_view(request,message=""):
ftp = cd['ftp'] ftp = cd['ftp']
otwslack = cd['otwslack'] otwslack = cd['otwslack']
try: try:
r = getrower(request.user)
powerfrac = 100*np.array([r.pw_ut2, powerfrac = 100*np.array([r.pw_ut2,
r.pw_ut1, r.pw_ut1,
r.pw_at, r.pw_at,
@@ -10954,7 +10960,10 @@ def rower_edit_view(request,message=""):
r.save() r.save()
message = "FTP and/or OTW slack values changed." message = "FTP and/or OTW slack values changed."
messages.info(request,message) messages.info(request,message)
url = reverse(rower_edit_view) url = reverse(rower_edit_view,
kwargs = {
'rowerid':r.id,
})
response = HttpResponseRedirect(url) response = HttpResponseRedirect(url)
except Rower.DoesNotExist: except Rower.DoesNotExist:
message = "Funny. This user doesn't exist." message = "Funny. This user doesn't exist."
@@ -10966,7 +10975,7 @@ def rower_edit_view(request,message=""):
form = RowerForm(instance=r) form = RowerForm(instance=r)
#powerform = RowerPowerForm(instance=r) #powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r)
userform = UserForm(instance=request.user) userform = UserForm(instance=r.user)
accountform = AccountRowerForm(instance=r) accountform = AccountRowerForm(instance=r)
return render(request, 'rower_form.html', return render(request, 'rower_form.html',
{'form':form, {'form':form,
@@ -10996,7 +11005,6 @@ def rower_edit_view(request,message=""):
anname = cd['anname'] anname = cd['anname']
powerzones = [ut3name,ut2name,ut1name,atname,trname,anname] powerzones = [ut3name,ut2name,ut1name,atname,trname,anname]
try: try:
r = getrower(request.user)
r.pw_ut2 = pw_ut2 r.pw_ut2 = pw_ut2
r.pw_ut1 = pw_ut1 r.pw_ut1 = pw_ut1
r.pw_at = pw_at r.pw_at = pw_at
@@ -11008,7 +11016,7 @@ def rower_edit_view(request,message=""):
messages.info(request,successmessage) messages.info(request,successmessage)
form = RowerForm(instance=r) form = RowerForm(instance=r)
accountform = AccountRowerForm(instance=r) accountform = AccountRowerForm(instance=r)
userform = UserForm(instance=request.user) userform = UserForm(instance=r.user)
powerform = RowerPowerForm(instance=r) powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r)
return render(request, 'rower_form.html', return render(request, 'rower_form.html',
@@ -11030,7 +11038,7 @@ def rower_edit_view(request,message=""):
form = RowerForm(instance=r) form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r) powerform = RowerPowerForm(instance=r)
accountform = AccountRowerForm(instance=r) accountform = AccountRowerForm(instance=r)
userform = UserForm(instance=request.user) userform = UserForm(instance=r.user)
#powerzonesform = RowerPowerZonesForm(instance=r) #powerzonesform = RowerPowerZonesForm(instance=r)
message = HttpResponse("invalid form") message = HttpResponse("invalid form")
return render(request, 'rower_form.html', return render(request, 'rower_form.html',
@@ -11044,7 +11052,7 @@ def rower_edit_view(request,message=""):
}) })
elif request.method == 'POST' and "weightcategory" in request.POST: elif request.method == 'POST' and "weightcategory" in request.POST:
accountform = AccountRowerForm(request.POST) accountform = AccountRowerForm(request.POST)
userform = UserForm(request.POST,instance=request.user) userform = UserForm(request.POST,instance=r.user)
if accountform.is_valid() and userform.is_valid(): if accountform.is_valid() and userform.is_valid():
# process # process
cd = accountform.cleaned_data cd = accountform.cleaned_data
@@ -11059,7 +11067,7 @@ def rower_edit_view(request,message=""):
showfavoritechartnotes = cd['showfavoritechartnotes'] showfavoritechartnotes = cd['showfavoritechartnotes']
getemailnotifications = cd['getemailnotifications'] getemailnotifications = cd['getemailnotifications']
defaulttimezone=cd['defaulttimezone'] defaulttimezone=cd['defaulttimezone']
u = request.user u = r.user
if len(first_name): if len(first_name):
u.first_name = first_name u.first_name = first_name
u.last_name = last_name u.last_name = last_name
@@ -11068,7 +11076,6 @@ def rower_edit_view(request,message=""):
u.save() u.save()
r = getrower(u)
r.defaulttimezone=defaulttimezone r.defaulttimezone=defaulttimezone
r.weightcategory = weightcategory r.weightcategory = weightcategory
r.getemailnotifications = getemailnotifications r.getemailnotifications = getemailnotifications
@@ -11110,13 +11117,11 @@ def rower_edit_view(request,message=""):
else: else:
try: try:
r = getrower(request.user)
form = RowerForm(instance=r) form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r) powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r)
accountform = AccountRowerForm(instance=r) accountform = AccountRowerForm(instance=r)
userform = UserForm(instance=request.user) userform = UserForm(instance=r.user)
grants = AccessToken.objects.filter(user=request.user) grants = AccessToken.objects.filter(user=request.user)
return render(request, 'rower_form.html', return render(request, 'rower_form.html',
{ {