diff --git a/rowers/dataprep.py b/rowers/dataprep.py index d585765f..c2863531 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -123,9 +123,11 @@ from scipy.signal import savgol_filter import datetime -def get_video_data(w,groups=['basic']): + +def get_video_data(w,groups=['basic'],mode='water'): + modes = [mode,'both','basic'] columns = ['time','velo','spm'] - columns += [name for name,d in rowingmetrics if d['group'] in groups] + columns += [name for name,d in rowingmetrics if d['group'] in groups and d['mode'] in modes] columns = list(set(columns)) df = getsmallrowdata_db(columns,ids=[w.id], workstrokesonly=False,doclean=False,compute=False) diff --git a/rowers/forms.py b/rowers/forms.py index ce3129e3..46de978c 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -53,25 +53,38 @@ class FlexibleDecimalField(forms.DecimalField): # Video Analysis creation form class VideoAnalysisCreateForm(forms.Form): - name = forms.CharField(max_length=255,label='Analysis Name') + name = forms.CharField(max_length=255,label='Analysis Name',required=False) url = forms.CharField(max_length=255,required=True,label='YouTube Video URL') delay = forms.IntegerField(initial=0,label='Delay (seconds)') -metricsdescriptions = {} -for m in metricsgroups: - metricsdescriptions[m] = m+' (' - for name,d in rowingmetrics: - if d['group']==m: - metricsdescriptions[m]+=d['verbose_name']+', ' - metricsdescriptions[m]=metricsdescriptions[m][0:-2]+')' +def get_metricschoices(mode='water'): + modes = [mode,'both','basic'] + metricsdescriptions = {} + for m in metricsgroups: + metricsdescriptions[m] = m+' (' + for name,d in rowingmetrics: + if d['group']==m and d['mode'] in modes: + metricsdescriptions[m]+=d['verbose_name']+', ' + metricsdescriptions[m]=metricsdescriptions[m][0:-2]+')' -metricsgroupschoices = ((m,metricsdescriptions[m]) for m in metricsgroups) + metricsgroupschoices = ((m,metricsdescriptions[m]) for m in metricsgroups) + + return metricsgroupschoices class VideoAnalysisMetricsForm(forms.Form): groups = forms.MultipleChoiceField(label='Metrics Groups', - choices=metricsgroupschoices, + choices=get_metricschoices(mode='water'), widget=forms.CheckboxSelectMultiple,) + class Meta: + mode = 'water' + + def __init__(self, *args, **kwargs): + mode = kwargs.pop('mode','water') + super(VideoAnalysisMetricsForm, self).__init__(*args, **kwargs) + self.fields['groups'].choices = get_metricschoices(mode=mode) + + # BillingForm form class BillingForm(forms.Form): amount = FlexibleDecimalField(required=True,decimal_places=2, diff --git a/rowers/metrics.py b/rowers/metrics.py index ef1c0c6a..922df018 100644 --- a/rowers/metrics.py +++ b/rowers/metrics.py @@ -172,7 +172,7 @@ rowingmetrics = ( ('distance',{ 'numtype':'float', 'null':True, - 'verbose_name': 'Distance (m)', + 'verbose_name': 'Interval Distance (m)', 'ax_min': 0, 'ax_max': 1e5, 'mode':'both', diff --git a/rowers/templates/embedded_video.html b/rowers/templates/embedded_video.html index 4a28416d..d02a9de2 100644 --- a/rowers/templates/embedded_video.html +++ b/rowers/templates/embedded_video.html @@ -13,6 +13,15 @@ {% leaflet_css %} + {% endblock %} {% block main %} @@ -158,7 +167,7 @@ {% endfor %} // gauge.set(catch_now); var newLatLng = new L.LatLng(lat, lon); - console.log(newLatLng); + // console.log(newLatLng); marker.setLatLng(newLatLng); } if(videotime !== oldTime) { @@ -275,8 +284,10 @@