removing wind, setpower, stream
This commit is contained in:
@@ -778,59 +778,7 @@ class PredictedPieceFormNoDistance(forms.Form):
|
|||||||
value = forms.FloatField(initial=10, label='Free ranking piece')
|
value = forms.FloatField(initial=10, label='Free ranking piece')
|
||||||
|
|
||||||
|
|
||||||
# On the Geeky side, to update stream information for river dwellers
|
|
||||||
class UpdateStreamForm(forms.Form):
|
|
||||||
unitchoices = (
|
|
||||||
('m', 'm/s'),
|
|
||||||
('f', 'foot/s'),
|
|
||||||
('k', 'knots'),
|
|
||||||
('p', 'pace difference (sec/500m)'),
|
|
||||||
)
|
|
||||||
dist1 = forms.FloatField(initial=0, label='Distance 1')
|
|
||||||
dist2 = forms.FloatField(initial=1000, label='Distance 2')
|
|
||||||
stream1 = forms.FloatField(initial=0, label='Stream velocity 1')
|
|
||||||
stream2 = forms.FloatField(initial=0, label='Stream velocity 2')
|
|
||||||
streamunit = forms.ChoiceField(required=True,
|
|
||||||
choices=unitchoices,
|
|
||||||
initial='m',
|
|
||||||
label='Unit')
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
fields = ['dist1', 'dist2', 'stream1', 'stream2', 'streamunit']
|
|
||||||
|
|
||||||
# add wind information to your workout
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateWindForm(forms.Form):
|
|
||||||
unitchoices = (
|
|
||||||
('m', 'm/s'),
|
|
||||||
('k', 'knots'),
|
|
||||||
('b', 'beaufort'),
|
|
||||||
('kmh', 'km/h'),
|
|
||||||
('mph', 'miles/hour'),
|
|
||||||
)
|
|
||||||
dist1 = forms.FloatField(initial=0, label='Distance 1')
|
|
||||||
dist2 = forms.FloatField(initial=1000, label='Distance 2')
|
|
||||||
vwind1 = forms.FloatField(initial=0, required=False, label='Wind Speed 1')
|
|
||||||
vwind2 = forms.FloatField(initial=0, required=False, label='Wind Speed 2')
|
|
||||||
windunit = forms.ChoiceField(required=True,
|
|
||||||
choices=unitchoices,
|
|
||||||
initial='m',
|
|
||||||
label='Unit')
|
|
||||||
winddirection1 = forms.IntegerField(initial=0, required=False,
|
|
||||||
label='Wind Direction 1')
|
|
||||||
winddirection2 = forms.IntegerField(initial=0, required=False,
|
|
||||||
label='Wind Direction 2')
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
fields = ['dist1', 'dist2',
|
|
||||||
'vwind1', 'vwind2',
|
|
||||||
'windunit',
|
|
||||||
'winddirection1', 'winddirection2']
|
|
||||||
|
|
||||||
# Form to select a data range to show workouts from a certain time period
|
# Form to select a data range to show workouts from a certain time period
|
||||||
|
|
||||||
|
|
||||||
class DateRangeForm(forms.Form):
|
class DateRangeForm(forms.Form):
|
||||||
startdate = forms.DateField(
|
startdate = forms.DateField(
|
||||||
initial=timezone.now()-datetime.timedelta(days=365),
|
initial=timezone.now()-datetime.timedelta(days=365),
|
||||||
|
|||||||
@@ -371,10 +371,6 @@ 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_downloadwind_view',kwargs={
|
|
||||||
'id': encoder.encode_hex(self.wwater.id),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
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)
|
||||||
@@ -459,122 +455,9 @@ class WorkoutViewTest(TestCase):
|
|||||||
status_code=302,target_status_code=200)
|
status_code=302,target_status_code=200)
|
||||||
|
|
||||||
|
|
||||||
@patch('rowers.dataprep.create_engine')
|
|
||||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
|
||||||
def test_windform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
|
||||||
self.assertTrue(login)
|
|
||||||
|
|
||||||
|
|
||||||
url = reverse('workout_wind_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
|
||||||
|
|
||||||
response = self.c.get(url)
|
|
||||||
self.assertEqual(response.status_code,200)
|
|
||||||
|
|
||||||
form_data = {
|
|
||||||
'dist1':1000,
|
|
||||||
'dist2':2000,
|
|
||||||
'vwind1':2.0,
|
|
||||||
'vwind2':1.4,
|
|
||||||
'windunit':'m',
|
|
||||||
'winddirection1': 0,
|
|
||||||
'winddirection2': 90,
|
|
||||||
}
|
|
||||||
|
|
||||||
form = UpdateWindForm(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.getsmallrowdata_db')
|
|
||||||
def test_streamform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
|
||||||
self.assertTrue(login)
|
|
||||||
|
|
||||||
|
|
||||||
url = reverse('workout_stream_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
|
||||||
|
|
||||||
response = self.c.get(url)
|
|
||||||
self.assertEqual(response.status_code,200)
|
|
||||||
|
|
||||||
form_data = {
|
|
||||||
'dist1':1000,
|
|
||||||
'dist2':2000,
|
|
||||||
'stream1':2.0,
|
|
||||||
'stream2':1.4,
|
|
||||||
'streamunit':'m',
|
|
||||||
}
|
|
||||||
|
|
||||||
form = UpdateStreamForm(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.getsmallrowdata_db')
|
|
||||||
@patch('rowers.middleware.myqueue')
|
|
||||||
def test_setpowerform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db,
|
|
||||||
mocked_myqueue):
|
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
|
||||||
self.assertTrue(login)
|
|
||||||
|
|
||||||
url = reverse('instroke_view',kwargs={'id':encoder.encode_hex(self.winstroke.id)})
|
|
||||||
|
|
||||||
response = self.c.get(url)
|
|
||||||
self.assertEqual(response.status_code,200)
|
|
||||||
|
|
||||||
rowdata = rowingdata.rowingdata(csvfile=self.winstroke.csvfilename)
|
|
||||||
instrokemetrics = rowdata.get_instroke_columns()
|
|
||||||
|
|
||||||
self.assertTrue(len(instrokemetrics)>0)
|
|
||||||
|
|
||||||
url = reverse('instroke_chart',
|
|
||||||
kwargs={
|
|
||||||
'id':encoder.encode_hex(self.winstroke.id),
|
|
||||||
'metric':instrokemetrics[0],
|
|
||||||
})
|
|
||||||
url2 = reverse(self.r.defaultlandingpage,kwargs={'id':encoder.encode_hex(self.winstroke.id)})
|
|
||||||
response = self.c.get(url)
|
|
||||||
self.assertRedirects(response,
|
|
||||||
expected_url=url2,
|
|
||||||
status_code=302,target_status_code=200)
|
|
||||||
|
|
||||||
@patch('rowers.dataprep.create_engine')
|
|
||||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
|
||||||
def test_setpowerform(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
|
||||||
self.assertTrue(login)
|
|
||||||
|
|
||||||
|
|
||||||
url = reverse('workout_otwsetpower_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
|
||||||
|
|
||||||
response = self.c.get(url)
|
|
||||||
self.assertEqual(response.status_code,200)
|
|
||||||
|
|
||||||
form_data = {
|
|
||||||
'quick_calc':True,
|
|
||||||
'boattype': '1x',
|
|
||||||
'weightvalue': 75.0,
|
|
||||||
'boatbrand':'maas',
|
|
||||||
}
|
|
||||||
|
|
||||||
form = AdvancedWorkoutForm(form_data)
|
|
||||||
self.assertTrue(form.is_valid())
|
|
||||||
|
|
||||||
response = self.c.post(url,form_data,follow=True)
|
|
||||||
self.assertEqual(response.status_code,200)
|
|
||||||
|
|
||||||
expected_url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(self.wwater.id)})
|
|
||||||
|
|
||||||
self.assertRedirects(response,
|
|
||||||
expected_url=expected_url,
|
|
||||||
status_code=302,target_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_commentview(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
def test_commentview(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
||||||
|
|||||||
@@ -154,7 +154,6 @@ class URLTests(TestCase):
|
|||||||
'/rowers/workout/'+encoded1+'/get-thumbnails/',
|
'/rowers/workout/'+encoded1+'/get-thumbnails/',
|
||||||
'/rowers/workout/'+encoded1+'/image/',
|
'/rowers/workout/'+encoded1+'/image/',
|
||||||
'/rowers/workout/'+encoded1+'/instroke/',
|
'/rowers/workout/'+encoded1+'/instroke/',
|
||||||
'/rowers/workout/'+encoded1+'/interactiveotwplot/',
|
|
||||||
'/rowers/workout/'+encoded1+'/map/',
|
'/rowers/workout/'+encoded1+'/map/',
|
||||||
'/rowers/workout/'+encoded1+'/recalcsummary/',
|
'/rowers/workout/'+encoded1+'/recalcsummary/',
|
||||||
'/rowers/workout/'+encoded1+'/restore/',
|
'/rowers/workout/'+encoded1+'/restore/',
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
@@ -136,9 +136,9 @@ from rowers.forms import (
|
|||||||
FitnessMetricForm, PredictedPieceFormNoDistance,
|
FitnessMetricForm, PredictedPieceFormNoDistance,
|
||||||
EmailForm, RegistrationForm, RegistrationFormTermsOfService,
|
EmailForm, RegistrationForm, RegistrationFormTermsOfService,
|
||||||
RegistrationFormUniqueEmail, RegistrationFormSex,
|
RegistrationFormUniqueEmail, RegistrationFormSex,
|
||||||
CNsummaryForm, UpdateWindForm,
|
CNsummaryForm,
|
||||||
StandardsForm,
|
StandardsForm,
|
||||||
UpdateStreamForm, WorkoutMultipleCompareForm, ChartParamChoiceForm,
|
WorkoutMultipleCompareForm, ChartParamChoiceForm,
|
||||||
FusionMetricChoiceForm, BoxPlotChoiceForm, MultiFlexChoiceForm,
|
FusionMetricChoiceForm, BoxPlotChoiceForm, MultiFlexChoiceForm,
|
||||||
TrendFlexModalForm, WorkoutSplitForm, WorkoutJoinParamForm,
|
TrendFlexModalForm, WorkoutSplitForm, WorkoutJoinParamForm,
|
||||||
AnalysisOptionsForm, AnalysisChoiceForm,
|
AnalysisOptionsForm, AnalysisChoiceForm,
|
||||||
|
|||||||
Reference in New Issue
Block a user