diff --git a/rowers/models.py b/rowers/models.py
index e860e264..4082994f 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -598,7 +598,7 @@ class Rower(models.Model):
verbose_name='Show Notes for Favorite Charts')
def __str__(self):
- return self.user.firstname+' '+self.user.last_name
+ return self.user.first_name+' '+self.user.last_name
def __unicode__(self):
return self.user.first_name+' '+self.user.last_name
diff --git a/rowers/templates/rower_form.html b/rowers/templates/rower_form.html
index fc9a574b..f863df84 100644
--- a/rowers/templates/rower_form.html
+++ b/rowers/templates/rower_form.html
@@ -1,11 +1,25 @@
{% extends "base.html" %}
+{% load staticfiles %}
+{% load rowerfilters %}
{% block title %}Change Rower {% endblock %}
{% block content %}
-
User Settings
-
Need help? Click to read the tutorial
+
+
Heart Rate Zones
@@ -88,7 +102,11 @@
@@ -116,7 +134,7 @@
{% csrf_token %}
- {% if rower.rowerplan == 'basic' %}
+ {% if rower.rowerplan == 'basic' and rower.user == user %}
Upgrade
{% else %}
@@ -152,6 +170,7 @@
+{% if rower.user == user %}
-
+
Favorite Charts
@@ -223,7 +242,7 @@
{% endif %}
-
+{% endif %}
diff --git a/rowers/urls.py b/rowers/urls.py
index c1947531..9fb25e63 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -357,6 +357,7 @@ urlpatterns = [
url(r'^me/request/(\w+.*)/$',views.manager_requests_view),
url(r'^me/request/$',views.manager_requests_view),
url(r'^me/edit/$',views.rower_edit_view),
+ url(r'^rower/edit/(?P\d+)$',views.rower_edit_view),
url(r'^me/edit/(.+.*)/$',views.rower_edit_view),
url(r'^me/c2authorize/$',views.rower_c2_authorize),
url(r'^me/revokeapp/(?P\d+)$',views.rower_revokeapp_view),
diff --git a/rowers/views.py b/rowers/views.py
index 8da3803d..c27cb5cf 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -10866,8 +10866,16 @@ def rower_exportsettings_view(request):
# Page where user can set his details
# Add email address to form so user can change his email address
@login_required()
-def rower_edit_view(request,message=""):
- r = getrower(request.user)
+def rower_edit_view(request,rowerid=0,message=""):
+ 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:
form = RowerForm(request.POST)
if form.is_valid():
@@ -10881,7 +10889,6 @@ def rower_edit_view(request,message=""):
an = cd['an']
rest = cd['rest']
try:
- r = getrower(request.user)
r.max = max(min(hrmax,250),10)
r.ut2 = max(min(ut2,250),10)
r.ut1 = max(min(ut1,250),10)
@@ -10896,7 +10903,7 @@ def rower_edit_view(request,message=""):
powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r)
accountform = AccountRowerForm(instance=r)
- userform = UserForm(instance=request.user)
+ userform = UserForm(instance=r.user)
return render(request, 'rower_form.html',
{'form':form,
'powerzonesform':powerzonesform,
@@ -10916,7 +10923,7 @@ def rower_edit_view(request,message=""):
#form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r)
- userform = UserForm(instance=request.user)
+ userform = UserForm(instance=r.user)
accountform = AccountRowerForm(instance=r)
return render(request, 'rower_form.html',
{'form':form,
@@ -10938,7 +10945,6 @@ def rower_edit_view(request,message=""):
ftp = cd['ftp']
otwslack = cd['otwslack']
try:
- r = getrower(request.user)
powerfrac = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -10954,7 +10960,10 @@ def rower_edit_view(request,message=""):
r.save()
message = "FTP and/or OTW slack values changed."
messages.info(request,message)
- url = reverse(rower_edit_view)
+ url = reverse(rower_edit_view,
+ kwargs = {
+ 'rowerid':r.id,
+ })
response = HttpResponseRedirect(url)
except Rower.DoesNotExist:
message = "Funny. This user doesn't exist."
@@ -10966,7 +10975,7 @@ def rower_edit_view(request,message=""):
form = RowerForm(instance=r)
#powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r)
- userform = UserForm(instance=request.user)
+ userform = UserForm(instance=r.user)
accountform = AccountRowerForm(instance=r)
return render(request, 'rower_form.html',
{'form':form,
@@ -10996,7 +11005,6 @@ def rower_edit_view(request,message=""):
anname = cd['anname']
powerzones = [ut3name,ut2name,ut1name,atname,trname,anname]
try:
- r = getrower(request.user)
r.pw_ut2 = pw_ut2
r.pw_ut1 = pw_ut1
r.pw_at = pw_at
@@ -11008,7 +11016,7 @@ def rower_edit_view(request,message=""):
messages.info(request,successmessage)
form = RowerForm(instance=r)
accountform = AccountRowerForm(instance=r)
- userform = UserForm(instance=request.user)
+ userform = UserForm(instance=r.user)
powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r)
return render(request, 'rower_form.html',
@@ -11030,7 +11038,7 @@ def rower_edit_view(request,message=""):
form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r)
accountform = AccountRowerForm(instance=r)
- userform = UserForm(instance=request.user)
+ userform = UserForm(instance=r.user)
#powerzonesform = RowerPowerZonesForm(instance=r)
message = HttpResponse("invalid form")
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:
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():
# process
cd = accountform.cleaned_data
@@ -11059,7 +11067,7 @@ def rower_edit_view(request,message=""):
showfavoritechartnotes = cd['showfavoritechartnotes']
getemailnotifications = cd['getemailnotifications']
defaulttimezone=cd['defaulttimezone']
- u = request.user
+ u = r.user
if len(first_name):
u.first_name = first_name
u.last_name = last_name
@@ -11068,7 +11076,6 @@ def rower_edit_view(request,message=""):
u.save()
- r = getrower(u)
r.defaulttimezone=defaulttimezone
r.weightcategory = weightcategory
r.getemailnotifications = getemailnotifications
@@ -11110,13 +11117,11 @@ def rower_edit_view(request,message=""):
else:
try:
- r = getrower(request.user)
-
form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r)
powerzonesform = RowerPowerZonesForm(instance=r)
accountform = AccountRowerForm(instance=r)
- userform = UserForm(instance=request.user)
+ userform = UserForm(instance=r.user)
grants = AccessToken.objects.filter(user=request.user)
return render(request, 'rower_form.html',
{