from rest_framework.permissions import IsAuthenticated from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet from .filters import ( ChannelConfigFilter, NotificationDispatchFilter, NotificationTemplateFilter, ) from .models import ChannelConfig, NotificationDispatch, NotificationTemplate from .serializers import ( ChannelConfigSerializer, NotificationDispatchSerializer, NotificationTemplateSerializer, ) class NotificationTemplateViewSet(ModelViewSet): queryset = NotificationTemplate.objects.all() serializer_class = NotificationTemplateSerializer permission_classes = [IsAuthenticated] filterset_class = NotificationTemplateFilter def get_queryset(self): return NotificationTemplate.objects.all() class NotificationDispatchViewSet(ReadOnlyModelViewSet): queryset = NotificationDispatch.objects.select_related("template") serializer_class = NotificationDispatchSerializer permission_classes = [IsAuthenticated] filterset_class = NotificationDispatchFilter def get_queryset(self): return NotificationDispatch.objects.select_related("template") class ChannelConfigViewSet(ModelViewSet): queryset = ChannelConfig.objects.all() serializer_class = ChannelConfigSerializer permission_classes = [IsAuthenticated] filterset_class = ChannelConfigFilter def get_queryset(self): return ChannelConfig.objects.all()