Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
This commit is contained in:
Marc 'risson' Schmitt
2025-06-10 15:42:40 +02:00
parent 03d363ba84
commit 0e786f7040
4 changed files with 21 additions and 21 deletions

View File

@ -1,4 +1,3 @@
from drf_spectacular.utils import OpenApiParameter, extend_schema
from rest_framework.mixins import (
ListModelMixin,
RetrieveModelMixin,
@ -8,7 +7,6 @@ from rest_framework.viewsets import GenericViewSet
from authentik.core.api.utils import ModelSerializer
from authentik.events.logs import LogEventSerializer
from authentik.tasks.models import Task
from authentik.tasks.schedules.models import Schedule
from authentik.tenants.utils import get_current_tenant
@ -27,6 +25,7 @@ class TaskSerializer(ModelSerializer):
"rel_obj_id",
"uid",
"messages",
"aggregated_status",
]
@ -42,27 +41,15 @@ class TaskViewSet(
"queue_name",
"actor_name",
"state",
"aggregated_status",
)
filterset_fields = (
"queue_name",
"actor_name",
"state",
"aggregated_status",
)
ordering = (
"actor_name",
"-mtime",
)
ordering = ("-mtime",)
def get_queryset(self):
qs = Task.objects.filter(tenant=get_current_tenant())
if self.request.query_params.get("exclude_scheduled", "false").lower() == "true":
qs = qs.exclude(schedule_uid__in=Schedule.objects.all().values_list("uid", flat=True))
return qs
@extend_schema(
parameters=[
OpenApiParameter("exclude_scheduled", bool, default=False),
]
)
def list(self, *args, **kwargs):
return super().list(*args, **kwargs)
return Task.objects.filter(tenant=get_current_tenant())

View File

@ -64,6 +64,9 @@ class Task(SerializerModel):
verbose_name = _("Task")
verbose_name_plural = _("Tasks")
default_permissions = ("view",)
permissions = [
("retrigger_task", _("Restart failed task")),
]
indexes = (
models.Index(fields=("state", "mtime")),
models.Index(fields=("rel_obj_content_type", "rel_obj_id")),