Private
Public Access
1
0

improved followrower

This commit is contained in:
Sander Roosendaal
2018-04-30 16:18:35 +02:00
parent 5f1328ab73
commit 71696ec054
2 changed files with 43 additions and 92 deletions

View File

@@ -16,7 +16,7 @@
<div class="grid_12 alpha"> <div class="grid_12 alpha">
<div class="grid_2 alpha"> <div class="grid_2 alpha">
{% if user.is_authenticated and psdict.id.1|is_session_manager:user %} {% if user.is_authenticated and psdict.id.1|is_session_manager:user %}
<a class="button small gray" href="/rowers/sessions/{{ psdict.id.1 }}/edit"> <a class="button small gray" href="/rowers/sessions/{{ psdict.id.1 }}/edit/rower/{{ rower.id }}">
Edit Session</a> Edit Session</a>
{% else %} {% else %}
&nbsp; &nbsp;

View File

@@ -181,8 +181,36 @@ class JSONResponse(HttpResponse):
kwargs['content_type'] = 'application/json' kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs) super(JSONResponse, self).__init__(content, **kwargs)
def getrequestrower(request,rowerid=0,userid=0,notpermanent=False):
if notpermanent == False:
if rowerid == 0 and 'rowerid' in request.session:
rowerid = request.session['rowerid']
if userid != 0:
rowerid = 0
try:
if rowerid != 0:
r = Rower.objects.get(id=rowerid)
elif userid != 0:
u = User.objects.get(id=userid)
r = getrower(u)
else:
r = getrower(request.user)
except Rower.DoesNotExist:
raise Http404("Rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You have no access to this user")
if notpermanent == False:
request.session['rowerid'] = r.id
return r
def getrower(user): def getrower(user):
try: try:
@@ -6425,17 +6453,7 @@ def workouts_view(request,message='',successmessage='',
teamid=0,rankingonly=False,rowerid=0,userid=0): teamid=0,rankingonly=False,rowerid=0,userid=0):
request.session['referer'] = absolute(request)['PATH'] request.session['referer'] = absolute(request)['PATH']
try: r = getrequestrower(request,rowerid=rowerid,userid=userid)
if rowerid != 0:
r = Rower.objects.get(id=rowerid)
elif userid != 0:
u = User.objects.get(id=userid)
r = getrower(u)
else:
r = getrower(request.user)
except Rower.DoesNotExist:
raise Http404("Rower doesn't exist")
# check if access is allowed # check if access is allowed
if not checkaccessuser(request.user,r): if not checkaccessuser(request.user,r):
@@ -11190,12 +11208,7 @@ def rower_exportsettings_view(request):
# 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,rowerid=0,message=""): def rower_edit_view(request,rowerid=0,message=""):
if rowerid==0: r = getrequestrower(request,rowerid=rowerid,notpermanent=True)
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 rowerid = r.id
@@ -12141,16 +12154,8 @@ def plannedsession_multiclone_view(
rowerid=0, rowerid=0,
startdate=timezone.now()-datetime.timedelta(days=30), startdate=timezone.now()-datetime.timedelta(days=30),
enddate=timezone.now()): enddate=timezone.now()):
if rowerid==0: r = getrequestrower(request,rowerid=rowerid)
r = getrower(request.user)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
if 'startdate' in request.session: if 'startdate' in request.session:
startdate = iso8601.parse_date(request.session['startdate']) startdate = iso8601.parse_date(request.session['startdate'])
@@ -12246,15 +12251,8 @@ def plannedsession_multiclone_view(
@user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/", @user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_create_view(request,timeperiod='thisweek',rowerid=0): def plannedsession_create_view(request,timeperiod='thisweek',rowerid=0):
if rowerid==0:
r = getrower(request.user) r = getrequestrower(request,rowerid=rowerid)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
if request.method == 'POST': if request.method == 'POST':
sessioncreateform = PlannedSessionForm(request.POST) sessioncreateform = PlannedSessionForm(request.POST)
@@ -12349,15 +12347,7 @@ def plannedsession_multicreate_view(request,timeperiod='thisweek',
extrasessions=int(extrasessions) extrasessions=int(extrasessions)
if rowerid==0: r = getrequestrower(request,rowerid=rowerid)
r = getrower(request.user)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
startdate,enddate = get_dates_timeperiod(timeperiod) startdate,enddate = get_dates_timeperiod(timeperiod)
sps = get_sessions(r,startdate=startdate,enddate=enddate) sps = get_sessions(r,startdate=startdate,enddate=enddate)
@@ -12720,15 +12710,7 @@ def plannedsessions_coach_view(request,timeperiod='thisweek',
@login_required() @login_required()
def plannedsessions_view(request,timeperiod='thisweek',rowerid=0): def plannedsessions_view(request,timeperiod='thisweek',rowerid=0):
if rowerid==0: r = getrequestrower(request,rowerid=rowerid)
r = getrower(request.user)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
startdate,enddate = get_dates_timeperiod(timeperiod) startdate,enddate = get_dates_timeperiod(timeperiod)
@@ -12765,15 +12747,7 @@ def plannedsessions_view(request,timeperiod='thisweek',rowerid=0):
@login_required() @login_required()
def plannedsessions_print_view(request,timeperiod='thisweek',rowerid=0): def plannedsessions_print_view(request,timeperiod='thisweek',rowerid=0):
if rowerid==0: r = getrequestrower(request,rowerid=rowerid)
r = getrower(request.user)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
startdate,enddate = get_dates_timeperiod(timeperiod) startdate,enddate = get_dates_timeperiod(timeperiod)
@@ -12802,15 +12776,7 @@ def plannedsessions_manage_view(request,timeperiod='thisweek',rowerid=0,
if request.is_ajax(): if request.is_ajax():
is_ajax = True is_ajax = True
if rowerid==0: r = getrequestrower(request,rowerid=rowerid)
r = getrower(request.user)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
startdate,enddate = get_dates_timeperiod(timeperiod) startdate,enddate = get_dates_timeperiod(timeperiod)
@@ -12928,15 +12894,8 @@ def plannedsessions_manage_view(request,timeperiod='thisweek',rowerid=0,
redirect_field_name=None) redirect_field_name=None)
def plannedsession_clone_view(request,id=0,rowerid=0, def plannedsession_clone_view(request,id=0,rowerid=0,
timeperiod='thisweek'): timeperiod='thisweek'):
if rowerid==0:
r = getrower(request.user) r = getrequestrower(request,rowerid=rowerid)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
startdate,enddate = get_dates_timeperiod(timeperiod) startdate,enddate = get_dates_timeperiod(timeperiod)
@@ -12981,16 +12940,8 @@ def plannedsession_clone_view(request,id=0,rowerid=0,
@user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/", @user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_edit_view(request,id=0,timeperiod='thisweek',rowerid=0): def plannedsession_edit_view(request,id=0,timeperiod='thisweek',rowerid=0):
if rowerid==0: r = getrequestrower(request,rowerid=rowerid)
r = getrower(request.user)
else:
try:
r = Rower.objects.get(id=rowerid)
except Rower.DoesNotExist:
raise Http404("This rower doesn't exist")
if not checkaccessuser(request.user,r):
raise PermissionDenied("You don't have access to this plan")
startdate,enddate = get_dates_timeperiod(timeperiod) startdate,enddate = get_dates_timeperiod(timeperiod)