Coverage for crunch/django/app/serializers.py: 100.00%
65 statements
« prev ^ index » next coverage.py v6.5.0, created at 2023-10-01 13:43 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2023-10-01 13:43 +0000
1from rest_framework import serializers
3from . import models
5class ProjectSerializer(serializers.HyperlinkedModelSerializer):
6 class Meta:
7 model = models.Project
8 fields = ['id', 'name', 'slug', 'description', 'details', 'workflow']
11class AttributeSerializer(serializers.ModelSerializer):
12 class Meta:
13 model = models.Attribute
14 fields = ['id', 'key', ]
16 def to_representation(self, instance):
17 return instance.value_dict()
20class AbstractAttributeSerializer(serializers.ModelSerializer):
21 item = serializers.SlugRelatedField(slug_field='slug', queryset=models.Item.objects.all())
22 class Meta:
23 fields = [
24 "item",
25 "key",
26 "value",
27 ]
30class CharAttributeSerializer(AbstractAttributeSerializer):
31 class Meta(AbstractAttributeSerializer.Meta):
32 model = models.CharAttribute
35class FloatAttributeSerializer(AbstractAttributeSerializer):
36 class Meta(AbstractAttributeSerializer.Meta):
37 model = models.FloatAttribute
40class IntegerAttributeSerializer(AbstractAttributeSerializer):
41 class Meta(AbstractAttributeSerializer.Meta):
42 model = models.IntegerAttribute
45class FilesizeAttributeSerializer(AbstractAttributeSerializer):
46 class Meta(AbstractAttributeSerializer.Meta):
47 model = models.FilesizeAttribute
50class BooleanAttributeSerializer(AbstractAttributeSerializer):
51 class Meta(AbstractAttributeSerializer.Meta):
52 model = models.BooleanAttribute
55class URLAttributeSerializer(AbstractAttributeSerializer):
56 class Meta(AbstractAttributeSerializer.Meta):
57 model = models.URLAttribute
60class DateTimeAttributeSerializer(AbstractAttributeSerializer):
61 class Meta(AbstractAttributeSerializer.Meta):
62 model = models.DateTimeAttribute
65class DateAttributeSerializer(AbstractAttributeSerializer):
66 class Meta(AbstractAttributeSerializer.Meta):
67 model = models.DateAttribute
70class LatLongAttributeSerializer(AbstractAttributeSerializer):
71 class Meta(AbstractAttributeSerializer.Meta):
72 model = models.LatLongAttribute
73 fields = [
74 "item",
75 "key",
76 "latitude",
77 "longitude",
78 ]
81class ItemSerializer(serializers.HyperlinkedModelSerializer):
82 parent = serializers.SlugRelatedField(slug_field='slug', queryset=models.Item.objects.all())
83 attributes = AttributeSerializer(many=True, required=False)
85 class Meta:
86 model = models.Item
87 fields = ['id', 'name', 'slug','parent', 'description', 'details', 'attributes']
90class DatasetSerializer(serializers.HyperlinkedModelSerializer):
91 parent = serializers.SlugRelatedField(slug_field='slug', queryset=models.Project.objects.all())
92 attributes = AttributeSerializer(many=True, required=False)
93 items = ItemSerializer(many=True, required=False)
95 class Meta:
96 model = models.Dataset
97 fields = ['id', 'name', 'slug','parent', 'description', 'details', 'attributes', 'items', 'base_file_path']
100class DatasetReferenceSerializer(serializers.Serializer):
101 project = serializers.CharField(max_length=255)
102 dataset = serializers.CharField(max_length=255)
105class StatusSerializer(serializers.ModelSerializer):
106 dataset = serializers.PrimaryKeyRelatedField(queryset=models.Dataset.objects.all())
108 class Meta:
109 model = models.Status
110 fields = [
111 "id",
112 "dataset",
113 "site_user",
114 "stage",
115 "state",
116 "note",
117 "agent_user",
118 "version",
119 "revision",
120 "system",
121 "system_release",
122 "system_version",
123 "machine",
124 "hostname",
125 "ip_address",
126 "mac_address",
127 "memory_total",
128 "memory_free",
129 "disk_total",
130 "disk_free",
131 ]