Merge branch 'release/v16.6.11'
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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/',
|
||||
|
||||
Reference in New Issue
Block a user