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

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 

7 

8__all__ = ( 

9 'ExportTemplateSerializer', 

10) 

11 

12 

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 ) 

27 

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')