|
|
|
|
@ -81,6 +81,20 @@ class UserViewSet(viewsets.ModelViewSet): |
|
|
|
|
return UserSerializer |
|
|
|
|
return self.serializer_class |
|
|
|
|
|
|
|
|
|
class ChangePasswordView(UpdateAPIView): |
|
|
|
|
serializer_class = ChangePasswordSerializer |
|
|
|
|
|
|
|
|
|
def update(self, request, *args, **kwargs): |
|
|
|
|
serializer = self.get_serializer(data=request.data) |
|
|
|
|
serializer.is_valid(raise_exception=True) |
|
|
|
|
user = serializer.save() |
|
|
|
|
# if using drf authtoken, create a new token |
|
|
|
|
if hasattr(user, 'auth_token'): |
|
|
|
|
user.auth_token.delete() |
|
|
|
|
token, created = Token.objects.get_or_create(user=user) |
|
|
|
|
# return new token |
|
|
|
|
return Response({'token': token.key}, status=status.HTTP_200_OK) |
|
|
|
|
|
|
|
|
|
class ClubViewSet(viewsets.ModelViewSet): |
|
|
|
|
queryset = Club.objects.all() |
|
|
|
|
serializer_class = ClubSerializer |
|
|
|
|
@ -89,14 +103,33 @@ class ClubViewSet(viewsets.ModelViewSet): |
|
|
|
|
def perform_create(self, serializer): |
|
|
|
|
serializer.save(creator=self.request.user) |
|
|
|
|
|
|
|
|
|
class EventViewSet(viewsets.ModelViewSet): |
|
|
|
|
queryset = Event.objects.all() |
|
|
|
|
serializer_class = EventSerializer |
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
user = self.request.user |
|
|
|
|
if user.is_anonymous: |
|
|
|
|
return [] |
|
|
|
|
events = set(self.queryset.filter(creator=user)) |
|
|
|
|
for club in user.authorized_clubs.all(): |
|
|
|
|
for event in club.event_set.all(): |
|
|
|
|
events.add(event) |
|
|
|
|
return events |
|
|
|
|
|
|
|
|
|
class TournamentViewSet(viewsets.ModelViewSet): |
|
|
|
|
queryset = Tournament.objects.all() |
|
|
|
|
serializer_class = TournamentSerializer |
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
if self.request.user.is_anonymous: |
|
|
|
|
user = self.request.user |
|
|
|
|
if user.is_anonymous: |
|
|
|
|
return [] |
|
|
|
|
return self.queryset.filter(event__creator=self.request.user) |
|
|
|
|
tournaments = set(self.queryset.filter(event__creator=user)) |
|
|
|
|
for club in user.authorized_clubs.all(): |
|
|
|
|
for tournament in club.tournaments_set(): |
|
|
|
|
tournaments.add(tournament) |
|
|
|
|
return tournaments |
|
|
|
|
|
|
|
|
|
class PurchaseViewSet(viewsets.ModelViewSet): |
|
|
|
|
queryset = Purchase.objects.all() |
|
|
|
|
@ -120,29 +153,6 @@ class PurchaseViewSet(viewsets.ModelViewSet): |
|
|
|
|
# queryset = Tournament.objects.all() |
|
|
|
|
# serializer_class = ExpandedTournamentSerializer |
|
|
|
|
|
|
|
|
|
class ChangePasswordView(UpdateAPIView): |
|
|
|
|
serializer_class = ChangePasswordSerializer |
|
|
|
|
|
|
|
|
|
def update(self, request, *args, **kwargs): |
|
|
|
|
serializer = self.get_serializer(data=request.data) |
|
|
|
|
serializer.is_valid(raise_exception=True) |
|
|
|
|
user = serializer.save() |
|
|
|
|
# if using drf authtoken, create a new token |
|
|
|
|
if hasattr(user, 'auth_token'): |
|
|
|
|
user.auth_token.delete() |
|
|
|
|
token, created = Token.objects.get_or_create(user=user) |
|
|
|
|
# return new token |
|
|
|
|
return Response({'token': token.key}, status=status.HTTP_200_OK) |
|
|
|
|
|
|
|
|
|
class EventViewSet(viewsets.ModelViewSet): |
|
|
|
|
queryset = Event.objects.all() |
|
|
|
|
serializer_class = EventSerializer |
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
if self.request.user.is_anonymous: |
|
|
|
|
return [] |
|
|
|
|
return self.queryset.filter(creator=self.request.user) |
|
|
|
|
|
|
|
|
|
class RoundViewSet(viewsets.ModelViewSet): |
|
|
|
|
queryset = Round.objects.all() |
|
|
|
|
serializer_class = RoundSerializer |
|
|
|
|
|