diff --git a/rowers/urls.py b/rowers/urls.py index 9d294f9a..a423bb70 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -250,6 +250,7 @@ urlpatterns = [ url(r'^workout/(?P\d+)/emailcsv$',views.workout_csvemail_view), url(r'^workout/(?P\d+)/csvtoadmin$',views.workout_csvtoadmin_view), url(r'^ergcpdatatoadmin/(?P\d+)/(?P\d+-\d+-\d+)/(?P\w+.*)$',views.otecp_toadmin_view), + url(r'^otwcpdatatoadmin/(?P\d+)/(?P\d+-\d+-\d+)/(?P\w+.*)$',views.otwcp_toadmin_view), url(r'^workout/compare/(?P\d+)/$',views.workout_comparison_list), url(r'^workout/compare2/(?P\d+)/(?P\d+)/(?P\w+.*)/(?P\w+.*)/$',views.workout_comparison_view), url(r'^workout/compare/(?P\d+)/(?P\d+-\d+-\d+)/(?P\w+.*)$',views.workout_comparison_list), diff --git a/rowers/views.py b/rowers/views.py index be1d30fb..c3a2b344 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -4351,6 +4351,80 @@ def otecp_toadmin_view(request,theuser=0, return response +@login_required() +def otwcp_toadmin_view(request,theuser=0, + startdate=timezone.now()-datetime.timedelta(days=365), + enddate=timezone.now(), + startdatestring="", + enddatestring="", + ): + + if startdatestring != "": + try: + startdate = iso8601.parse_date(startdatestring) + except ParseError: + pass + + if enddatestring != "": + try: + enddate = iso8601.parse_date(enddatestring) + except ParseError: + pass + + if theuser == 0: + theuser = request.user.id + + u = User.objects.get(id=theuser) + r = Rower.objects.get(user=u) + + startdate = datetime.datetime.combine(startdate,datetime.time()) + enddate = datetime.datetime.combine(enddate,datetime.time(23,59,59)) + + theworkouts = Workout.objects.filter( + user=r,rankingpiece=True, + workouttype__in=[ + 'rower', + 'dynamic', + 'slides' + ], + startdatetime__gte=startdate, + startdatetime__lte=enddate + ).order_by("-startdatetime") + + + delta,cpvalue,avgpower = dataprep.fetchcp( + r,theworkouts,table='cpdata' + ) + + powerdf = pd.DataFrame({ + 'Delta':delta, + 'CP':cpvalue, + }) + + csvfilename = 'CP_data_user_{id}.csv'.format( + id = theuser + ) + + powerdf = powerdf[powerdf['CP']>0] + powerdf.dropna(axis=0,inplace=True) + powerdf.sort_values(['Delta','CP'],ascending=[1,0],inplace=True) + powerdf.drop_duplicates(subset='Delta',keep='first',inplace=True) + powerdf.to_csv(csvfilename) + + res = myqueue(queuehigh, + handle_sendemailfile, + 'Sander', + 'Roosendaal', + 'roosendaalsander@gmail.com', + csvfilename, + delete=True) + + successmessage = "The CSV file was sent to the site admin per email" + messages.info(request,successmessage) + response = HttpResponseRedirect('/rowers/list-workouts/') + + return response + # Show ranking distances including predicted paces @user_passes_test(ispromember,login_url="/",redirect_field_name=None) def oterankings_view(request,theuser=0,