Date Ranges for workouts and comparisons
This commit is contained in:
@@ -1572,8 +1572,8 @@ def rankings_view(request,theuser=0,
|
||||
for rankingduration in rankingdurations:
|
||||
|
||||
workouts = Workout.objects.filter(user=r,duration=rankingduration,
|
||||
workouttype='rower',
|
||||
startdatetime__gte=startdate,
|
||||
workouttype='rower',
|
||||
startdatetime__gte=startdate,
|
||||
startdatetime__lte=enddate).order_by('-distance')
|
||||
if workouts:
|
||||
thedistances.append(workouts[0].distance)
|
||||
@@ -1767,14 +1767,45 @@ def workout_recalcsummary_view(request,id=0):
|
||||
|
||||
|
||||
@login_required()
|
||||
def workouts_view(request,message='',successmessage=''):
|
||||
def workouts_view(request,message='',successmessage='',
|
||||
startdatestring="",enddatestring="",
|
||||
startdate=timezone.now()-datetime.timedelta(days=365),
|
||||
enddate=timezone.now()):
|
||||
try:
|
||||
r = Rower.objects.get(user=request.user)
|
||||
# res = mailprocessing.safeprocessattachments()
|
||||
#if len(res)>0 and np.cumsum(np.array(res)).max()>0:
|
||||
# successmessage = 'New Workouts have been created from email'
|
||||
|
||||
workouts = Workout.objects.filter(user=r).order_by("-date", "-starttime")
|
||||
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,
|
||||
})
|
||||
|
||||
startdate = datetime.datetime.combine(startdate,datetime.time())
|
||||
enddate = datetime.datetime.combine(enddate,datetime.time(23,59,59))
|
||||
|
||||
if startdatestring:
|
||||
startdate = iso8601.parse_date(startdatestring)
|
||||
if enddatestring:
|
||||
enddate = iso8601.parse_date(enddatestring)
|
||||
|
||||
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")
|
||||
|
||||
query = request.GET.get('q')
|
||||
if query:
|
||||
query_list = query.split()
|
||||
@@ -1785,7 +1816,7 @@ def workouts_view(request,message='',successmessage=''):
|
||||
(Q(notes__icontains=q) for q in query_list))
|
||||
)
|
||||
|
||||
paginator = Paginator(workouts,25) # show 25 workouts per page
|
||||
paginator = Paginator(workouts,20) # show 25 workouts per page
|
||||
page = request.GET.get('page')
|
||||
|
||||
try:
|
||||
@@ -1799,16 +1830,49 @@ def workouts_view(request,message='',successmessage=''):
|
||||
{'workouts': workouts,
|
||||
'message': message,
|
||||
'successmessage':successmessage,
|
||||
'dateform':dateform,
|
||||
'startdate':startdate,
|
||||
'enddate':enddate,
|
||||
})
|
||||
except Rower.DoesNotExist:
|
||||
return HttpResponse("Admin has no rower instance")
|
||||
|
||||
@user_passes_test(promember,login_url="/login")
|
||||
def workout_comparison_list(request,id=0,message='',successmessage=''):
|
||||
def workout_comparison_list(request,id=0,message='',successmessage='',
|
||||
startdatestring="",enddatestring="",
|
||||
startdate=timezone.now()-datetime.timedelta(days=365),
|
||||
enddate=timezone.now()):
|
||||
|
||||
try:
|
||||
r = Rower.objects.get(user=request.user)
|
||||
u = User.objects.get(id=r.user.id)
|
||||
workouts = Workout.objects.filter(user=r).order_by("-date", "-starttime").exclude(id=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))
|
||||
|
||||
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:
|
||||
@@ -1840,6 +1904,9 @@ def workout_comparison_list(request,id=0,message='',successmessage=''):
|
||||
'first_name':u.first_name,
|
||||
'message': message,
|
||||
'successmessage':successmessage,
|
||||
'dateform':dateform,
|
||||
'startdate':startdate,
|
||||
'enddate':enddate,
|
||||
})
|
||||
except Rower.DoesNotExist:
|
||||
return HttpResponse("Admin has no rower instance")
|
||||
|
||||
Reference in New Issue
Block a user