diff --git a/rowers/dataroutines.py b/rowers/dataroutines.py index 851032e7..75b62a8b 100644 --- a/rowers/dataroutines.py +++ b/rowers/dataroutines.py @@ -1426,13 +1426,17 @@ def get_workouttype_from_fit(filename, workouttype=None): if record.name in ['sport', 'lap','session']: try: fittype = record.get_values()['sport'].lower() + try: + workouttype = mytypes.fitmappinginv[fittype] + except KeyError: + workouttype = '' try: subsporttype = record.get_values()['sub_sport'].lower() except KeyError: subsporttype = '' except (KeyError, AttributeError): # pragma: no cover pass - if subsporttype: + if subsporttype and workouttype == '': try: workouttype = mytypes.fitmappinginv[subsporttype] except KeyError: @@ -1442,8 +1446,8 @@ def get_workouttype_from_fit(filename, workouttype=None): workouttype = mytypes.fitmappinginv[fittype] except KeyError: pass - if workouttype_orig in ['water', 'rower']: - workouttype = workouttype_orig + #if workouttype_orig in ['water', 'rower']: + # workouttype = workouttype_orig return workouttype @@ -1723,6 +1727,8 @@ def read_data(columns, ids=[], doclean=True, workstrokesonly=True, debug=False, pass except ColumnNotFoundError: pass + except ShapeError: + pass try: datadf = pl.concat(data) 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/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(