views.py 1.1 KB

1234567891011121314151617181920212223242526272829
  1. from rest_framework import viewsets, exceptions
  2. from projects.models import Project
  3. from .models import ProjectAlert
  4. from .serializers import ProjectAlertSerializer
  5. class ProjectAlertViewSet(viewsets.ModelViewSet):
  6. queryset = ProjectAlert.objects.all()
  7. serializer_class = ProjectAlertSerializer
  8. def get_queryset(self):
  9. if not self.request.user.is_authenticated:
  10. return self.queryset.none()
  11. return self.queryset.filter(
  12. project__slug=self.kwargs.get("project_slug"),
  13. project__team__members__user=self.request.user,
  14. project__organization__slug=self.kwargs.get("organization_slug"),
  15. )
  16. def perform_create(self, serializer):
  17. try:
  18. project = Project.objects.get(
  19. slug=self.kwargs.get("project_slug"),
  20. team__members__user=self.request.user,
  21. organization__slug=self.kwargs.get("organization_slug"),
  22. )
  23. except Project.DoesNotExist:
  24. raise exceptions.ValidationError("Organization does not exist")
  25. serializer.save(project=project)