passing tests, removing some obsolete views
This commit is contained in:
240
rowers/views.py
240
rowers/views.py
@@ -2840,42 +2840,6 @@ def rower_process_callback(request):
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
# The imports page
|
||||
@login_required()
|
||||
def imports_view(request):
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
if request.method == 'POST':
|
||||
form = RowerImportExportForm(request.POST)
|
||||
if form.is_valid():
|
||||
cd = form.cleaned_data
|
||||
|
||||
for attr, value in cd.items():
|
||||
setattr(r,attr,value)
|
||||
|
||||
r.save()
|
||||
messages.info(request,'Settings Saved')
|
||||
|
||||
else:
|
||||
form = RowerImportExportForm(instance=r)
|
||||
|
||||
|
||||
return render(request,"imports.html",
|
||||
{
|
||||
'teams':get_my_teams(request.user),
|
||||
'form':form,
|
||||
})
|
||||
|
||||
# Just for testing purposes
|
||||
@login_required()
|
||||
def test_reverse_view(request):
|
||||
successmessage = "Tokens stored. Good to go"
|
||||
messages.info(request,successmessage)
|
||||
|
||||
url = reverse(workouts_view)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# dummy
|
||||
@login_required()
|
||||
@@ -5613,65 +5577,6 @@ def workout_recalcsummary_view(request,id=0):
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@login_required()
|
||||
def workout_makepublic_view(request,id,
|
||||
message='',
|
||||
successmessage=''):
|
||||
|
||||
row = get_workout(id)
|
||||
|
||||
if (checkworkoutuser(request.user,row)==False):
|
||||
message = "You are not allowed to edit this workout"
|
||||
messages.error(request,message)
|
||||
url = reverse(workouts_view)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
row.privacy = 'visible'
|
||||
row.save()
|
||||
rr = getrower(request.user)
|
||||
|
||||
teams = rr.team.all()
|
||||
for team in teams:
|
||||
row.team.add(team)
|
||||
|
||||
|
||||
message = "Workout set to public. Your followers and team members will see it"
|
||||
messages.info(request,message)
|
||||
|
||||
url = reverse(workout_edit_view,
|
||||
kwargs = {
|
||||
'id':int(id),
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@login_required()
|
||||
def workout_setprivate_view(request,id,
|
||||
message='',
|
||||
successmessage=''):
|
||||
row = get_workout(id)
|
||||
|
||||
if (checkworkoutuser(request.user,row)==False):
|
||||
message = "You are not allowed to edit this workout"
|
||||
messages.error(request,message)
|
||||
url = reverse(workouts_view)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
row.privacy = 'private'
|
||||
row.save()
|
||||
|
||||
for team in row.team.all():
|
||||
row.team.remove(team)
|
||||
|
||||
message = "Workout set to private. Only you will see it"
|
||||
messages.info(request,message)
|
||||
|
||||
url = reverse(workout_edit_view,
|
||||
kwargs = {
|
||||
'id':int(id),
|
||||
})
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# Joining workout
|
||||
@user_passes_test(ispromember,login_url="/rowers/paidplans",
|
||||
@@ -7735,90 +7640,6 @@ def workouts_view(request,message='',successmessage='',
|
||||
})
|
||||
|
||||
|
||||
# List of workouts to compare a selected workout to
|
||||
@user_passes_test(ispromember,login_url="/rowers/paidplans",
|
||||
message="This functionality requires a Pro plan or higher",
|
||||
redirect_field_name=None)
|
||||
def workout_comparison_list(request,id=0,message='',successmessage='',
|
||||
startdatestring="",enddatestring="",
|
||||
startdate=timezone.now()-datetime.timedelta(days=365),
|
||||
enddate=timezone.now()):
|
||||
|
||||
try:
|
||||
r = getrower(request.user)
|
||||
except Rower.DoesNotExist:
|
||||
raise Http404("User has no rower instance")
|
||||
u = User.objects.get(id=r.user.id)
|
||||
|
||||
if request.method == 'POST':
|
||||
dateform = DateRangeForm(request.POST)
|
||||
if dateform.is_valid():
|
||||
startdate = dateform.cleaned_data['startdate']
|
||||
enddate = dateform.cleaned_data['enddate']
|
||||
else:
|
||||
dateform = DateRangeForm(initial={
|
||||
'startdate':startdate,
|
||||
'enddate':enddate,
|
||||
})
|
||||
|
||||
if startdatestring:
|
||||
startdate = iso8601.parse_date(startdatestring)
|
||||
if enddatestring:
|
||||
enddate = iso8601.parse_date(enddatestring)
|
||||
|
||||
startdate = datetime.datetime.combine(startdate,datetime.time())
|
||||
enddate = datetime.datetime.combine(enddate,datetime.time(23,59,59))
|
||||
#enddate = enddate+datetime.timedelta(days=1)
|
||||
|
||||
if enddate < startdate:
|
||||
s = enddate
|
||||
enddate = startdate
|
||||
startdate = s
|
||||
|
||||
workouts = Workout.objects.filter(user=r,
|
||||
startdatetime__gte=startdate,
|
||||
startdatetime__lte=enddate).order_by("-date", "-starttime").exclude(id=id)
|
||||
|
||||
query = request.GET.get('q')
|
||||
if query:
|
||||
query_list = query.split()
|
||||
workouts = workouts.filter(
|
||||
reduce(operator.and_,
|
||||
(Q(name__icontains=q) for q in query_list)) |
|
||||
reduce(operator.and_,
|
||||
(Q(notes__icontains=q) for q in query_list))
|
||||
)
|
||||
searchform = SearchForm(initial={'q':query})
|
||||
else:
|
||||
searchform = SearchForm()
|
||||
|
||||
paginator = Paginator(workouts,15) # show 25 workouts per page
|
||||
page = request.GET.get('page')
|
||||
|
||||
try:
|
||||
workouts = paginator.page(page)
|
||||
except PageNotAnInteger:
|
||||
workouts = paginator.page(1)
|
||||
except EmptyPage:
|
||||
workouts = paginator.page(paginator.num_pages)
|
||||
|
||||
row = get_workout(id)
|
||||
|
||||
messages.error(request,message)
|
||||
messages.info(request,successmessage)
|
||||
|
||||
return render(request, 'comparison_list.html',
|
||||
{'id':int(id),
|
||||
'workout':row,
|
||||
'workouts': workouts,
|
||||
'last_name':u.last_name,
|
||||
'first_name':u.first_name,
|
||||
'searchform':searchform,
|
||||
'dateform':dateform,
|
||||
'startdate':startdate,
|
||||
'enddate':enddate,
|
||||
'teams':get_my_teams(request.user),
|
||||
})
|
||||
|
||||
|
||||
# List of workouts to compare a selected workout to
|
||||
@@ -8740,67 +8561,6 @@ def instroke_view(request,id=0):
|
||||
'instrokemetrics':instrokemetrics,
|
||||
})
|
||||
|
||||
# A special Edit page with all the Geeky functionality for the workout
|
||||
@login_required()
|
||||
def workout_geeky_view(request,id=0,message="",successmessage=""):
|
||||
row = get_workout(id)
|
||||
|
||||
# form = WorkoutForm(instance=row)
|
||||
g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime")
|
||||
rowdata = rrdata(csvfile=row.csvfilename)
|
||||
instrokemetrics = rowdata.get_instroke_columns()
|
||||
|
||||
|
||||
for i in g:
|
||||
try:
|
||||
width,height = Image.open(i.filename).size
|
||||
i.width = width
|
||||
i.height = height
|
||||
i.save()
|
||||
except:
|
||||
pass
|
||||
|
||||
# check if user is owner of this workout
|
||||
|
||||
if (checkworkoutuser(request.user,row)==False):
|
||||
message = "You are not allowed to edit this workout"
|
||||
messages.error(request,message)
|
||||
url = reverse(workouts_view)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
# create interactive plot
|
||||
f1 = row.csvfilename
|
||||
u = row.user.user
|
||||
r = getrower(u)
|
||||
|
||||
# create interactive plot
|
||||
try:
|
||||
res = interactive_chart(id,promember=1)
|
||||
script = res[0]
|
||||
div = res[1]
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
messages.error(request,message)
|
||||
messages.info(request,successmessage)
|
||||
|
||||
if row.workouttype in mytypes.otwtypes:
|
||||
return render(request,
|
||||
'otwgeeky.html',
|
||||
{'workout':row,
|
||||
'teams':get_my_teams(request.user),
|
||||
'interactiveplot':script,
|
||||
'instrokemetrics':instrokemetrics,
|
||||
'the_div':div})
|
||||
else:
|
||||
return render(request,
|
||||
'advancededit.html',
|
||||
{'workout':row,
|
||||
'teams':get_my_teams(request.user),
|
||||
'interactiveplot':script,
|
||||
'the_div':div})
|
||||
|
||||
# generate instroke chart
|
||||
@login_required()
|
||||
|
||||
Reference in New Issue
Block a user