Skip to content
Snippets Groups Projects
Commit f15af3b1 authored by Samuel GAIST's avatar Samuel GAIST Committed by Samuel GAIST
Browse files

[team][api] Pre-commit cleanup

parent 1723c46b
No related branches found
No related tags found
No related merge requests found
This commit is part of merge request !327. Comments created here will be created in the context of that merge request.
...@@ -46,20 +46,21 @@ from ..common.responses import BadRequestResponse, ForbiddenResponse ...@@ -46,20 +46,21 @@ from ..common.responses import BadRequestResponse, ForbiddenResponse
from ..common.mixins import CommonContextMixin from ..common.mixins import CommonContextMixin
#---------------------------------------------------------- # ----------------------------------------------------------
class UserTeamListView(CommonContextMixin, generics.ListCreateAPIView): class UserTeamListView(CommonContextMixin, generics.ListCreateAPIView):
""" """
Lists the team from a user and create new teams Lists the team from a user and create new teams
""" """
model = Team model = Team
serializer_class = SimpleTeamSerializer serializer_class = SimpleTeamSerializer
writing_serializer_class = TeamCreationSerializer writing_serializer_class = TeamCreationSerializer
permission_classes = [permissions.IsAuthenticated] permission_classes = [permissions.IsAuthenticated]
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if self.request.method == 'POST': if self.request.method == "POST":
self.serializer_class = self.writing_serializer_class self.serializer_class = self.writing_serializer_class
return super(UserTeamListView, self).get_serializer(*args, **kwargs) return super(UserTeamListView, self).get_serializer(*args, **kwargs)
...@@ -69,13 +70,19 @@ class UserTeamListView(CommonContextMixin, generics.ListCreateAPIView): ...@@ -69,13 +70,19 @@ class UserTeamListView(CommonContextMixin, generics.ListCreateAPIView):
if request.user == owner: if request.user == owner:
queryset = Team.objects.filter(owner=owner) queryset = Team.objects.filter(owner=owner)
else: else:
queryset = Team.objects.filter(Q(owner=owner), Q(privacy_level=Team.PUBLIC)|Q(privacy_level=Team.MEMBERS, members=request.user)).distinct() queryset = Team.objects.filter(
Q(owner=owner),
serializer = self.get_serializer(queryset, many=True, context={'user': request.user}) Q(privacy_level=Team.PUBLIC)
| Q(privacy_level=Team.MEMBERS, members=request.user),
).distinct()
serializer = self.get_serializer(
queryset, many=True, context={"user": request.user}
)
return Response(serializer.data) return Response(serializer.data)
#---------------------------------------------------------- # ----------------------------------------------------------
class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView): class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView):
...@@ -89,15 +96,15 @@ class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView): ...@@ -89,15 +96,15 @@ class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView):
def get_permissions(self): def get_permissions(self):
self.permission_classes = [permissions.IsAuthenticatedOrReadOnly] self.permission_classes = [permissions.IsAuthenticatedOrReadOnly]
if self.request.method == 'GET': if self.request.method == "GET":
self.permission_classes.append(HasPrivacyLevel) self.permission_classes.append(HasPrivacyLevel)
else: else:
self.permission_classes.append(IsOwner) self.permission_classes.append(IsOwner)
return super(TeamDetailView, self).get_permissions() return super(TeamDetailView, self).get_permissions()
def get_queryset(self): def get_queryset(self):
owner_name = self.kwargs.get('owner_name') owner_name = self.kwargs.get("owner_name")
team_name = self.kwargs.get('team_name') team_name = self.kwargs.get("team_name")
team = get_object_or_404(Team, owner__username=owner_name, name=team_name) team = get_object_or_404(Team, owner__username=owner_name, name=team_name)
...@@ -106,21 +113,24 @@ class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView): ...@@ -106,21 +113,24 @@ class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView):
return team return team
def get_serializer(self, *args, **kwargs): def get_serializer(self, *args, **kwargs):
if self.request.method in ['PUT', 'PATCH']: if self.request.method in ["PUT", "PATCH"]:
self.serializer_class = self.writing_serializer_class self.serializer_class = self.writing_serializer_class
return super(TeamDetailView, self).get_serializer(*args, **kwargs) return super(TeamDetailView, self).get_serializer(*args, **kwargs)
def get(self, request, owner_name, team_name): def get(self, request, owner_name, team_name):
team = self.get_queryset() team = self.get_queryset()
serializer = self.serializer_class(team, context={'user': request.user}) serializer = self.serializer_class(team, context={"user": request.user})
return Response(serializer.data) return Response(serializer.data)
def delete(self, request, owner_name, team_name): def delete(self, request, owner_name, team_name):
team = self.get_queryset() team = self.get_queryset()
# Check that the team can still be deleted # Check that the team can still be deleted
if not(team.deletable()): if not (team.deletable()):
return ForbiddenResponse("The team isn't deletable (it has been used to share %d objects with its members)" % team.total_shares()) return ForbiddenResponse(
"The team isn't deletable (it has been used to share %d objects with its members)"
% team.total_shares()
)
team.delete() team.delete()
return Response(status=status.HTTP_204_NO_CONTENT) return Response(status=status.HTTP_204_NO_CONTENT)
...@@ -129,29 +139,34 @@ class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView): ...@@ -129,29 +139,34 @@ class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView):
team = self.get_queryset() team = self.get_queryset()
self.check_object_permissions(request, team) self.check_object_permissions(request, team)
serializer = self.writing_serializer_class(team, data=request.data, partial=True) serializer = self.writing_serializer_class(
if not(serializer.is_valid()): team, data=request.data, partial=True
)
if not (serializer.is_valid()):
return BadRequestResponse(serializer.errors) return BadRequestResponse(serializer.errors)
db_object = serializer.save() db_object = serializer.save()
result = { result = {
'name': db_object.name, "name": db_object.name,
'url': reverse('api_teams:team_info', args=[db_object.owner.username, db_object.name]) "url": reverse(
"api_teams:team_info", args=[db_object.owner.username, db_object.name]
),
} }
response = Response(result, status=200) response = Response(result, status=200)
response['Location'] = result['url'] response["Location"] = result["url"]
return response return response
#---------------------------------------------------------- # ----------------------------------------------------------
class TeamListView(CommonContextMixin, generics.ListAPIView): class TeamListView(CommonContextMixin, generics.ListAPIView):
""" """
List all teams of the caller List all teams of the caller
""" """
model = Team model = Team
serializer_class = SimpleTeamSerializer serializer_class = SimpleTeamSerializer
permission_classes = [permissions.IsAuthenticated] permission_classes = [permissions.IsAuthenticated]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment