diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 158c74a3..1fb142d0 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -7,7 +7,7 @@ from __future__ import unicode_literals # All the data preparation, data cleaning and data mangling should # be defined here from __future__ import unicode_literals, absolute_import -from rowers.models import Workout, StrokeData,Team +from rowers.models import Workout, Team import pytz @@ -55,7 +55,7 @@ from rowingdata import ( from rowingdata.csvparsers import HumonParser -from rowers.metrics import axes,calc_trimp,rowingmetrics +from rowers.metrics import axes,calc_trimp,rowingmetrics,dtypes from rowers.models import strokedatafields #allowedcolumns = [item[0] for item in rowingmetrics] @@ -117,35 +117,6 @@ columndict = { 'cumdist': 'cum_dist', } -# dtypes -dtypes = {'workoutid':int, - 'hr':int, - 'pace':float, - 'velo':float, - 'spm':float, - 'driveenergy':float, - 'power':float, - 'averageforce':float, - 'peakforce':float, - 'drivelength':float, - 'distance':float, - 'cumdist':float, - 'drivespeed':float, - 'catch':float, - 'slip':float, - 'finish':float, - 'wash':float, - 'peakforceangle':float, - 'totalangle':float, - 'effectiveangle':float, - 'rhythm':float, - 'efficiency':float, - 'distanceperstroke':float, - 'ftime':str, - 'fpace':str, - 'fergpace':str, - 'fnowindpace':str, -} from scipy.signal import savgol_filter @@ -605,41 +576,6 @@ def getstatsfields(): return fieldlist, fielddict -def getstatsfields_old(): - # Get field names and remove those that are not useful in stats - fields = StrokeData._meta.get_fields() - - fielddict = {field.name: field.verbose_name for field in fields} - - # fielddict.pop('workoutid') - fielddict.pop('ergpace') - fielddict.pop('hr_an') - fielddict.pop('hr_tr') - fielddict.pop('hr_at') - fielddict.pop('hr_ut2') - fielddict.pop('hr_ut1') - fielddict.pop('time') - fielddict.pop('distance') - fielddict.pop('nowindpace') - fielddict.pop('fnowindpace') - fielddict.pop('fergpace') - fielddict.pop('equivergpower') -# fielddict.pop('workoutstate') - fielddict.pop('fpace') - fielddict.pop('pace') - fielddict.pop('id') - fielddict.pop('ftime') - fielddict.pop('x_right') - fielddict.pop('hr_max') - fielddict.pop('hr_bottom') - fielddict.pop('cumdist') - - try: - fieldlist = [field for field, value in fielddict.iteritems()] - except AttributeError: - fieldlist = [field for field, value in fielddict.items()] - - return fieldlist, fielddict # A string representation for time deltas diff --git a/rowers/dataprepnodjango.py b/rowers/dataprepnodjango.py index 11a3a45d..c7e2871c 100644 --- a/rowers/dataprepnodjango.py +++ b/rowers/dataprepnodjango.py @@ -28,35 +28,6 @@ from rowsandall_app.settings_dev import use_sqlite from rowers.utils import lbstoN -# dtypes -dtypes = {'workoutid':int, - 'hr':int, - 'pace':float, - 'velo':float, - 'spm':float, - 'driveenergy':float, - 'power':float, - 'averageforce':float, - 'peakforce':float, - 'drivelength':float, - 'distance':float, - 'cumdist':float, - 'drivespeed':float, - 'catch':float, - 'slip':float, - 'finish':float, - 'wash':float, - 'peakforceangle':float, - 'totalangle':float, - 'effectiveangle':float, - 'rhythm':float, - 'efficiency':float, - 'distanceperstroke':float, - 'ftime':str, - 'fpace':str, - 'fergpace':str, - 'fnowindpace':str, -} try: user = DATABASES['default']['USER'] @@ -176,6 +147,7 @@ def rdata(file,rower=rrower()): return res from rowers.utils import totaltime_sec_to_string +from rowers.metrics import dtypes # Creates C2 stroke data diff --git a/rowers/metrics.py b/rowers/metrics.py index dd1852b2..65886fca 100644 --- a/rowers/metrics.py +++ b/rowers/metrics.py @@ -290,8 +290,14 @@ rowingmetrics = ( ) - - +dtypes = {} + +for name,d in rowingmetrics: + if d['numtype'] == 'float': + dtypes[name] = float + elif d['numtype'] == 'int': + dtypes[name] = int + axesnew = [ (name,d['verbose_name'],d['ax_min'],d['ax_max'],d['type']) for name,d in rowingmetrics ] diff --git a/rowers/models.py b/rowers/models.py index dbe4062a..1d720e5f 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -3073,9 +3073,9 @@ attrs.update(strokedatafields) # when the StrokeData are expanded. # No Django Instances of this model are managed. Strokedata table is # accesssed directly with SQL commands -StrokeData = type(str('StrokeData'), (models.Model,), - attrs - ) +#StrokeData = type(str('StrokeData'), (models.Model,), +# attrs +# ) # Storing data for the OTW CP chart class cpdata(models.Model): diff --git a/rowers/serializers.py b/rowers/serializers.py index 7a99f2a1..d5ea3e84 100644 --- a/rowers/serializers.py +++ b/rowers/serializers.py @@ -7,7 +7,7 @@ from __future__ import unicode_literals # Also optionally define POST, PATCH methods (create, update) from rest_framework import serializers -from rowers.models import Workout,Rower,StrokeData,FavoriteChart +from rowers.models import Workout,Rower,FavoriteChart import datetime diff --git a/rowers/urls.py b/rowers/urls.py index b6bcc91b..cabc1753 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -7,7 +7,7 @@ from django.conf.urls import url, include from django.urls import path, re_path from django.contrib.auth.models import User from django.contrib.auth.decorators import login_required, permission_required -from rowers.models import Workout,Rower,StrokeData,FavoriteChart +from rowers.models import Workout,Rower,FavoriteChart from rest_framework import routers, serializers, viewsets,permissions from rest_framework.urlpatterns import format_suffix_patterns diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 85df6cb6..15fd34ef 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -99,7 +99,7 @@ from rowers.models import ( ) from rowers.models import ( RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm, - RowerPowerZonesForm,AccountRowerForm,UserForm,StrokeData, + RowerPowerZonesForm,AccountRowerForm,UserForm, Team,TeamForm,TeamInviteForm,TeamInvite,TeamRequest, WorkoutComment,WorkoutCommentForm,RowerExportForm, CalcAgePerformance,