| 826 | |
| 827 | |
| 828 | class PipelineScheduleV2ViewSet(CreateListRetrieveUpdateViewSet): |
| 829 | queryset = PipelineSchedule.objects.prefetch_related("pipelineruns").all() |
| 830 | serializer_class = PipelineScheduleAPISerializer |
| 831 | lookup_field = "pipeline_id" |
| 832 | lookup_value_regex = r"[\w.]+" |
| 833 | throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
| 834 | |
| 835 | def get_serializer_class(self): |
| 836 | if self.action == "create": |
| 837 | return PipelineScheduleCreateSerializer |
| 838 | elif self.action == "update": |
| 839 | return PipelineScheduleUpdateSerializer |
| 840 | return super().get_serializer_class() |
| 841 | |
| 842 | def get_permissions(self): |
| 843 | """Restrict addition and modifications to staff users authenticated via session.""" |
| 844 | if self.action not in ["list", "retrieve"]: |
| 845 | return [IsAdminWithSessionAuth()] |
| 846 | return super().get_permissions() |
| 847 | |
| 848 | def get_view_name(self): |
| 849 | if self.detail: |
| 850 | return "Pipeline Instance" |
| 851 | return "Pipeline Jobs" |