From 8658176cc91392d7042be75ac85ff1b1478577b6 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 7 Apr 2017 08:24:10 +0200 Subject: [PATCH] some error catching around has-teams and api permissions --- rowers/urls.py | 22 ++++++++++++++++------ rowers/views.py | 11 +++++++---- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/rowers/urls.py b/rowers/urls.py index 18ab3665..9097ed93 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -37,8 +37,12 @@ class WorkoutViewSet(viewsets.ModelViewSet): serializer_class = WorkoutSerializer def get_queryset(self): - r = Rower.objects.get(user=self.request.user) - return Workout.objects.filter(user=r).order_by("-date","-starttime") + try: + r = Rower.objects.get(user=self.request.user) + return Workout.objects.filter(user=r).order_by("-date","-starttime") + except TypeError: + return [] + permission_classes = ( @@ -52,8 +56,11 @@ class RowerViewSet(viewsets.ModelViewSet): #queryset = Rower.objects.all() def get_queryset(self): - r = Rower.objects.filter(user=self.request.user) - return r + try: + r = Rower.objects.filter(user=self.request.user) + return r + except TypeError: + return [] permission_classes = ( IsOwnerOrNot, @@ -68,8 +75,11 @@ class FavoriteChartViewSet(viewsets.ModelViewSet): #queryset = FavoriteChart.objects.all() def get_queryset(self): - r = Rower.objects.filter(user=self.request.user) - return FavoriteChart.objects.filter(user=r) + try: + r = Rower.objects.filter(user=self.request.user) + return FavoriteChart.objects.filter(user=r) + except TypeError: + return [] permission_classes = ( IsOwnerOrNot, diff --git a/rowers/views.py b/rowers/views.py index bac197b9..99ec51d6 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -173,10 +173,13 @@ def rdata(file,rower=rrower()): # Query to get teams managed and member of def get_my_teams(user): - therower = Rower.objects.get(user=user) - teams1 = therower.team.all() - teams2 = Team.objects.filter(manager=user) - teams = list(set(teams1).union(set(teams2))) + try: + therower = Rower.objects.get(user=user) + teams1 = therower.team.all() + teams2 = Team.objects.filter(manager=user) + teams = list(set(teams1).union(set(teams2))) + except TypeError: + teams = [] return teams