mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-23 17:08:41 -06:00
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:
parent
f1c182bb65
commit
53615944c5
@ -481,6 +481,11 @@ class ReportSerializer(serializers.Serializer):
|
|||||||
description = serializers.CharField(max_length=255, required=False)
|
description = serializers.CharField(max_length=255, required=False)
|
||||||
test_methods = serializers.ListField(child=serializers.CharField(max_length=255))
|
test_methods = serializers.ListField(child=serializers.CharField(max_length=255))
|
||||||
result = NestedJobSerializer()
|
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):
|
class ReportDetailSerializer(ReportSerializer):
|
||||||
@ -518,6 +523,7 @@ class ScriptSerializer(serializers.Serializer):
|
|||||||
description = serializers.CharField(read_only=True)
|
description = serializers.CharField(read_only=True)
|
||||||
vars = serializers.SerializerMethodField(read_only=True)
|
vars = serializers.SerializerMethodField(read_only=True)
|
||||||
result = NestedJobSerializer()
|
result = NestedJobSerializer()
|
||||||
|
display = serializers.SerializerMethodField(read_only=True)
|
||||||
|
|
||||||
@extend_schema_field(serializers.JSONField(allow_null=True))
|
@extend_schema_field(serializers.JSONField(allow_null=True))
|
||||||
def get_vars(self, instance):
|
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()
|
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):
|
class ScriptDetailSerializer(ScriptSerializer):
|
||||||
result = JobSerializer()
|
result = JobSerializer()
|
||||||
|
@ -243,7 +243,7 @@ class ReportViewSet(ViewSet):
|
|||||||
'request': request,
|
'request': request,
|
||||||
})
|
})
|
||||||
|
|
||||||
return Response(serializer.data)
|
return Response({'count': len(report_list), 'results': serializer.data})
|
||||||
|
|
||||||
def retrieve(self, request, pk):
|
def retrieve(self, request, pk):
|
||||||
"""
|
"""
|
||||||
@ -343,7 +343,7 @@ class ScriptViewSet(ViewSet):
|
|||||||
|
|
||||||
serializer = serializers.ScriptSerializer(script_list, many=True, context={'request': request})
|
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):
|
def retrieve(self, request, pk):
|
||||||
module, script = self._get_script(pk)
|
module, script = self._get_script(pk)
|
||||||
|
Loading…
Reference in New Issue
Block a user