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

1from rest_framework import serializers 

2 

3from . import models 

4 

5class ProjectSerializer(serializers.HyperlinkedModelSerializer): 

6 class Meta: 

7 model = models.Project 

8 fields = ['id', 'name', 'slug', 'description', 'details', 'workflow'] 

9 

10 

11class AttributeSerializer(serializers.ModelSerializer): 

12 class Meta: 

13 model = models.Attribute 

14 fields = ['id', 'key', ] 

15 

16 def to_representation(self, instance): 

17 return instance.value_dict() 

18 

19 

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 ] 

28 

29 

30class CharAttributeSerializer(AbstractAttributeSerializer): 

31 class Meta(AbstractAttributeSerializer.Meta): 

32 model = models.CharAttribute 

33 

34 

35class FloatAttributeSerializer(AbstractAttributeSerializer): 

36 class Meta(AbstractAttributeSerializer.Meta): 

37 model = models.FloatAttribute 

38 

39 

40class IntegerAttributeSerializer(AbstractAttributeSerializer): 

41 class Meta(AbstractAttributeSerializer.Meta): 

42 model = models.IntegerAttribute 

43 

44 

45class FilesizeAttributeSerializer(AbstractAttributeSerializer): 

46 class Meta(AbstractAttributeSerializer.Meta): 

47 model = models.FilesizeAttribute 

48 

49 

50class BooleanAttributeSerializer(AbstractAttributeSerializer): 

51 class Meta(AbstractAttributeSerializer.Meta): 

52 model = models.BooleanAttribute 

53 

54 

55class URLAttributeSerializer(AbstractAttributeSerializer): 

56 class Meta(AbstractAttributeSerializer.Meta): 

57 model = models.URLAttribute 

58 

59 

60class DateTimeAttributeSerializer(AbstractAttributeSerializer): 

61 class Meta(AbstractAttributeSerializer.Meta): 

62 model = models.DateTimeAttribute 

63 

64 

65class DateAttributeSerializer(AbstractAttributeSerializer): 

66 class Meta(AbstractAttributeSerializer.Meta): 

67 model = models.DateAttribute 

68 

69 

70class LatLongAttributeSerializer(AbstractAttributeSerializer): 

71 class Meta(AbstractAttributeSerializer.Meta): 

72 model = models.LatLongAttribute 

73 fields = [ 

74 "item", 

75 "key", 

76 "latitude", 

77 "longitude", 

78 ] 

79 

80 

81class ItemSerializer(serializers.HyperlinkedModelSerializer): 

82 parent = serializers.SlugRelatedField(slug_field='slug', queryset=models.Item.objects.all()) 

83 attributes = AttributeSerializer(many=True, required=False) 

84 

85 class Meta: 

86 model = models.Item 

87 fields = ['id', 'name', 'slug','parent', 'description', 'details', 'attributes'] 

88 

89 

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) 

94 

95 class Meta: 

96 model = models.Dataset 

97 fields = ['id', 'name', 'slug','parent', 'description', 'details', 'attributes', 'items', 'base_file_path'] 

98 

99 

100class DatasetReferenceSerializer(serializers.Serializer): 

101 project = serializers.CharField(max_length=255) 

102 dataset = serializers.CharField(max_length=255) 

103 

104 

105class StatusSerializer(serializers.ModelSerializer): 

106 dataset = serializers.PrimaryKeyRelatedField(queryset=models.Dataset.objects.all()) 

107 

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 ] 

132