from rest_framework import viewsets, filters from rest_framework.permissions import IsAuthenticated from django_filters.rest_framework import DjangoFilterBackend from .models import TrainingTemplate, TemplateExercise from .serializers import TrainingTemplateSerializer, TemplateExerciseSerializer from wrestleDesk.pagination import StandardResultsSetPagination class TrainingTemplateViewSet(viewsets.ModelViewSet): queryset = TrainingTemplate.objects.prefetch_related('templateexercise_set').all() serializer_class = TrainingTemplateSerializer pagination_class = StandardResultsSetPagination permission_classes = [IsAuthenticated] filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter] filterset_fields = ['category', 'is_active'] search_fields = ['name', 'description'] ordering_fields = ['name', 'created_at'] class TemplateExerciseViewSet(viewsets.ModelViewSet): queryset = TemplateExercise.objects.all() serializer_class = TemplateExerciseSerializer pagination_class = StandardResultsSetPagination permission_classes = [IsAuthenticated] filter_backends = [DjangoFilterBackend, filters.OrderingFilter] filterset_fields = ['template'] ordering_fields = ['order']