diff --git a/rowers/dataprep.py b/rowers/dataprep.py index acce7fa3..9dbfd80a 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -109,7 +109,7 @@ import pyarrow as pa from pyarrow.lib import ArrowInvalid -from django.utils import timezone +from django.utils import timezone as tz from django.utils.timezone import get_current_timezone from django.urls import reverse import requests @@ -276,7 +276,7 @@ def check_marker(workout): def workout_summary_to_df( rower, startdate=datetime.datetime(1970, 1, 1), - enddate=timezone.now()+timezone.timedelta(days=1)): + enddate=tz.now()+tz.timedelta(days=1)): ws = Workout.objects.filter( user=rower, date__gte=startdate, date__lte=enddate, @@ -636,7 +636,7 @@ def setcp(workout, background=False, recurrance=True): def update_wps(r, types, mode='water', asynchron=True): - firstdate = timezone.now()-datetime.timedelta(days=r.cprange) + firstdate = tz.now()-datetime.timedelta(days=r.cprange) workouts = Workout.objects.filter( date__gte=firstdate, workouttype__in=types, @@ -702,7 +702,7 @@ def join_workouts(r, ids, title='Joined Workout', notes = '' summary = '' makeprivate = False - startdatetime = timezone.now() + startdatetime = tz.now() if setprivate is True and makeprivate is False: # pragma: no cover makeprivate = True @@ -801,7 +801,7 @@ def fetchcp_new(rower, workouts): def update_rolling_cp(r, types, mode='water', dosend=False): - firstdate = timezone.now()-datetime.timedelta(days=r.cprange) + firstdate = tz.now()-datetime.timedelta(days=r.cprange) workouts = Workout.objects.filter( date__gte=firstdate, workouttype__in=types, @@ -1425,10 +1425,12 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower', w.save() except ValidationError: # pragma: no cover try: - w.startdatetime = timezone.now() + w.startdatetime = tz.now() w.save() except ValidationError: return (0, 'Unable to create your workout') + except AttributeError: + return (0, 'Unable to create your workout') if privacy == 'visible': ts = Team.objects.filter(rower=r) @@ -1631,28 +1633,32 @@ def new_workout_from_file(r, f2, startdatetime=startdatetime, )) - id, message = save_workout_database( - f2, r, - notes=notes, - workouttype=workouttype, - weightcategory=r.weightcategory, - adaptiveclass=r.adaptiveclass, - boattype=boattype, - makeprivate=makeprivate, - dosummary=dosummary, - workoutsource=workoutsource, - summary=summary, - startdatetime=startdatetime, - timezone=timezone, - rpe=rpe, - inboard=inboard, oarlength=oarlength, - seatnumber=seatnumber, boatname=boatname, - empowerside=empowerside, - title=title, - forceunit='N', - impeller=impeller, - workoutid=workoutid, - ) + try: + id, message = save_workout_database( + f2, r, + notes=notes, + workouttype=workouttype, + weightcategory=r.weightcategory, + adaptiveclass=r.adaptiveclass, + boattype=boattype, + makeprivate=makeprivate, + dosummary=dosummary, + workoutsource=workoutsource, + summary=summary, + startdatetime=startdatetime, + timezone=timezone, + rpe=rpe, + inboard=inboard, oarlength=oarlength, + seatnumber=seatnumber, boatname=boatname, + empowerside=empowerside, + title=title, + forceunit='N', + impeller=impeller, + workoutid=workoutid, + ) + except ValueError: + message = "error saving" + id = 0 return (id, message, f2) @@ -1696,7 +1702,7 @@ def new_workout_from_df(r, df, makeprivate = False rpe = 0 if startdatetime == '': # pragma: no cover - startdatetime = timezone.now() + startdatetime = tz.now() if setprivate: # pragma: no cover makeprivate = True diff --git a/rowers/templates/plannedsessions.html b/rowers/templates/plannedsessions.html index 67e57de8..ece78a74 100644 --- a/rowers/templates/plannedsessions.html +++ b/rowers/templates/plannedsessions.html @@ -56,6 +56,9 @@ Edit Clone Delete + {% if rower.intervals_token %} + Intervals.icu + {% endif %} Planned Actual   @@ -119,15 +122,26 @@   {% endif %} - + {% if ps.manager == request.user %} {% else %} + href="/rowers/sessions/{{ ps.id }}/removeme/"> {% endif %} + {% if rower.intervals_token %} + + {% if ps.intervals_icu_id %} + + {% else %} + + {% endif %} + + {% endif %} {{ ps.sessionvalue }} {{ actualvalue|lookup:ps.id }} {{ ps.sessionunit }} diff --git a/rowers/templates/plannedsessionview.html b/rowers/templates/plannedsessionview.html index 78c696e3..d4755fea 100644 --- a/rowers/templates/plannedsessionview.html +++ b/rowers/templates/plannedsessionview.html @@ -24,7 +24,7 @@ Export to Garmin {% endif %} {% if plannedsession.intervals_icu_id %} - Exported to intervals.icu + Exported to intervals.icu {% else %} Export to intervals.icu {% endif %} diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index a7322de6..5ad9c172 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 07ce9525..a0477c92 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -1564,6 +1564,9 @@ def virtualevent_mapcompare_view(request, id=0): def course_compare_view(request, id=0): results = [] + xparam = 'distance' + yparam = 'pace' + plottype = 'line' promember = 0 if not request.user.is_anonymous: