diff --git a/rowers/c2stuff.py b/rowers/c2stuff.py index 9f5639ad..7df1d228 100644 --- a/rowers/c2stuff.py +++ b/rowers/c2stuff.py @@ -247,8 +247,12 @@ def createc2workoutdata_as_splits(w): except TypeError: newnotes = 'from '+w.workoutsource+' via rowsandall.com' + wtype = w.workouttype + if wtype in ('other','coastal'): + wtype = 'water' + data = { - "type": w.workouttype, + "type": wtype, "date": w.startdatetime.isoformat(), "distance": int(w.distance), "time": int(10*makeseconds(durationstr)), diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 01557032..0059162f 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -816,7 +816,7 @@ def new_workout_from_df(r,df, timestr = strftime("%Y%m%d-%H%M%S") - csvfilename ='media/Fusion_'+timestr+'.csv' + csvfilename ='media/df_'+timestr+'.csv' df.rename(columns = columndict,inplace=True) diff --git a/rowers/forms.py b/rowers/forms.py index 8b1e7622..abbf3863 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -61,8 +61,8 @@ class DocumentsForm(forms.Form): file = forms.FileField(required=True, validators=[validate_file_extension]) workouttype = forms.ChoiceField(required=True, - choices=Workout.workouttypes, - initial='rower') + choices=Workout.workouttypes) +# initial='rower') notes = forms.CharField(required=False, widget=forms.Textarea) diff --git a/rowers/models.py b/rowers/models.py index 1c305c70..9bb87132 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -361,6 +361,7 @@ class Workout(models.Model): ('slides','Indoor Rower on Slides'), ('paddle','Paddle Adapter'), ('snow','On-snow'), + ('coastal','Coastal'), ('other','Other'), ) diff --git a/rowers/views.py b/rowers/views.py index 1f920fcc..f4493a48 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -146,7 +146,7 @@ USER_LANGUAGE = 'en-US' from interactiveplots import * # Define the API documentation -schema_view = get_swagger_view(title='Rowsandall API (Unstable)') +schema_view = get_swagger_view(title='Rowsandall API') # Custom error pages with Rowsandall headers def error500_view(request): @@ -6658,6 +6658,9 @@ def workout_upload_view(request, 'make_plot':False, 'upload_to_C2':False, 'plottype':'timeplot', + }, + docformoptions={ + 'workouttype':'rower', }): if 'uploadoptions' in request.session: @@ -6665,6 +6668,10 @@ def workout_upload_view(request, else: request.session['uploadoptions'] = uploadoptions + if 'docformoptions' in request.session: + docformoptions = request.session['docformoptions'] + else: + request.session['docformoptions'] = docformoptions try: makeprivate = uploadoptions['makeprivate'] @@ -6675,6 +6682,11 @@ def workout_upload_view(request, except KeyError: make_plot = False + try: + workouttype = docformoptions['workouttype'] + except KeyError: + workouttype = 'rower' + try: plottype = uploadoptions['plottype'] except KeyError: @@ -6719,7 +6731,10 @@ def workout_upload_view(request, res = handle_uploaded_file(f) t = form.cleaned_data['title'] workouttype = form.cleaned_data['workouttype'] - + request.session['docformoptions'] = { + 'workouttype':workouttype, + } + notes = form.cleaned_data['notes'] if optionsform.is_valid(): @@ -6930,7 +6945,7 @@ def workout_upload_view(request, return response else: - form = DocumentsForm() + form = DocumentsForm(initial=docformoptions) optionsform = UploadOptionsForm(initial=uploadoptions) return render(request, 'document_form.html', {'form':form, @@ -7985,6 +8000,9 @@ def strokedatajson(request,id): # currently only returns a subset. columns = ['spm','time','hr','pace','power','distance'] datadf = dataprep.getsmallrowdata_db(columns,ids=[id]) + with open('media/apilog.log','a') as logfile: + logfile.write(str(timezone.now())+": ") + logfile.write(request.user.username+"(GET) \n") return JSONResponse(datadf) if request.method == 'POST': @@ -8032,6 +8050,10 @@ def strokedatajson(request,id): starttime = totimestamp(row.startdatetime)+time unixtime = starttime+time + + with open('media/apilog.log','a') as logfile: + logfile.write(starttime+": ") + logfile.write(request.user.username+"(POST) \r\n") data = pd.DataFrame({'TimeStamp (sec)':unixtime, ' Horizontal (meters)': distance, @@ -8049,6 +8071,7 @@ def strokedatajson(request,id): ' ElapsedTime (sec)':time, }) + # Following part should be replaced with dataprep.new_workout_from_df timestr = row.startdatetime.strftime("%Y%m%d-%H%M%S") csvfilename ='media/Import_'+timestr+'.csv' diff --git a/rowsanda_107501 b/rowsanda_107501 index f2d56d0f..a01511d5 100644 Binary files a/rowsanda_107501 and b/rowsanda_107501 differ diff --git a/static/css/rowsandall.css b/static/css/rowsandall.css index 9d3cd53a..7dfd9851 100644 --- a/static/css/rowsandall.css +++ b/static/css/rowsandall.css @@ -15,7 +15,7 @@ } .two { - background-image: url("/static/img/landing2.jpg"); + background-image: url("/static/img/landing1.jpg"); } .three { @@ -23,7 +23,7 @@ } .four { - background-image: url("/static/img/landing1.jpg"); + background-image: url("/static/img/landing8b.jpg"); } html { diff --git a/static/img/landing8b.jpg b/static/img/landing8b.jpg new file mode 100644 index 00000000..6541c27a Binary files /dev/null and b/static/img/landing8b.jpg differ