Private
Public Access
1
0

Merge branch 'release/v16.6.11'

This commit is contained in:
Sander Roosendaal
2021-11-04 19:47:34 +01:00
6 changed files with 66 additions and 12 deletions

View File

@@ -108,7 +108,7 @@ class InstantPlanSelectForm(forms.Form):
datechoice = forms.ChoiceField(choices=datechoices,initial='enddate',label='Plan by target, start or end date',
widget=forms.RadioSelect)
notes = forms.CharField(required=False,
max_length=200,label='Course Notes',
max_length=200,label='Plan Notes',
widget=forms.Textarea)
def __init__(self, *args, **kwargs):
@@ -184,7 +184,7 @@ class TrainingPlanBillingForm(forms.Form):
paymenttype = forms.CharField(max_length=255,required=True)
enddate = forms.DateField(widget=forms.HiddenInput)
name = forms.CharField(max_length=255,required=False)
notes = forms.CharField(max_length=255,required=True)
notes = forms.CharField(max_length=255,required=False)
status = forms.CharField(max_length=255,required=True)
tac= forms.BooleanField(required=True,initial=False)

View File

@@ -348,18 +348,25 @@ def handle_strava_sync(stravatoken,workoutid,filename,name,activity_type,descrip
try:
act = client.update_activity(res.id,activity_type=activity_type,
description=description,device_name='Rowsandall.com')
dologging('stravalog.log','Updating activity {id} to {type}'.format(
id=workoutid,
type=activity_type
))
except TypeError: # pragma: no cover
act = client.update_activity(res.id,activity_type=activity_type,
description=description)
dologging('stravalog.log','Updating activity {id} to {type}'.format(
id=workoutid,
type=activity_type
))
except: # pragma: no cover
e = sys.exc_info()[0]
t = time.localtime()
timestamp = bytes('{t}'.format(t=time.strftime('%b-%d-%Y_%H%M', t)),'utf-8')
with open('stravalog.log','ab') as f:
f.write(b'\n')
f.write(timestamp)
f.write(str(e))
dologging('stravalog.log','Update activity failed with error {e} for {id} to {type}'.format(
id=workoutid,
type=activity_type,
e=e
))
try:
os.remove(filename)
except: # pragma: no cover

View File

@@ -269,6 +269,24 @@ class ChallengesTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
def test_coursemapcompare_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('course_mapcompare_view',kwargs={'id':self.ThyroBaantje.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
def test_coursecompare_view(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
url = reverse('course_compare_view',kwargs={'id':self.ThyroBaantje.id})
response = self.c.get(url)
self.assertEqual(response.status_code,200)
def test_course_create_edit_delete(self):
login = self.c.login(username=self.u.username, password=self.password)
self.assertTrue(login)
@@ -553,6 +571,25 @@ class ChallengesTest(TestCase):
response = self.c.post(url)
self.assertEqual(response.status_code,200)
@patch('rowers.views.racesviews.myqueue')
def test_course_view(self, mocked_myqueue):
login = self.c.login(username=self.u, password=self.password)
self.assertTrue(login)
url = reverse('workout_summary_edit_view',kwargs={'id':encoder.encode_hex(self.wthyro.id)})
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
formdata = {
'course': self.ThyroBaantje.id
}
response = self.c.post(url, formdata, follow=True)
self.assertEqual(response.status_code, 200)
@patch('rowers.views.racesviews.myqueue')
def test_virtualevent_view(self,mocked_myqueue):
login = self.c.login(username=self.u.username, password=self.password)
@@ -764,6 +801,11 @@ class ChallengesTest(TestCase):
response = self.c.get(url)
self.assertEqual(response.status_code,200)
# workout_mapcompare
url = reverse('workout_course_view', kwargs={'id':encoder.encode_hex(self.wthyro.id)})
response = self.c.get(url)
self.assertEqual(response.status_code, 200)
# post to compare
form_data = {
'workouts':[self.wthyro2.id],

View File

@@ -249,6 +249,8 @@ def purchase_checkouts_view(request):
messages.error(request,"There was an error in the payment form")
url = reverse("purchase_checkouts_view")
return HttpResponseRedirect(url)
else:
messages.error(request,"There was an error in the payment form")
url = reverse('rower_select_instantplan') # pragma: no cover
if 'plan' in request.POST: # pragma: no cover

View File

@@ -2670,6 +2670,8 @@ def rower_view_instantplan(request,id='',userid=0):
create_sessions_from_json(plansteps,r,startdate,r.user)
messages.info(request,'Your Sessions have been added')
url = reverse('plannedsessions_view')
timeperiod = startdate.strftime('%Y-%m-%d')+'/'+enddate.strftime('%Y-%m-%d')
url = url+'?when='+timeperiod
@@ -2745,7 +2747,7 @@ def add_instantplan_view(request):
if not request.user.is_staff: # pragma: no cover
raise PermissionDenied("Not Allowed")
r = getrequestrower(request)
r = request.user.rower
if request.method == 'POST': # pragma: no cover
form = InstantPlanForm(request.POST,request.FILES)

View File

@@ -308,7 +308,7 @@ def workout_video_create_view(request,id=0):
metricsgroups = metricsform.cleaned_data['groups']
try:
video_id = get_video_id(url)
except ValueError:
except ValueError: # pragma: no cover
messages.error(request,"Not a valid YouTube video link")
video_id = None
if 'save_button' in request.POST:
@@ -2646,7 +2646,7 @@ def workout_view(request,id=0,raceresult=0,sessionresult=0,nocourseraceresult=0)
longitudes = rowdata.df[' longitude']
mapscript,mapdiv = leaflet_chart(latitudes,longitudes,row.name,raceresult=raceresult)
records = VirtualRaceResult.objects.filter(workoutid=row.id,userid=row.user.user.id,coursecompleted=True)
if records.count()>0:
if records.count()>0: # pragma: no cover
courses = list(set([record.course for record in records]))
@@ -4751,7 +4751,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
pass
records = VirtualRaceResult.objects.filter(workoutid=row.id,userid=row.user.user.id,coursecompleted=True)
if records.count()>0:
if records.count()>0: # pragma: no cover
courses = list(set([record.course for record in records]))
@@ -6430,6 +6430,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
):
row = get_workout_by_opaqueid(request,id)
r = getrower(request.user)
breadcrumbs = [
{
'url':'/rowers/list-workouts/',