API: Expose the task file path as task.path

It was otherwise only available in the detailed task view as
task.file.path.

Change-Id: I47d7d2c140c7791fc7f6aa790564525a1abaca8f
This commit is contained in:
David Moreau Simard 2019-07-04 16:45:30 -04:00
parent cd5d3ca6e0
commit 967b2cac2f
No known key found for this signature in database
GPG Key ID: CBEB466764A9E621

@ -36,6 +36,17 @@ class ResultStatusSerializer(serializers.ModelSerializer):
return obj.status
class TaskPathSerializer(serializers.ModelSerializer):
class Meta:
abstract = True
path = serializers.SerializerMethodField()
@staticmethod
def get_path(obj):
return obj.file.path
class DurationSerializer(serializers.ModelSerializer):
class Meta:
abstract = True
@ -100,7 +111,7 @@ class SimplePlaySerializer(DurationSerializer, ItemCountSerializer):
exclude = ("uuid", "created", "updated")
class SimpleTaskSerializer(DurationSerializer, ItemCountSerializer):
class SimpleTaskSerializer(DurationSerializer, ItemCountSerializer, TaskPathSerializer):
class Meta:
model = models.Task
exclude = ("tags", "created", "updated")
@ -181,7 +192,7 @@ class NestedPlaybookPlaySerializer(DurationSerializer):
tasks = NestedPlaybookTaskSerializer(read_only=True, many=True)
class NestedPlayTaskSerializer(DurationSerializer):
class NestedPlayTaskSerializer(DurationSerializer, TaskPathSerializer):
class Meta:
model = models.Task
exclude = ("playbook", "play", "created", "updated")
@ -225,7 +236,7 @@ class DetailedPlaySerializer(DurationSerializer, ItemCountSerializer):
tasks = NestedPlayTaskSerializer(many=True, read_only=True, default=[])
class DetailedTaskSerializer(DurationSerializer, ItemCountSerializer):
class DetailedTaskSerializer(DurationSerializer, ItemCountSerializer, TaskPathSerializer):
class Meta:
model = models.Task
fields = "__all__"
@ -305,7 +316,7 @@ class ListPlaySerializer(DurationSerializer, ItemCountSerializer):
playbook = serializers.PrimaryKeyRelatedField(read_only=True)
class ListTaskSerializer(DurationSerializer, ItemCountSerializer):
class ListTaskSerializer(DurationSerializer, ItemCountSerializer, TaskPathSerializer):
class Meta:
model = models.Task
exclude = ("created", "updated")