team manager can edit user
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|
||||||
|
{% 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 %}
|
||||||
|
|
||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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',
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user