Coverage for extras/api/serializers_/exporttemplates.py: 100%
16 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
2from core.models import ObjectType
3from extras.models import ExportTemplate
4from netbox.api.fields import ContentTypeField
5from netbox.api.serializers import ChangeLogMessageSerializer, ValidatedModelSerializer
6from users.api.serializers_.mixins import OwnerMixin
8__all__ = (
9 'ExportTemplateSerializer',
10)
13class ExportTemplateSerializer(OwnerMixin, ChangeLogMessageSerializer, ValidatedModelSerializer):
14 object_types = ContentTypeField(
15 queryset=ObjectType.objects.with_feature('export_templates'),
16 many=True
17 )
18 data_source = DataSourceSerializer(
19 nested=True,
20 required=False
21 )
22 data_file = DataFileSerializer(
23 nested=True,
24 required=False,
25 allow_null=True
26 )
28 class Meta:
29 model = ExportTemplate
30 fields = [
31 'id', 'url', 'display_url', 'display', 'object_types', 'name', 'description', 'environment_params',
32 'template_code', 'mime_type', 'file_name', 'file_extension', 'as_attachment', 'data_source',
33 'data_path', 'data_file', 'auto_sync_enabled', 'data_synced', 'owner', 'created', 'last_updated',
34 ]
35 brief_fields = ('id', 'url', 'display', 'name', 'description')
36 model_clean_fields = ('data_source', 'data_path', 'auto_sync_enabled', 'data_synced', 'template_code')