From fd6e922214d4350b5617707b1f91b2b1d79cba71 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 28 Sep 2019 13:35:32 +0200 Subject: [PATCH 1/4] alerts run next day --- rowers/management/commands/processalerts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/management/commands/processalerts.py b/rowers/management/commands/processalerts.py index 08e39bcc..febfe20f 100644 --- a/rowers/management/commands/processalerts.py +++ b/rowers/management/commands/processalerts.py @@ -38,7 +38,7 @@ class Command(BaseCommand): else: testing = False - todaysalerts = Alert.objects.filter(next_run__lte = datetime.date.today(),emailalert=True) + todaysalerts = Alert.objects.filter(next_run__lt = datetime.date.today(),emailalert=True) for alert in todaysalerts: stats = alerts.alert_get_stats(alert) From 1d528e6489e833ef3ebc19acef33b05cdacbaf83 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 28 Sep 2019 15:22:40 +0200 Subject: [PATCH 2/4] fixing strava imports --- rowers/stravastuff.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py index f2af5b3c..0ea6ab5c 100644 --- a/rowers/stravastuff.py +++ b/rowers/stravastuff.py @@ -529,9 +529,14 @@ def add_workout_from_data(user,importid,data,strokedata, try: latcoord = strokedata.loc[:,'lat'] loncoord = strokedata.loc[:,'lon'] + if latcoord.std() == 0 and loncoord.std() == 0 and workouttype == 'water': + workouttype = 'rower' except: latcoord = np.zeros(nr_rows) loncoord = np.zeros(nr_rows) + if workouttype == 'water': + workouttype = 'rower' + try: @@ -747,12 +752,18 @@ def handle_strava_import_stroke_data(title, try: lat = coords[:,0] lon = coords[:,1] + if lat.std() == 0 and lon.std() == 0 and workouttype == 'water': + workouttype = 'rower' except IndexError: lat = np.zeros(len(t)) lon = np.zeros(len(t)) + if workouttype == 'water': + workouttype = 'rower' else: lat = np.zeros(len(t)) lon = np.zeros(len(t)) + if workouttype == 'water': + workouttype = 'rower' strokelength = velo*60./(spm) strokelength[np.isinf(strokelength)] = 0.0 From 9e71500d2e417a491316748db9d48f87f7a8ff58 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 28 Sep 2019 15:26:54 +0200 Subject: [PATCH 3/4] testing gitignore --- .gitignore | 1 + rowers/tests/testdata/testdata.csv.gz | Bin 12642 -> 12642 bytes 2 files changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0dc8c5c9..08de68fa 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ conftest.py # temporary test files /rowers/tests/testdata/temp /rowers/tests/testdata/testdata.csv.gz +rowers/tests/testdata/testdata.csv.gz /rowers/tests/testdata/testdata.tcx diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index e21c31abd2d1f233c2c11d8af1324727232378a3..6f1a0da3b811147bac034e74d1c678169849e50e 100644 GIT binary patch delta 16 XcmaEq^eBm4zMF%?F}{Bzd$b_{H*W>K delta 16 XcmaEq^eBm4zMF&NL15QL_Gm)@J6i@x From 720a1e4c9181b371914e92b6aec0cf258919b851 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 28 Sep 2019 15:56:48 +0200 Subject: [PATCH 4/4] removed testdata.csv.gz --- rowers/tests/testdata/testdata.csv.gz | Bin 12642 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 rowers/tests/testdata/testdata.csv.gz diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz deleted file mode 100644 index 6f1a0da3b811147bac034e74d1c678169849e50e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12642 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 Q0RR630LQKMsTYd?0MqtjaR2}S