From 39fcdc4fe55fdb1d49f3e03f438bade6eb324eb4 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 28 Oct 2018 16:45:58 +0100 Subject: [PATCH] bug fix --- rowers/dataprep.py | 7 +++++- rowers/dataprepnodjango.py | 20 +++++++++-------- rowers/tests.py | 1 + rowers/uploads.py | 41 +++++++++++++++++++++++++++++++++ rowers/views.py | 46 +++++++++++++++++++++----------------- 5 files changed, 85 insertions(+), 30 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 06005873..2422a9b9 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -1179,6 +1179,7 @@ def handle_nonpainsled(f2, fileformat, summary=''): def new_workout_from_file(r, f2, workouttype='rower', + workoutsource=None, title='Workout', boattype='1x', makeprivate=False, @@ -1273,13 +1274,16 @@ def new_workout_from_file(r, f2, dosummary = (fileformat != 'fit' and 'speedcoach2' not in fileformat) dosummary = dosummary or summary == '' + if workoutsource is None: + workoutsource = fileformat + id, message = save_workout_database( f2, r, workouttype=workouttype, boattype=boattype, makeprivate=makeprivate, dosummary=dosummary, - workoutsource=fileformat, + workoutsource=workoutsource, summary=summary, inboard=inboard, oarlength=oarlength, title=title @@ -1390,6 +1394,7 @@ def split_workout(r, parent, splitsecond, splitmode): def new_workout_from_df(r, df, title='New Workout', + workoutsource='unknown', boattype='1x', workouttype='rower', parent=None, diff --git a/rowers/dataprepnodjango.py b/rowers/dataprepnodjango.py index 8ac8692f..b164fbb1 100644 --- a/rowers/dataprepnodjango.py +++ b/rowers/dataprepnodjango.py @@ -298,6 +298,7 @@ def add_c2_stroke_data_db(strokedata,workoutid,starttimeunix,csvfilename, def save_workout_database(f2,r,dosmooth=True,workouttype='rower', dosummary=True,title='Workout', notes='',totaldist=0,totaltime=0, + workoutsource='unknown', summary='', makeprivate=False, oarlength=2.89,inboard=0.88): @@ -430,15 +431,16 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', w = Workout(user=r,name=title,date=workoutdate, - workouttype=workouttype, - duration=duration,distance=totaldist, - weightcategory=r.weightcategory, - starttime=workoutstarttime, - csvfilename=f2,notes=notes,summary=summary, - maxhr=maxhr,averagehr=averagehr, - startdatetime=workoutstartdatetime, - inboard=inboard,oarlength=oarlength, - privacy=privacy) + workouttype=workouttype, + workoutsource=workoutsource, + duration=duration,distance=totaldist, + weightcategory=r.weightcategory, + starttime=workoutstarttime, + csvfilename=f2,notes=notes,summary=summary, + maxhr=maxhr,averagehr=averagehr, + startdatetime=workoutstartdatetime, + inboard=inboard,oarlength=oarlength, + privacy=privacy) w.save() diff --git a/rowers/tests.py b/rowers/tests.py index dde45976..2cee316b 100644 --- a/rowers/tests.py +++ b/rowers/tests.py @@ -1046,6 +1046,7 @@ boattype: 4x a = MessageAttachment(message=m,document=a2[6:]) a.save() + def tearDown(self): for filename in os.listdir('media/mailbox_attachments'): path = os.path.join('media/mailbox_attachments/',filename) diff --git a/rowers/uploads.py b/rowers/uploads.py index cce0324a..6aeca4d7 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -49,6 +49,18 @@ def cleanbody(body): return body + +sources = [s for s,name in workoutsources] + +def matchsource(line): + results = [] + for s in sources: + testert = '^source.*(%s)' % s + tester = re.compile(testert) + + if tester.match(line.lower()): + return group(1) + # currently only matches one chart def matchchart(line): results = [] @@ -147,6 +159,14 @@ def getprivateoptions_body2(uploadoptions,body): return uploadoptions +def getworkoutsources(uploadoptions,body): + for line in body.splitlines(): + workoutsource = matchsource(line) + if workoutsource: + uploadoptions['workoutsource'] = workoutsource + + return uploadoptions + def getplotoptions_body2(uploadoptions,body): for line in body.splitlines(): chart = matchchart(line) @@ -241,6 +261,17 @@ def getboattype(uploadoptions,value,key): return uploadoptions +def getsource(uploadoptions,value,key): + workoutsource = 'unknown' + for type,verb in workoutsources: + if value == type: + workoutsource = type + if value == verb: + workoutsource = type + + uploadoptions[key] = workoutsource + + return uploadoptions def getboolean(uploadoptions,value,key): b = True @@ -273,6 +304,8 @@ def upload_options(body): uploadoptions = gettype(uploadoptions,value,'workouttype') if 'boat' in lowkey: uploadoptions = getboattype(uploadoptions,value,'boattype') + if 'source' in lowkey: + uploadoptions = getsource(uploadoptions,value,'workoutsource') except AttributeError: #pass raise yaml.YAMLError @@ -283,6 +316,7 @@ def upload_options(body): uploadoptions = getprivateoptions_body2(uploadoptions,body) typeoptions = gettypeoptions_body2(uploadoptions,body) uploadoptions = getstravaid(uploadoptions,body) + uploadoptions = getworkoutsources(uploadoptions,body) except IOError: pm = exc.problem_mark strpm = str(pm) @@ -377,6 +411,13 @@ def set_workouttype(w,options): return 1 +def set_workoutsource(w,options): + try: + w.workoutsource = options['workoutsource'] + w.save() + except KeyError: + pass + def make_private(w,options): if 'makeprivate' in options and options['makeprivate']: w.privacy = 'hidden' diff --git a/rowers/views.py b/rowers/views.py index 823e5e9d..2407ebe1 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -3019,7 +3019,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False): }, { 'url':get_workout_default_page(request,id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_forcecurve_view,kwargs={'id':id}), @@ -3089,7 +3089,7 @@ def workout_histo_view(request,id=0): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_histo_view,kwargs={'id':id}), @@ -6944,7 +6944,7 @@ def workout_fusion_list(request,id=0,message='',successmessage='', }, { 'url':get_workout_default_page(request,row.id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_fusion_list,kwargs={'id':id}), @@ -7167,7 +7167,7 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""): }, { 'url':get_workout_default_page(request,id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_crewnerd_summary_view,kwargs={'id':id}), @@ -7377,7 +7377,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""): }, { 'url':get_workout_default_page(request,id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_wind_view,kwargs={'id':id}), @@ -7565,7 +7565,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""): }, { 'url':get_workout_default_page(request,id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_stream_view,kwargs={'id':id}), @@ -7697,7 +7697,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_otwsetpower_view,kwargs={'id':id}), @@ -7737,7 +7737,7 @@ def instroke_view(request,id=0): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(instroke_view,kwargs={'id':id}), @@ -8215,7 +8215,7 @@ def workout_data_view(request, id=0): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_data_view,kwargs={'id':id}), @@ -8311,7 +8311,7 @@ def workout_stats_view(request,id=0,message="",successmessage=""): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_stats_view,kwargs={'id':id}), @@ -8846,7 +8846,7 @@ def workout_workflow_view(request,id): }, { 'url':get_workout_default_page(request,id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_workflow_view,kwargs={'id':id}), @@ -9134,7 +9134,7 @@ def workout_flexchart3_view(request,*args,**kwargs): }, { 'url':get_workout_default_page(request,id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_flexchart3_view,kwargs=kwargs), @@ -9228,7 +9228,7 @@ def workout_otwpowerplot_view(request,id=0,message="",successmessage=""): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_otwpowerplot_view,kwargs={'id':id}), @@ -9455,7 +9455,7 @@ def workout_comment_view(request,id=0): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_comment_view,kwargs={'id':id}), @@ -9875,7 +9875,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""): }, { 'url':get_workout_default_page(request,id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_edit_view,kwargs={'id':id}), @@ -9917,7 +9917,7 @@ def workout_map_view(request,id=0): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_map_view,kwargs={'id':id}), @@ -9991,7 +9991,7 @@ def workout_uploadimage_view(request,id): }, { 'url':get_workout_default_page(request,id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(workout_uploadimage_view,kwargs={'id':id}), @@ -10974,6 +10974,11 @@ def workout_upload_view(request, except KeyError: boattype = '1x' + try: + workoutsource = uploadoptions['workoutsource'] + except KeyError: + workoutsource = None + try: plottype = uploadoptions['plottype'] except KeyError: @@ -11087,6 +11092,7 @@ def workout_upload_view(request, id,message,f2 = dataprep.new_workout_from_file( r,f2, workouttype=workouttype, + workoutsource=workoutsource, boattype=boattype, makeprivate=makeprivate, title = t, @@ -11631,7 +11637,7 @@ def graph_show_view(request,id): }, { 'url':get_workout_default_page(request,w.id), - 'name': str(w.id) + 'name': w.name }, { 'url':reverse(graph_show_view,kwargs={'id':id}), @@ -11723,7 +11729,7 @@ def workout_split_view(request,id=id): }, { 'url':get_workout_default_page(request,row.id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(graph_show_view,kwargs={'id':id}), @@ -11894,7 +11900,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" }, { 'url':get_workout_default_page(request,row.id), - 'name': str(row.id) + 'name': row.name }, { 'url':reverse(workout_summary_edit_view,kwargs={'id':id}),