workout-challenge/src-backend/workouts/views.py
2025-09-27 18:19:06 +01:00

28 lines
1.1 KiB
Python

import time
from django.db.models import Q
from rest_framework import viewsets
from django_filters.rest_framework import DjangoFilterBackend
from custom_user.views import IsOwnerOrReadOnly
from .models import Workout
from competition.scorer import trigger_workout_change
from .serializers import WorkoutSerializer
from .filters import WorkoutFilter
class WorkoutViewSet(viewsets.ModelViewSet):
#queryset = Competition.objects.all()
serializer_class = WorkoutSerializer
filter_backends = [DjangoFilterBackend]
filterset_class = WorkoutFilter
permission_classes = [IsOwnerOrReadOnly]
def get_queryset(self):
# return all workouts from the user himself/herself
#time.sleep(3) # throttle for testing
return Workout.objects.select_related('user').filter(user__id=self.request.user.id).order_by('-start_datetime', '-duration', '-id') # | Q(points__goal__competition__user=self.request.user)).distinct().order_by('-start_datetime', '-duration', '-id')
def perform_create(self, serializer):
serializer.save(user=self.request.user)