class BrkGeoLocationSerializer(serializers.Serializer): extent = serializers.ListSerializer(child=serializers.FloatField()) appartementen = BrkAppartementenSerializer(many=True) eigenpercelen = fields.GeometryField() niet_eigenpercelen = fields.GeometryField() class Meta: inlcude_fields = ('extent', 'appartementen', 'eigenpercelen', 'niet_eigenpercelen')
class DataResourceSerializer(serializers.ModelSerializer): metadata = ResourceMetadataSerializer(many=True, required=False, read_only=True) #driver_config = hstore_fields.HStoreField(required=False) #metadata_properties = hstore_fields.HStoreField(required=False) last_change = fields.DateTimeField(required=False, read_only=True) last_refresh = fields.DateTimeField(required=False, read_only=True) next_refresh = fields.DateTimeField(required=False, read_only=True) bounding_box = gis_fields.GeometryField(required=False, read_only=True) import_log = fields.CharField(required=False, read_only=True) url = serializers.HyperlinkedIdentityField(view_name='data-resource-detail', lookup_field='slug') associated_pages = PageShortSerializer(many=True) class Meta: model = models.DataResource fields = ( 'url', 'title', 'slug', 'metadata', 'original_file', 'resource_url', 'metadata_url', 'metadata_xml', #'driver_config', #'metadata_properties', 'last_change', 'last_refresh', 'next_refresh', 'refresh_every', 'md5sum', 'bounding_box', 'import_log', 'id', 'associated_pages', )
class DiveGeojsonSerializer(GeoFeatureModelSerializer, DiveSerializer): # Annotated geom field with API_SRID api_geom = rest_gis_fields.GeometryField(read_only=True, precision=7) class Meta(DiveSerializer.Meta): geo_field = 'api_geom' fields = DiveSerializer.Meta.fields + ('api_geom', )
class TouristicContentGeojsonSerializer(GeoFeatureModelSerializer, TouristicContentSerializer): # Annotated geom field with API_SRID api_geom = rest_gis_fields.GeometryField(read_only=True, precision=7) class Meta(TouristicContentSerializer.Meta): geo_field = 'api_geom' fields = TouristicContentSerializer.Meta.fields + ('api_geom', )
class BrkAppartementenSerializer(serializers.Serializer): aantal = serializers.IntegerField() geometrie = fields.GeometryField() class Meta: model = geo_models.Appartementen inlcude_fields = ('aantal', 'geometrie')
class PanoSerializer(HALSerializer): # Content for _links in HAL-json: serializer_url_field = PanoLinksField equirectangular_full = HyperLinksField() equirectangular_medium = HyperLinksField() equirectangular_small = HyperLinksField() cubic_img_preview = HyperLinksField() thumbnail = IdentityLinksField(view_name='thumbnail-detail', lookup_field='pano_id', format='html', read_only=True) adjacencies = IdentityLinksField(view_name='panoramas-adjacencies', lookup_field='pano_id', format='html', read_only=True) # Additional regular attributes: cubic_img_baseurl = serializers.ReadOnlyField() cubic_img_pattern = serializers.ReadOnlyField() geometry = fields.GeometryField(source='geolocation') class Meta(HALSerializer.Meta): model = Panoramas listresults_field = 'panoramas' list_serializer_class = HALListSerializer exclude = ('path', 'geolocation', '_geolocation_2d', '_geolocation_2d_rd', 'status', 'status_changed')
def __init__(self, *args, **kwargs): # Instantiate the superclass normally super(ResourceBaseSerializer, self).__init__(*args, **kwargs) self.fields['pk'] = serializers.CharField(read_only=True) self.fields['uuid'] = serializers.CharField(read_only=True) self.fields['resource_type'] = serializers.CharField(read_only=True) self.fields['polymorphic_ctype_id'] = serializers.CharField(read_only=True) self.fields['owner'] = DynamicRelationField(UserSerializer, embed=True, many=False, read_only=True) self.fields['poc'] = ContactRoleField('poc', read_only=True) self.fields['metadata_author'] = ContactRoleField('metadata_author', read_only=True) self.fields['title'] = serializers.CharField() self.fields['abstract'] = serializers.CharField() self.fields['attribution'] = serializers.CharField() self.fields['doi'] = serializers.CharField() self.fields['alternate'] = serializers.CharField(read_only=True) self.fields['date'] = serializers.DateTimeField() self.fields['date_type'] = serializers.CharField() self.fields['temporal_extent_start'] = serializers.DateTimeField() self.fields['temporal_extent_end'] = serializers.DateTimeField() self.fields['edition'] = serializers.CharField() self.fields['purpose'] = serializers.CharField() self.fields['maintenance_frequency'] = serializers.CharField() self.fields['constraints_other'] = serializers.CharField() self.fields['language'] = serializers.CharField() self.fields['supplemental_information'] = serializers.CharField() self.fields['data_quality_statement'] = serializers.CharField() self.fields['bbox_polygon'] = fields.GeometryField() self.fields['srid'] = serializers.CharField() self.fields['group'] = DynamicRelationField(GroupSerializer, embed=True, many=False) self.fields['popular_count'] = serializers.CharField() self.fields['share_count'] = serializers.CharField() self.fields['rating'] = serializers.CharField() self.fields['featured'] = serializers.BooleanField() self.fields['is_published'] = serializers.BooleanField() self.fields['is_approved'] = serializers.BooleanField() self.fields['detail_url'] = serializers.CharField(read_only=True) self.fields['created'] = serializers.DateTimeField(read_only=True) self.fields['last_updated'] = serializers.DateTimeField(read_only=True) self.fields['raw_abstract'] = serializers.CharField(read_only=True) self.fields['raw_purpose'] = serializers.CharField(read_only=True) self.fields['raw_constraints_other'] = serializers.CharField(read_only=True) self.fields['raw_supplemental_information'] = serializers.CharField(read_only=True) self.fields['raw_data_quality_statement'] = serializers.CharField(read_only=True) self.fields['embed_url'] = EmbedUrlField() self.fields['thumbnail_url'] = ThumbnailUrlField() self.fields['keywords'] = DynamicRelationField( HierarchicalKeywordSerializer, embed=False, many=True) self.fields['regions'] = DynamicRelationField( RegionSerializer, embed=True, many=True, read_only=True) self.fields['category'] = DynamicRelationField( TopicCategorySerializer, embed=True, many=False) self.fields['restriction_code_type'] = DynamicRelationField( RestrictionCodeTypeSerializer, embed=True, many=False) self.fields['license'] = DynamicRelationField( LicenseSerializer, embed=True, many=False) self.fields['spatial_representation_type'] = DynamicRelationField( SpatialRepresentationTypeSerializer, embed=True, many=False)
class SensitiveAreaGeojsonSerializer(GeoFeatureModelSerializer, SensitiveAreaSerializer): # Annotated geom field with API_SRID geom2d_transformed = rest_gis_fields.GeometryField(read_only=True, precision=7) class Meta(SensitiveAreaSerializer.Meta): geo_field = 'geom2d_transformed' fields = SensitiveAreaSerializer.Meta.fields + ('geom2d_transformed', )