Adds standardized list API for scripts and reports (#13382)

* adds standardized list API for scripts and reports #13037

* adds standardized list API for scripts and reports #13037

* adds standardized list API for scripts and reports #13037

* adds module name to the display #13037
This commit is contained in:
Abhimanyu Saharan 2023-08-05 00:53:15 +05:30 committed by GitHub
parent f1c182bb65
commit 53615944c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

@ -481,6 +481,11 @@ class ReportSerializer(serializers.Serializer):
description = serializers.CharField(max_length=255, required=False)
test_methods = serializers.ListField(child=serializers.CharField(max_length=255))
result = NestedJobSerializer()
display = serializers.SerializerMethodField(read_only=True)
@extend_schema_field(serializers.CharField())
def get_display(self, obj):
return f'{obj.name} ({obj.module})'
class ReportDetailSerializer(ReportSerializer):
@ -518,6 +523,7 @@ class ScriptSerializer(serializers.Serializer):
description = serializers.CharField(read_only=True)
vars = serializers.SerializerMethodField(read_only=True)
result = NestedJobSerializer()
display = serializers.SerializerMethodField(read_only=True)
@extend_schema_field(serializers.JSONField(allow_null=True))
def get_vars(self, instance):
@ -525,6 +531,10 @@ class ScriptSerializer(serializers.Serializer):
k: v.__class__.__name__ for k, v in instance._get_vars().items()
}
@extend_schema_field(serializers.CharField())
def get_display(self, obj):
return f'{obj.name} ({obj.module})'
class ScriptDetailSerializer(ScriptSerializer):
result = JobSerializer()

View File

@ -243,7 +243,7 @@ class ReportViewSet(ViewSet):
'request': request,
})
return Response(serializer.data)
return Response({'count': len(report_list), 'results': serializer.data})
def retrieve(self, request, pk):
"""
@ -343,7 +343,7 @@ class ScriptViewSet(ViewSet):
serializer = serializers.ScriptSerializer(script_list, many=True, context={'request': request})
return Response(serializer.data)
return Response({'count': len(script_list), 'results': serializer.data})
def retrieve(self, request, pk):
module, script = self._get_script(pk)