diff --git a/rowers/integrations/intervals.py b/rowers/integrations/intervals.py index ae67709f..159f0559 100644 --- a/rowers/integrations/intervals.py +++ b/rowers/integrations/intervals.py @@ -227,6 +227,8 @@ class IntervalsIntegration(SyncIntegration): token = self.open() except NoTokenError: return [] + + type_filter = kwargs.get('type_filter', None) url = self.oauth_data['base_url'] + 'athlete/0/activities?' startdate = timezone.now() - timedelta(days=30) @@ -278,7 +280,8 @@ class IntervalsIntegration(SyncIntegration): values = [i, d, ttot, s, r, s2, c, nnn] ress = dict(zip(keys, values)) - workouts.append(ress) + if not type_filter or r in type_filter: + workouts.append(ress) except KeyError: dologging('intervals.icu.log', item) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index d865fa8b..b5c20fb0 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 995fc5cf..1d31f0ed 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -413,6 +413,11 @@ def workout_import_view(request, source='c2'): url = reverse('workouts_view') return HttpResponseRedirect(url) + if request.method == 'GET': + type_filter = request.GET.get('type', None) + else: + type_filter = None + try: _ = integration.open() except NoTokenError: # pragma: no cover @@ -463,7 +468,8 @@ def workout_import_view(request, source='c2'): before=before, after=after, startdate=startdate, - enddate=enddate + enddate=enddate, + type_filter=type_filter ) except NoTokenError: # pragma: no cover messages.error(request,"You must first make the connection to {source}".format(