further test coverage improvements
This commit is contained in:
@@ -308,6 +308,27 @@ class WorkoutViewTest(TestCase):
|
|||||||
response = self.c.get(url,follow=True)
|
response = self.c.get(url,follow=True)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
url = reverse('workout_erase_column_view',kwargs={'id':encoder.encode_hex(self.wwater.id),'column':'hr'})
|
||||||
|
expected_url = reverse('workout_data_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
||||||
|
|
||||||
|
response = self.c.get(url,follow=True)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
form_data = {}
|
||||||
|
response = self.c.post(url,form_data,follow=True)
|
||||||
|
self.assertRedirects(response,expected_url=expected_url,status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
url = expected_url
|
||||||
|
form_data = {
|
||||||
|
'cols':['driveenergy','spm']
|
||||||
|
}
|
||||||
|
form = DataFrameColumnsForm(form_data)
|
||||||
|
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
response = self.c.post(url,form_data)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
@patch('rowers.dataprep.create_engine')
|
@patch('rowers.dataprep.create_engine')
|
||||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||||
def test_smoothen(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
def test_smoothen(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ from rowers.utils import allmonths,allsundays
|
|||||||
import rowers.plannedsessions as plannedsessions
|
import rowers.plannedsessions as plannedsessions
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
|
||||||
|
from rowers.views.workoutviews import plannedsession_compare_view
|
||||||
|
from rowers.opaque import encoder
|
||||||
|
|
||||||
@override_settings(TESTING=True)
|
@override_settings(TESTING=True)
|
||||||
class TrainingPlanTest(TestCase):
|
class TrainingPlanTest(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
@@ -311,6 +314,71 @@ class SessionLinkTest(TestCase):
|
|||||||
response = self.c.get(url)
|
response = self.c.get(url)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
url = reverse(plannedsession_compare_view,kwargs={'id':ps.id,'userid':self.u.id})
|
||||||
|
response = self.c.get(url,follow=True)
|
||||||
|
expected_url = reverse('plannedsession_view',kwargs={'id':ps.id})
|
||||||
|
self.assertRedirects(response,expected_url=expected_url,
|
||||||
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
# need a workout attached to the session, to get correct redirect below
|
||||||
|
w.plannedsession = ps
|
||||||
|
w.save()
|
||||||
|
|
||||||
|
url = reverse(plannedsession_compare_view,kwargs={'id':ps.id,'userid':self.u.id})
|
||||||
|
response = self.c.get(url,follow=True)
|
||||||
|
expected_url = reverse('multi_compare_view',kwargs={'userid':self.u.id,'id':encoder.encode_hex(w.id)})
|
||||||
|
self.assertRedirects(response,expected_url=expected_url,
|
||||||
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
# while we're here, let's submit a POST request to multi compare view
|
||||||
|
url = expected_url
|
||||||
|
|
||||||
|
form_data = {
|
||||||
|
'xparam': 'distance',
|
||||||
|
'yparam': 'spm',
|
||||||
|
'plottype': 'line',
|
||||||
|
'teamid':0,
|
||||||
|
}
|
||||||
|
|
||||||
|
form = ChartParamChoiceForm(form_data)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
request = self.factory.post(url,
|
||||||
|
data=form_data)
|
||||||
|
|
||||||
|
# adding session
|
||||||
|
middleware = SessionMiddleware()
|
||||||
|
middleware.process_request(request)
|
||||||
|
request.session.save()
|
||||||
|
|
||||||
|
session = request.session
|
||||||
|
session['ids'] = [w.id]
|
||||||
|
session.save()
|
||||||
|
|
||||||
|
request.user = self.u
|
||||||
|
response = multi_compare_view(request,id=str(w.id))
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
# and adding a get
|
||||||
|
request = self.factory.get(url)
|
||||||
|
# adding session
|
||||||
|
middleware = SessionMiddleware()
|
||||||
|
middleware.process_request(request)
|
||||||
|
request.session.save()
|
||||||
|
|
||||||
|
session = request.session
|
||||||
|
session['ids'] = [w.id]
|
||||||
|
session['plottype'] = 'line'
|
||||||
|
session['xparam'] = 'distance'
|
||||||
|
session['yparam'] = 'spm'
|
||||||
|
session.save()
|
||||||
|
|
||||||
|
request.user = self.u
|
||||||
|
response = multi_compare_view(request,id=str(w.id))
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_multiplesessions(self):
|
def test_multiplesessions(self):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
|||||||
@@ -16,9 +16,10 @@ import rowers.courses as courses
|
|||||||
import rowers.tasks as tasks
|
import rowers.tasks as tasks
|
||||||
from rowers.views.racesviews import *
|
from rowers.views.racesviews import *
|
||||||
from rowers.utils import calculate_age
|
from rowers.utils import calculate_age
|
||||||
from rowers.views import addmanual_view
|
from rowers.views import addmanual_view, virtualevent_compare_view
|
||||||
|
|
||||||
from django.contrib.messages.storage.fallback import FallbackStorage
|
from django.contrib.messages.storage.fallback import FallbackStorage
|
||||||
|
from django.contrib.sessions.middleware import SessionMiddleware
|
||||||
|
|
||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
import base64
|
import base64
|
||||||
@@ -61,6 +62,13 @@ class ChallengesTest(TestCase):
|
|||||||
gdproptindate=timezone.now(),
|
gdproptindate=timezone.now(),
|
||||||
rowerplan='coach')
|
rowerplan='coach')
|
||||||
|
|
||||||
|
self.u2 = UserFactory()
|
||||||
|
self.r2 = Rower.objects.create(user=self.u2,
|
||||||
|
birthdate=datetime.datetime.now()-datetime.timedelta(days=28*365),
|
||||||
|
gdproptin=True,surveydone=True,
|
||||||
|
gdproptindate=timezone.now(),
|
||||||
|
rowerplan='basic')
|
||||||
|
|
||||||
self.c = Client()
|
self.c = Client()
|
||||||
self.user_workouts = WorkoutFactory.create_batch(5, user=self.r)
|
self.user_workouts = WorkoutFactory.create_batch(5, user=self.r)
|
||||||
self.factory = RequestFactory()
|
self.factory = RequestFactory()
|
||||||
@@ -93,6 +101,22 @@ class ChallengesTest(TestCase):
|
|||||||
self.wthyro.date = nu.date()
|
self.wthyro.date = nu.date()
|
||||||
self.wthyro.save()
|
self.wthyro.save()
|
||||||
|
|
||||||
|
result = get_random_file(filename='rowers/tests/testdata/thyro.csv')
|
||||||
|
self.wthyro2 = WorkoutFactory(user=self.r2,
|
||||||
|
csvfilename=result['filename'],
|
||||||
|
starttime=result['starttime'],
|
||||||
|
startdatetime=result['startdatetime'],
|
||||||
|
duration=result['duration'],
|
||||||
|
distance=result['totaldist'],
|
||||||
|
workouttype = 'water',
|
||||||
|
)
|
||||||
|
|
||||||
|
self.wthyro2.startdatetime = nu
|
||||||
|
self.wthyro2.date = nu.date()
|
||||||
|
self.wthyro2.save()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
startdate = arrow.get(datetime.datetime.now()-datetime.timedelta(days=1)).datetime
|
startdate = arrow.get(datetime.datetime.now()-datetime.timedelta(days=1)).datetime
|
||||||
start_time = datetime.time()
|
start_time = datetime.time()
|
||||||
enddate = startdate+datetime.timedelta(days=5)
|
enddate = startdate+datetime.timedelta(days=5)
|
||||||
@@ -125,6 +149,21 @@ class ChallengesTest(TestCase):
|
|||||||
)
|
)
|
||||||
self.SpeedOrder.save()
|
self.SpeedOrder.save()
|
||||||
|
|
||||||
|
self.result = VirtualRaceResult(
|
||||||
|
userid = self.u2.id,
|
||||||
|
username = self.u2.username,
|
||||||
|
race = self.SpeedOrder,
|
||||||
|
distance = 300,
|
||||||
|
duration = datetime.time(0,1,20),
|
||||||
|
points = 75,
|
||||||
|
coursecompleted = True,
|
||||||
|
age = 28,
|
||||||
|
startsecond = 0,
|
||||||
|
endsecond = 120,
|
||||||
|
workoutid = self.wthyro2.id
|
||||||
|
)
|
||||||
|
self.result.save()
|
||||||
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
for workout in self.user_workouts:
|
for workout in self.user_workouts:
|
||||||
@@ -604,6 +643,60 @@ class ChallengesTest(TestCase):
|
|||||||
record.workoutid = self.wthyro.id
|
record.workoutid = self.wthyro.id
|
||||||
record.save()
|
record.save()
|
||||||
|
|
||||||
|
# map compare
|
||||||
|
url = reverse('virtualevent_mapcompare_view',kwargs={'id':race.id})
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
# compare
|
||||||
|
url = reverse('virtualevent_compare_view',kwargs={'id':race.id})
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
# post to compare
|
||||||
|
form_data = {
|
||||||
|
'workouts':[self.wthyro2.id],
|
||||||
|
'xparam': 'distance',
|
||||||
|
'yparam': 'spm',
|
||||||
|
'plottype': 'line',
|
||||||
|
'teamid':0,
|
||||||
|
}
|
||||||
|
form = ChartParamChoiceForm(form_data)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
form = WorkoutMultipleCompareForm(form_data)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
response = self.c.post(url,form_data)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
# post2 to compare
|
||||||
|
form_data = {
|
||||||
|
'xparam': 'distance',
|
||||||
|
'yparam': 'spm',
|
||||||
|
'plottype': 'line',
|
||||||
|
'teamid':0,
|
||||||
|
}
|
||||||
|
form = ChartParamChoiceForm(form_data)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
request = self.factory.post(url,
|
||||||
|
data=form_data)
|
||||||
|
|
||||||
|
# adding session
|
||||||
|
middleware = SessionMiddleware()
|
||||||
|
middleware.process_request(request)
|
||||||
|
request.session.save()
|
||||||
|
|
||||||
|
session = request.session
|
||||||
|
session['ids'] = [self.wthyro2.id]
|
||||||
|
session.save()
|
||||||
|
|
||||||
|
request.user = self.u
|
||||||
|
response = virtualevent_compare_view(request,id=str(race.id))
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
|
||||||
url = reverse('virtualevent_disqualify_view',kwargs={'id':race.id,'recordid':record.id})
|
url = reverse('virtualevent_disqualify_view',kwargs={'id':race.id,'recordid':record.id})
|
||||||
response = self.c.get(url)
|
response = self.c.get(url)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
@@ -635,10 +728,8 @@ class ChallengesTest(TestCase):
|
|||||||
|
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
# map compare
|
|
||||||
url = reverse('virtualevent_mapcompare_view',kwargs={'id':race.id})
|
|
||||||
response = self.c.get(url)
|
|
||||||
self.assertEqual(response.status_code,200)
|
|
||||||
|
|
||||||
# add boat
|
# add boat
|
||||||
|
|
||||||
|
|||||||
@@ -715,7 +715,6 @@ def addmanual_view(request,raceid=0):
|
|||||||
messages.error(request,er)
|
messages.error(request,er)
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
print('mies')
|
|
||||||
otherrecords = IndoorVirtualRaceResult.objects.filter(
|
otherrecords = IndoorVirtualRaceResult.objects.filter(
|
||||||
race = race
|
race = race
|
||||||
).exclude(userid=r.id)
|
).exclude(userid=r.id)
|
||||||
@@ -992,7 +991,7 @@ def video_selectworkout(request,userid=0):
|
|||||||
).exclude(boattype__in=negtypes)
|
).exclude(boattype__in=negtypes)
|
||||||
|
|
||||||
|
|
||||||
if rankingonly: # pragma : no cover
|
if rankingonly: # pragma: no cover
|
||||||
workouts = workouts.exclude(rankingpiece=False)
|
workouts = workouts.exclude(rankingpiece=False)
|
||||||
|
|
||||||
startdatestring = startdate.strftime('%Y-%m-%d')
|
startdatestring = startdate.strftime('%Y-%m-%d')
|
||||||
@@ -1475,7 +1474,7 @@ def virtualevent_mapcompare_view(request,id=0):
|
|||||||
for result in results:
|
for result in results:
|
||||||
startenddict[result.workoutid] = (result.startsecond,result.endsecond)
|
startenddict[result.workoutid] = (result.startsecond,result.endsecond)
|
||||||
|
|
||||||
if len(workoutids) == 0:
|
if len(workoutids) == 0: # pragma: no cover
|
||||||
url = reverse('virtualevent_view',
|
url = reverse('virtualevent_view',
|
||||||
kwargs={
|
kwargs={
|
||||||
'id':race.id,
|
'id':race.id,
|
||||||
@@ -1489,7 +1488,7 @@ def virtualevent_mapcompare_view(request,id=0):
|
|||||||
for id in workoutids:
|
for id in workoutids:
|
||||||
try:
|
try:
|
||||||
workouts.append(Workout.objects.get(id=id))
|
workouts.append(Workout.objects.get(id=id))
|
||||||
except Workout.DoesNotExist:
|
except Workout.DoesNotExist: # pragma: no cover
|
||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
@@ -1545,18 +1544,18 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
result = request.user.is_authenticated and ispromember(request.user)
|
result = request.user.is_authenticated and ispromember(request.user)
|
||||||
if result:
|
if result:
|
||||||
promember=1
|
promember=1
|
||||||
else:
|
else: # pragma: no cover
|
||||||
r = None
|
r = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
race = VirtualRace.objects.get(id=id)
|
race = VirtualRace.objects.get(id=id)
|
||||||
except VirtualRace.DoesNotExist:
|
except VirtualRace.DoesNotExist: # pragma: no cover
|
||||||
raise Http404("Virtual Challenge does not exist")
|
raise Http404("Virtual Challenge does not exist")
|
||||||
|
|
||||||
if race.sessiontype == 'race':
|
if race.sessiontype == 'race':
|
||||||
script,div = course_map(race.course)
|
script,div = course_map(race.course)
|
||||||
resultobj = VirtualRaceResult
|
resultobj = VirtualRaceResult
|
||||||
else:
|
else: # pragma: no cover
|
||||||
script = ''
|
script = ''
|
||||||
div = ''
|
div = ''
|
||||||
resultobj = IndoorVirtualRaceResult
|
resultobj = IndoorVirtualRaceResult
|
||||||
@@ -1569,18 +1568,12 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
|
|
||||||
workoutids = [result.workoutid for result in results]
|
workoutids = [result.workoutid for result in results]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
startenddict = {}
|
startenddict = {}
|
||||||
if race.sessiontype == 'race':
|
if race.sessiontype == 'race':
|
||||||
for result in results:
|
for result in results:
|
||||||
startenddict[result.workoutid] = (result.startsecond,result.endsecond)
|
startenddict[result.workoutid] = (result.startsecond,result.endsecond)
|
||||||
|
|
||||||
|
if len(workoutids) == 0: # pragma: no cover
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if len(workoutids) == 0:
|
|
||||||
url = reverse('virtualevent_view',
|
url = reverse('virtualevent_view',
|
||||||
kwargs={
|
kwargs={
|
||||||
'id':race.id,
|
'id':race.id,
|
||||||
@@ -1590,7 +1583,6 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
|
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|
||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
xparam = 'time'
|
xparam = 'time'
|
||||||
if race.sessionmode == 'distance':
|
if race.sessionmode == 'distance':
|
||||||
@@ -1612,7 +1604,7 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
for id in workoutids:
|
for id in workoutids:
|
||||||
try:
|
try:
|
||||||
workouts.append(Workout.objects.get(id=id))
|
workouts.append(Workout.objects.get(id=id))
|
||||||
except Workout.DoesNotExist:
|
except Workout.DoesNotExist: # pragma: no cover
|
||||||
pass
|
pass
|
||||||
|
|
||||||
form = WorkoutMultipleCompareForm()
|
form = WorkoutMultipleCompareForm()
|
||||||
@@ -1653,6 +1645,7 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
form.fields["workouts"].queryset = Workout.objects.filter(id__in=workoutids)
|
form.fields["workouts"].queryset = Workout.objects.filter(id__in=workoutids)
|
||||||
request.session['ids'] = workoutids
|
request.session['ids'] = workoutids
|
||||||
|
|
||||||
|
|
||||||
chartform = ChartParamChoiceForm(request.POST)
|
chartform = ChartParamChoiceForm(request.POST)
|
||||||
if chartform.is_valid():
|
if chartform.is_valid():
|
||||||
xparam = chartform.cleaned_data['xparam']
|
xparam = chartform.cleaned_data['xparam']
|
||||||
@@ -1661,15 +1654,16 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
teamid = chartform.cleaned_data['teamid']
|
teamid = chartform.cleaned_data['teamid']
|
||||||
try:
|
try:
|
||||||
workoutids = request.session['ids']
|
workoutids = request.session['ids']
|
||||||
except KeyError:
|
except KeyError: # pragma: no cover
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
workouts = []
|
workouts = []
|
||||||
for id in workoutids:
|
for id in workoutids:
|
||||||
try:
|
try:
|
||||||
workouts.append(Workout.objects.get(
|
workouts.append(Workout.objects.get(
|
||||||
id=id))
|
id=id))
|
||||||
except Workout.DoesNotExist:
|
except Workout.DoesNotExist: # pragma: no cover
|
||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
@@ -1684,7 +1678,7 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
script = res[0]
|
script = res[0]
|
||||||
div = res[1]
|
div = res[1]
|
||||||
errormessage = res[3]
|
errormessage = res[3]
|
||||||
if errormessage != '':
|
if errormessage != '': # pragma: no cover
|
||||||
messages.error(request,errormessage)
|
messages.error(request,errormessage)
|
||||||
|
|
||||||
breadcrumbs = [
|
breadcrumbs = [
|
||||||
@@ -1734,7 +1728,7 @@ def plannedsession_compare_view(request,id=0,userid=0):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
ps = PlannedSession.objects.get(id=id)
|
ps = PlannedSession.objects.get(id=id)
|
||||||
except PlannedSession.DoesNotExist:
|
except PlannedSession.DoesNotExist: # pragma: no cover
|
||||||
raise Http404("Planned session does not exist")
|
raise Http404("Planned session does not exist")
|
||||||
|
|
||||||
|
|
||||||
@@ -1791,7 +1785,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
int(w.id): w.__str__() for w in workouts
|
int(w.id): w.__str__() for w in workouts
|
||||||
}
|
}
|
||||||
|
|
||||||
else:
|
else: # pragma: no cover
|
||||||
return HttpResponse("Form is not valid")
|
return HttpResponse("Form is not valid")
|
||||||
elif request.method == 'POST' and 'ids' in request.session:
|
elif request.method == 'POST' and 'ids' in request.session:
|
||||||
chartform = ChartParamChoiceForm(request.POST)
|
chartform = ChartParamChoiceForm(request.POST)
|
||||||
@@ -1806,7 +1800,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
for id in ids:
|
for id in ids:
|
||||||
try:
|
try:
|
||||||
workouts.append(Workout.objects.get(id=id))
|
workouts.append(Workout.objects.get(id=id))
|
||||||
except Workout.DoesNotExist:
|
except Workout.DoesNotExist: # pragma: no cover
|
||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
@@ -1822,7 +1816,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
for id in ids:
|
for id in ids:
|
||||||
try:
|
try:
|
||||||
workouts.append(Workout.objects.get(id=id))
|
workouts.append(Workout.objects.get(id=id))
|
||||||
except Workout.DoesNotExist:
|
except Workout.DoesNotExist: # pragma: no cover
|
||||||
pass
|
pass
|
||||||
|
|
||||||
labeldict = {
|
labeldict = {
|
||||||
@@ -1852,7 +1846,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
script = res[0]
|
script = res[0]
|
||||||
div = res[1]
|
div = res[1]
|
||||||
errormessage = res[3]
|
errormessage = res[3]
|
||||||
if errormessage != '':
|
if errormessage != '': # pragma: no cover
|
||||||
messages.error(request,errormessage)
|
messages.error(request,errormessage)
|
||||||
|
|
||||||
r = getrower(request.user)
|
r = getrower(request.user)
|
||||||
@@ -1872,7 +1866,7 @@ def multi_compare_view(request,id=0,userid=0):
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
if 'ps' in request.session:
|
if 'ps' in request.session: # pragma: no cover
|
||||||
ps = PlannedSession.objects.get(id=int(request.session['ps']))
|
ps = PlannedSession.objects.get(id=int(request.session['ps']))
|
||||||
breadcrumbs = [
|
breadcrumbs = [
|
||||||
{
|
{
|
||||||
@@ -1995,7 +1989,7 @@ def workouts_view(request,message='',successmessage='',
|
|||||||
startdatetime__lte=activity_enddate,
|
startdatetime__lte=activity_enddate,
|
||||||
duplicate=False,
|
duplicate=False,
|
||||||
privacy='visible').order_by("-date", "-starttime")
|
privacy='visible').order_by("-date", "-starttime")
|
||||||
elif theteam.viewing == 'coachonly':
|
elif theteam.viewing == 'coachonly': # pragma: no cover
|
||||||
workouts = Workout.objects.filter(
|
workouts = Workout.objects.filter(
|
||||||
team=theteam,user=r,
|
team=theteam,user=r,
|
||||||
startdatetime__gte=startdate,
|
startdatetime__gte=startdate,
|
||||||
@@ -2141,14 +2135,13 @@ def workouts_view(request,message='',successmessage='',
|
|||||||
redirect_field_name=None)
|
redirect_field_name=None)
|
||||||
@permission_required('workout.change_workout',fn=get_workout_by_opaqueid,raise_exception=True)
|
@permission_required('workout.change_workout',fn=get_workout_by_opaqueid,raise_exception=True)
|
||||||
def workout_fusion_list(request,id=0,
|
def workout_fusion_list(request,id=0,
|
||||||
startdatestring="",enddatestring="",
|
|
||||||
startdate=timezone.now()-datetime.timedelta(days=365),
|
startdate=timezone.now()-datetime.timedelta(days=365),
|
||||||
enddate=timezone.now()):
|
enddate=timezone.now()):
|
||||||
|
|
||||||
r = getrequestrower(request)
|
r = getrequestrower(request)
|
||||||
|
|
||||||
u = r.user
|
u = r.user
|
||||||
if request.method == 'POST':
|
if request.method == 'POST': # pragma: no cover
|
||||||
dateform = DateRangeForm(request.POST)
|
dateform = DateRangeForm(request.POST)
|
||||||
if dateform.is_valid():
|
if dateform.is_valid():
|
||||||
startdate = dateform.cleaned_data['startdate']
|
startdate = dateform.cleaned_data['startdate']
|
||||||
@@ -2159,11 +2152,6 @@ def workout_fusion_list(request,id=0,
|
|||||||
'enddate':enddate,
|
'enddate':enddate,
|
||||||
})
|
})
|
||||||
|
|
||||||
if startdatestring:
|
|
||||||
startdate = iso8601.parse_date(startdatestring)
|
|
||||||
if enddatestring:
|
|
||||||
enddate = iso8601.parse_date(enddatestring)
|
|
||||||
|
|
||||||
startdate = datetime.datetime.combine(startdate,datetime.time())
|
startdate = datetime.datetime.combine(startdate,datetime.time())
|
||||||
enddate = datetime.datetime.combine(enddate,datetime.time(23,59,59))
|
enddate = datetime.datetime.combine(enddate,datetime.time(23,59,59))
|
||||||
#enddate = enddate+datetime.timedelta(days=1)
|
#enddate = enddate+datetime.timedelta(days=1)
|
||||||
@@ -2200,7 +2188,7 @@ def workout_fusion_list(request,id=0,
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
workouts = paginator.page(page)
|
workouts = paginator.page(page)
|
||||||
except EmptyPage:
|
except EmptyPage: # pragma: no cover
|
||||||
workouts = paginator.page(paginator.num_pages)
|
workouts = paginator.page(paginator.num_pages)
|
||||||
row = get_workoutuser(id, request)
|
row = get_workoutuser(id, request)
|
||||||
|
|
||||||
@@ -2259,7 +2247,7 @@ def workout_view(request,id=0,raceresult=0,sessionresult=0,nocourseraceresult=0)
|
|||||||
|
|
||||||
|
|
||||||
g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime")
|
g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime")
|
||||||
for i in g:
|
for i in g: # pragma: no cover
|
||||||
try:
|
try:
|
||||||
width,height = Image.open(i.filename).size
|
width,height = Image.open(i.filename).size
|
||||||
i.width = width
|
i.width = width
|
||||||
@@ -2270,7 +2258,7 @@ def workout_view(request,id=0,raceresult=0,sessionresult=0,nocourseraceresult=0)
|
|||||||
|
|
||||||
# get raceresult or session result
|
# get raceresult or session result
|
||||||
intervaldata = {}
|
intervaldata = {}
|
||||||
if sessionresult != 0:
|
if sessionresult != 0: # pragma: no cover
|
||||||
try:
|
try:
|
||||||
result = CourseTestResult.objects.get(id=sessionresult)
|
result = CourseTestResult.objects.get(id=sessionresult)
|
||||||
startsecond = result.startsecond
|
startsecond = result.startsecond
|
||||||
@@ -2289,7 +2277,7 @@ def workout_view(request,id=0,raceresult=0,sessionresult=0,nocourseraceresult=0)
|
|||||||
except CourseTestResult.DoesNotExist:
|
except CourseTestResult.DoesNotExist:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if nocourseraceresult != 0:
|
if nocourseraceresult != 0: # pragma: no cover
|
||||||
try:
|
try:
|
||||||
result = IndoorVirtualRaceResult.objects.get(id=nocourseraceresult)
|
result = IndoorVirtualRaceResult.objects.get(id=nocourseraceresult)
|
||||||
startsecond = result.startsecond
|
startsecond = result.startsecond
|
||||||
@@ -2309,7 +2297,7 @@ def workout_view(request,id=0,raceresult=0,sessionresult=0,nocourseraceresult=0)
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
if raceresult != 0:
|
if raceresult != 0: # pragma: no cover
|
||||||
try:
|
try:
|
||||||
result = VirtualRaceResult.objects.get(id=raceresult)
|
result = VirtualRaceResult.objects.get(id=raceresult)
|
||||||
startsecond = result.startsecond
|
startsecond = result.startsecond
|
||||||
@@ -2337,17 +2325,17 @@ def workout_view(request,id=0,raceresult=0,sessionresult=0,nocourseraceresult=0)
|
|||||||
if rowdata != 0:
|
if rowdata != 0:
|
||||||
try:
|
try:
|
||||||
latitude = rowdata.df[' latitude']
|
latitude = rowdata.df[' latitude']
|
||||||
if not latitude.std():
|
if not latitude.std(): # pragma: no cover
|
||||||
hascoordinates = 0
|
hascoordinates = 0
|
||||||
except (KeyError,AttributeError):
|
except (KeyError,AttributeError):
|
||||||
hascoordinates = 0
|
hascoordinates = 0
|
||||||
|
|
||||||
else:
|
else: # pragma: no cover
|
||||||
hascoordinates = 0
|
hascoordinates = 0
|
||||||
|
|
||||||
|
|
||||||
if hascoordinates:
|
if hascoordinates:
|
||||||
if intervaldata:
|
if intervaldata: # pragma: no cover
|
||||||
rowdata.df['reltime'] = rowdata.df['TimeStamp (sec)']-rowdata.df.loc[0,'TimeStamp (sec)']
|
rowdata.df['reltime'] = rowdata.df['TimeStamp (sec)']-rowdata.df.loc[0,'TimeStamp (sec)']
|
||||||
mask = (rowdata.df['reltime']>startsecond) & (rowdata.df['reltime']<endsecond)
|
mask = (rowdata.df['reltime']>startsecond) & (rowdata.df['reltime']<endsecond)
|
||||||
latitudes = rowdata.df.loc[mask,' latitude']
|
latitudes = rowdata.df.loc[mask,' latitude']
|
||||||
@@ -2481,7 +2469,7 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
|
|||||||
|
|
||||||
messages.info(request,'A smoothening filter was applied to your pace data')
|
messages.info(request,'A smoothening filter was applied to your pace data')
|
||||||
|
|
||||||
if previousurl:
|
if previousurl: # pragma: no cover
|
||||||
url = previousurl
|
url = previousurl
|
||||||
else:
|
else:
|
||||||
url = reverse(r.defaultlandingpage,
|
url = reverse(r.defaultlandingpage,
|
||||||
@@ -3028,7 +3016,7 @@ def instroke_view(request,id=0):
|
|||||||
|
|
||||||
# generate instroke chart
|
# generate instroke chart
|
||||||
@permission_required('workout.change_workout',fn=get_workout_by_opaqueid,raise_exception=True)
|
@permission_required('workout.change_workout',fn=get_workout_by_opaqueid,raise_exception=True)
|
||||||
def instroke_chart(request,id=0,metric=''):
|
def instroke_chart(request,id=0,metric=''): # pragma: no cover
|
||||||
w = get_workoutuser(id, request)
|
w = get_workoutuser(id, request)
|
||||||
|
|
||||||
|
|
||||||
@@ -3085,7 +3073,7 @@ def workout_erase_column_view(request, id=0,column=''):
|
|||||||
w = get_workoutuser(id,request)
|
w = get_workoutuser(id,request)
|
||||||
|
|
||||||
protected = ['time','pace','velo','cumdist','ftime','fpace',]
|
protected = ['time','pace','velo','cumdist','ftime','fpace',]
|
||||||
if column in protected:
|
if column in protected: # pragma: no cover
|
||||||
messages.error(request,'You cannot erase this protected column')
|
messages.error(request,'You cannot erase this protected column')
|
||||||
url = reverse('workout_data_view',kwargs={
|
url = reverse('workout_data_view',kwargs={
|
||||||
'id':encoder.encode_hex(w.id)
|
'id':encoder.encode_hex(w.id)
|
||||||
@@ -3095,7 +3083,7 @@ def workout_erase_column_view(request, id=0,column=''):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
data = dataprep.getsmallrowdata_db([column],ids=[w.id])
|
data = dataprep.getsmallrowdata_db([column],ids=[w.id])
|
||||||
except:
|
except: # pragma: no cover
|
||||||
messages.error(request,'Invalid column')
|
messages.error(request,'Invalid column')
|
||||||
url = reverse('workout_data_view',kwargs={
|
url = reverse('workout_data_view',kwargs={
|
||||||
'id':encoder.encode_hex(w.id)
|
'id':encoder.encode_hex(w.id)
|
||||||
@@ -3105,7 +3093,7 @@ def workout_erase_column_view(request, id=0,column=''):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
cdata = data[column]
|
cdata = data[column]
|
||||||
except KeyError:
|
except KeyError: # pragma: no cover
|
||||||
url = reverse('workout_data_view',kwargs={
|
url = reverse('workout_data_view',kwargs={
|
||||||
'id':encoder.encode_hex(w.id)
|
'id':encoder.encode_hex(w.id)
|
||||||
})
|
})
|
||||||
@@ -3113,7 +3101,7 @@ def workout_erase_column_view(request, id=0,column=''):
|
|||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|
||||||
if not column:
|
if not column: # pragma: no cover
|
||||||
url = reverse('workout_data_view',kwargs={
|
url = reverse('workout_data_view',kwargs={
|
||||||
'id':encoder.encode_hex(w.id)
|
'id':encoder.encode_hex(w.id)
|
||||||
})
|
})
|
||||||
@@ -3129,7 +3117,7 @@ def workout_erase_column_view(request, id=0,column=''):
|
|||||||
try:
|
try:
|
||||||
defaultvalue = mms[column]['default']
|
defaultvalue = mms[column]['default']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
if not mms[column]['null']:
|
if not mms[column]['null']: # pragma: no cover
|
||||||
messages.error(request,'You cannot erase this protected column')
|
messages.error(request,'You cannot erase this protected column')
|
||||||
url = reverse('workout_data_view',kwargs={
|
url = reverse('workout_data_view',kwargs={
|
||||||
'id':encoder.encode_hex(w.id)
|
'id':encoder.encode_hex(w.id)
|
||||||
@@ -3140,7 +3128,7 @@ def workout_erase_column_view(request, id=0,column=''):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
columnl = dataprep.columndict[column]
|
columnl = dataprep.columndict[column]
|
||||||
except KeyError:
|
except KeyError: # pragma: no cover
|
||||||
messages.error(request,'You cannot erase this column')
|
messages.error(request,'You cannot erase this column')
|
||||||
url = reverse('workout_data_view',kwargs={
|
url = reverse('workout_data_view',kwargs={
|
||||||
'id':encoder.encode_hex(w.id)
|
'id':encoder.encode_hex(w.id)
|
||||||
@@ -3165,7 +3153,7 @@ def workout_erase_column_view(request, id=0,column=''):
|
|||||||
w.trimp = 0
|
w.trimp = 0
|
||||||
w.save()
|
w.save()
|
||||||
|
|
||||||
if column == 'power':
|
if column == 'power': # pragma: no cover
|
||||||
w.rscore = 0
|
w.rscore = 0
|
||||||
w.normp = 0
|
w.normp = 0
|
||||||
w.goldmedalstandard = -1
|
w.goldmedalstandard = -1
|
||||||
|
|||||||
Reference in New Issue
Block a user