from rest_framework import viewsets from rest_framework.views import APIView from rest_framework.permissions import IsAuthenticated, IsAdminUser from rest_framework.response import Response from .serializers import ContestSerializer, BandSerializer, FrequencySerializer, EntryCategorySerializer, \ ReferenceSerializer, QSOSerializer, ShadowCallSerializer, UserSerializer from contest.models import Contest, Band, Frequency, EntryCategory, Reference, QSO, ShadowCall class ContestViewSet(viewsets.ReadOnlyModelViewSet): queryset = Contest.objects.all() serializer_class = ContestSerializer class BandViewSet(viewsets.ReadOnlyModelViewSet): queryset = Band.objects.all() serializer_class = BandSerializer class FrequencyViewSet(viewsets.ReadOnlyModelViewSet): queryset = Frequency.objects.all() serializer_class = FrequencySerializer class EntryCategoryViewSet(viewsets.ReadOnlyModelViewSet): queryset = EntryCategory.objects.all() serializer_class = EntryCategorySerializer class ReferenceViewSet(viewsets.ReadOnlyModelViewSet): permission_classes = [IsAdminUser] queryset = Reference.objects.all() serializer_class = ReferenceSerializer class QSOViewSet(viewsets.ReadOnlyModelViewSet): permission_classes = [IsAuthenticated] serializer_class = QSOSerializer def get_queryset(self): return QSO.objects.filter(owner=self.request.user) class UserProfileView(APIView): permission_classes = [IsAuthenticated] def get(self, request, format=None): user = request.user serializer = UserSerializer(user) return Response(serializer.data) class ShadowCallViewSet(viewsets.ReadOnlyModelViewSet): permission_classes = [IsAdminUser] queryset = ShadowCall.objects.all() serializer_class = ShadowCallSerializer