Private
Public Access
1
0

added impeller to Workout model and saving of this in dataprep

need more work and testing
This commit is contained in:
Sander Roosendaal
2020-01-07 14:57:05 +01:00
parent 92cc9d5811
commit 07e9a5abf1
2 changed files with 21 additions and 8 deletions

View File

@@ -1081,7 +1081,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
makeprivate=False, makeprivate=False,
oarlength=2.89, inboard=0.88, oarlength=2.89, inboard=0.88,
forceunit='lbs', forceunit='lbs',
consistencychecks=False): consistencychecks=False,
impeller=False):
message = None message = None
powerperc = 100 * np.array([r.pw_ut2, powerperc = 100 * np.array([r.pw_ut2,
@@ -1289,7 +1290,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
startdatetime=workoutstartdatetime, startdatetime=workoutstartdatetime,
inboard=inboard, oarlength=oarlength, inboard=inboard, oarlength=oarlength,
timezone=timezone_str, timezone=timezone_str,
privacy=privacy) privacy=privacy,
impeller=impeller)
try: try:
w.save() w.save()
except ValidationError: except ValidationError:
@@ -1421,24 +1423,32 @@ def handle_nonpainsled(f2, fileformat, summary=''):
oarlength = 2.89 oarlength = 2.89
inboard = 0.88 inboard = 0.88
hasrecognized = False hasrecognized = False
impeller = False
row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary) row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary)
# Handle c2log # Handle c2log
if (fileformat == 'c2log' or fileformat == 'rowprolog'): if (fileformat == 'c2log' or fileformat == 'rowprolog'):
return (0,'',0,0,'') return (0,'',0,0,'',impeller)
if not hasrecognized: if not hasrecognized:
return (0,'',0,0,'') return (0,'',0,0,'',impeller)
f_to_be_deleted = f2 f_to_be_deleted = f2
# should delete file # should delete file
f2 = f2[:-4] + 'o.csv' f2 = f2[:-4] + 'o.csv'
try: try:
row2 = rrdata(df = row.df) row2 = rrdata(df = row.df)
if fileformat == 'speedcoach2':
# impeller consistency
impellerdata, consistent, ratio = row.impellerconsistent(threshold=0.3)
if impellerdata and consistent:
impeller = True
if impellerdata and not consistent:
row2.use_gps()
row2.write_csv(f2, gzip=True) row2.write_csv(f2, gzip=True)
except: except:
return (0,'',0,0,'') return (0,'',0,0,'',impeller)
# os.remove(f2) # os.remove(f2)
try: try:
@@ -1449,7 +1459,7 @@ def handle_nonpainsled(f2, fileformat, summary=''):
except: except:
pass pass
return (f2, summary, oarlength, inboard, fileformat) return (f2, summary, oarlength, inboard, fileformat, impeller)
# Create new workout from file and store it in the database # Create new workout from file and store it in the database
# This routine should be used everywhere in views.py and mailprocessing.py # This routine should be used everywhere in views.py and mailprocessing.py
@@ -1476,6 +1486,7 @@ def new_workout_from_file(r, f2,
inboard = 0.88 inboard = 0.88
if len(fileformat) == 3 and fileformat[0] == 'zip': if len(fileformat) == 3 and fileformat[0] == 'zip':
f_to_be_deleted = f2 f_to_be_deleted = f2
impeller = False
workoutsbox = Mailbox.objects.filter(name='workouts')[0] workoutsbox = Mailbox.objects.filter(name='workouts')[0]
msg = Message(mailbox=workoutsbox, msg = Message(mailbox=workoutsbox,
from_header=r.user.email, from_header=r.user.email,
@@ -1543,7 +1554,7 @@ def new_workout_from_file(r, f2,
# handle non-Painsled by converting it to painsled compatible CSV # handle non-Painsled by converting it to painsled compatible CSV
if (fileformat != 'csv'): if (fileformat != 'csv'):
f2, summary, oarlength, inboard, fileformat = handle_nonpainsled( f2, summary, oarlength, inboard, fileformat, impeller = handle_nonpainsled(
f2, f2,
fileformat, fileformat,
summary=summary summary=summary
@@ -1571,7 +1582,8 @@ def new_workout_from_file(r, f2,
summary=summary, summary=summary,
inboard=inboard, oarlength=oarlength, inboard=inboard, oarlength=oarlength,
title=title, title=title,
forceunit='N' forceunit='N',
impeller=impeller,
) )
return (id, message, f2) return (id, message, f2)

View File

@@ -2734,6 +2734,7 @@ class Workout(models.Model):
choices=privacychoices) choices=privacychoices)
rankingpiece = models.BooleanField(default=False,verbose_name='Ranking Piece') rankingpiece = models.BooleanField(default=False,verbose_name='Ranking Piece')
duplicate = models.BooleanField(default=False,verbose_name='Duplicate Workout') duplicate = models.BooleanField(default=False,verbose_name='Duplicate Workout')
impeller = models.BooleanField(default=False,verbose_name='Impeller')
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
user = self.user user = self.user