44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
from rest_framework import serializers
|
|
|
|
from .models import ScheduledTask, TaskExecution
|
|
|
|
|
|
class ScheduledTaskSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ScheduledTask
|
|
fields = [
|
|
"id",
|
|
"name",
|
|
"task_path",
|
|
"schedule_type",
|
|
"schedule_config",
|
|
"args",
|
|
"kwargs",
|
|
"is_active",
|
|
"queue",
|
|
"priority",
|
|
]
|
|
read_only_fields = ["id"]
|
|
|
|
|
|
class TaskExecutionSerializer(serializers.ModelSerializer):
|
|
task_info = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = TaskExecution
|
|
fields = [
|
|
"id",
|
|
"task",
|
|
"task_info",
|
|
"celery_task_id",
|
|
"status",
|
|
"started_at",
|
|
"completed_at",
|
|
"result",
|
|
"error_traceback",
|
|
"worker_hostname",
|
|
]
|
|
read_only_fields = ["id", "started_at", "completed_at"]
|
|
|
|
def get_task_info(self, obj):
|
|
return {"id": obj.task_id, "name": obj.task.name}
|