diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 756038cc..fae04c02 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -749,8 +749,32 @@ def clean_df_stats(datadf, workstrokesonly=True, ignorehr=True, return datadf -def getpartofday(dt): - h = dt.hour +def getpartofday(row,r): + try: + latavg = row.df[' latitude'].mean() + lonavg = row.df[' longitude'].mean() + + tf = TimezoneFinder() + try: + timezone_str = tf.timezone_at(lng=lonavg, lat=latavg) + except ValueError: + timezone_str = 'UTC' + if timezone_str == None: + timezone_str = tf.closest_timezone_at(lng=lonavg, + lat=latavg) + if timezone_str == None: + timezone_str = r.defaulttimezone + try: + workoutstartdatetime = pytz.timezone(timezone_str).localize( + row.rowdatetime + ) + except ValueError: + workoutstartdatetime = row.rowdatetime + except KeyError: + timezone_str = r.defaulttimezone + + h = workoutstartdatetime.astimezone(pytz.timezone(timezone_str)).hour + if h < 12: return "Morning" elif h < 18: @@ -1169,7 +1193,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower', if title is None or title == '': title = 'Workout' - partofday = getpartofday(row.rowdatetime) + partofday = getpartofday(row,r) + if partofday is not None: title = '{partofday} workout {workouttype}'.format( diff --git a/rowers/templates/rower_exportsettings.html b/rowers/templates/rower_exportsettings.html index 14c5286b..b5b0e3c6 100644 --- a/rowers/templates/rower_exportsettings.html +++ b/rowers/templates/rower_exportsettings.html @@ -19,6 +19,13 @@

+{% if rower.garmintoken and rower.garmintoken != '' %} +

+ You are connected to Garmin. Switching off Garmin Connect sync is on the + Account settings + page. Look for the "Rowsandall" app. +

+{% endif %}

Garmin Connnect has no manual sync, so connecting your account to your Garmin account will automatically auto-sync workouts from Garmin to Rowsandall (but not in the other direction).