Coverage for shps/api_serializers.py: 100%
27 statements
« prev ^ index » next coverage.py v7.6.0, created at 2024-07-27 11:19 +0000
« prev ^ index » next coverage.py v7.6.0, created at 2024-07-27 11:19 +0000
1from rest_framework import serializers
2from .serializer_base import LinkedPastsSerializer
3from .models import TempSpatial, Source
6class SimpleSerializer(serializers.HyperlinkedModelSerializer):
7 """A class to serialize TempSpatial objects without GIS data points"""
9 source_name = serializers.CharField(source="source.name")
10 adm_name = serializers.CharField(source="administrative_unit.pref_label")
11 spatial_extent_sqm = serializers.ReadOnlyField(source="sq_km")
12 slugged_name = serializers.ReadOnlyField(source="slug_name")
13 title = serializers.ReadOnlyField(source="name")
15 class Meta:
16 model = TempSpatial
17 fields = (
18 "id",
19 "url",
20 "wikidata_id",
21 "title",
22 "alt_name",
23 "source",
24 "source_name",
25 "administrative_unit",
26 "adm_name",
27 "start_date",
28 "end_date",
29 "date_accuracy",
30 "spatial_extent_sqm",
31 "slugged_name",
32 )
35class SourceSerializer(serializers.HyperlinkedModelSerializer):
36 """A class to serialize Source objects as JSON compatible data"""
38 class Meta:
39 model = Source
40 fields = (
41 "name",
42 "description",
43 "quote",
44 "original_url",
45 )
48class TempSpatialSerializer(
49 LinkedPastsSerializer, serializers.HyperlinkedModelSerializer
50):
51 """A class to serialize TempSpatial objects as GeoJSON compatible data"""
53 source_name = serializers.CharField(source="source.name")
54 adm_name = serializers.CharField(source="administrative_unit.pref_label")
55 spatial_extent_sqm = serializers.ReadOnlyField(source="sq_km")
56 slugged_name = serializers.ReadOnlyField(source="slug_name")
57 title = serializers.ReadOnlyField(source="name")
59 class Meta:
60 model = TempSpatial
61 geo_field = "geom"
62 fields = (
63 "id",
64 "wikidata_id",
65 "title",
66 "name",
67 "alt_name",
68 "source",
69 "source_name",
70 "administrative_unit",
71 "adm_name",
72 "start_date",
73 "end_date",
74 "date_accuracy",
75 "spatial_extent",
76 "spatial_extent_sqm",
77 "slugged_name",
78 )
79 auto_bbox = True