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

+
+

User Settings for {{ rower.user.first_name }} {{ rower.user.last_name }}

+

Need help? Click to read the tutorial

+
+

Heart Rate Zones

@@ -88,7 +102,11 @@

+ {% if rower.user == user %} Password Change + {% else %} +   + {% endif %}

@@ -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 %}

@@ -161,7 +180,7 @@

- +

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', {