2023-02-02 10:06:23 -05:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
2023-03-27 11:43:12 -04:00
|
|
|
from core.choices import JobStatusChoices
|
2023-02-02 10:06:23 -05:00
|
|
|
from core.models import *
|
2023-03-27 11:43:12 -04:00
|
|
|
from netbox.api.fields import ChoiceField
|
2023-02-02 10:06:23 -05:00
|
|
|
from netbox.api.serializers import WritableNestedSerializer
|
2023-03-27 11:43:12 -04:00
|
|
|
from users.api.nested_serializers import NestedUserSerializer
|
2023-02-02 10:06:23 -05:00
|
|
|
|
2023-03-27 11:43:12 -04:00
|
|
|
__all__ = (
|
2023-02-02 10:06:23 -05:00
|
|
|
'NestedDataFileSerializer',
|
|
|
|
'NestedDataSourceSerializer',
|
2023-03-27 11:43:12 -04:00
|
|
|
'NestedJobSerializer',
|
|
|
|
)
|
2023-02-02 10:06:23 -05:00
|
|
|
|
|
|
|
|
|
|
|
class NestedDataSourceSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='core-api:datasource-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DataSource
|
|
|
|
fields = ['id', 'url', 'display', 'name']
|
|
|
|
|
|
|
|
|
|
|
|
class NestedDataFileSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='core-api:datafile-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DataFile
|
|
|
|
fields = ['id', 'url', 'display', 'path']
|
2023-03-27 11:43:12 -04:00
|
|
|
|
|
|
|
|
|
|
|
class NestedJobSerializer(serializers.ModelSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='core-api:job-detail')
|
|
|
|
status = ChoiceField(choices=JobStatusChoices)
|
|
|
|
user = NestedUserSerializer(
|
|
|
|
read_only=True
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = Job
|
|
|
|
fields = ['url', 'created', 'completed', 'user', 'status']
|