diff --git a/apps/ops/api/celery.py b/apps/ops/api/celery.py index 420d2d3c8..fcb4d333f 100644 --- a/apps/ops/api/celery.py +++ b/apps/ops/api/celery.py @@ -109,7 +109,6 @@ class CelerySummaryAPIView(generics.RetrieveAPIView): class CeleryTaskFilterSet(BaseFilterSet): - id = drf_filters.CharFilter(field_name='id', lookup_expr='exact') name = drf_filters.CharFilter(method='filter_name') @staticmethod @@ -127,7 +126,7 @@ class CeleryTaskFilterSet(BaseFilterSet): class Meta: model = CeleryTask - fields = ['id', 'name'] + fields = ['name'] class CeleryTaskViewSet( @@ -135,7 +134,7 @@ class CeleryTaskViewSet( mixins.ListModelMixin, mixins.DestroyModelMixin, viewsets.GenericViewSet ): - search_fields = ('id', 'name') + search_fields = ('name',) filterset_class = CeleryTaskFilterSet serializer_class = CeleryTaskSerializer @@ -206,6 +205,14 @@ class CeleryTaskViewSet( i.state = summary_state_dict.get(i.name, {}).get('state', 'green') return queryset + def filter_queryset(self, queryset): + search = self.request.query_params.get('search') + if search: + queryset = CeleryTaskFilterSet.filter_name(queryset, 'name', search) + else: + queryset = super().filter_queryset(queryset) + return queryset + def list(self, request, *args, **kwargs): queryset = self.filter_queryset(self.get_queryset()) queryset = self.mark_periodic_and_sorted(queryset) @@ -241,7 +248,7 @@ class CeleryTaskExecutionViewSet(CommonApiMixin, viewsets.ModelViewSet): serializer_class = CeleryTaskExecutionSerializer http_method_names = ('get', 'post', 'head', 'options',) queryset = CeleryTaskExecution.objects.all() - search_fields = ('name',) + search_fields = ('id',) def get_queryset(self): task_id = self.request.query_params.get('task_id')