add feature views to api and editor.js
This commit is contained in:
parent
0036b27057
commit
4b74eb0cf5
13 changed files with 216 additions and 178 deletions
45
src/c3nav/mapdata/serializers/features.py
Normal file
45
src/c3nav/mapdata/serializers/features.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from c3nav.mapdata.models.features import Inside, Room
|
||||
from c3nav.mapdata.serializers.fields import GeometryField
|
||||
|
||||
|
||||
class FeatureTypeSerializer(serializers.Serializer):
|
||||
name = serializers.SerializerMethodField()
|
||||
title = serializers.SerializerMethodField()
|
||||
title_plural = serializers.SerializerMethodField()
|
||||
endpoint = serializers.SerializerMethodField()
|
||||
geomtype = serializers.CharField()
|
||||
color = serializers.CharField()
|
||||
|
||||
def get_name(self, obj):
|
||||
return obj.__name__.lower()
|
||||
|
||||
def get_title(self, obj):
|
||||
return str(obj._meta.verbose_name)
|
||||
|
||||
def get_title_plural(self, obj):
|
||||
return str(obj._meta.verbose_name_plural)
|
||||
|
||||
def get_endpoint(self, obj):
|
||||
return obj._meta.default_related_name
|
||||
|
||||
|
||||
class InsideSerializer(serializers.ModelSerializer):
|
||||
level = serializers.SlugRelatedField(slug_field='name', read_only=True)
|
||||
package = serializers.SlugRelatedField(slug_field='name', read_only=True)
|
||||
geometry = GeometryField()
|
||||
|
||||
class Meta:
|
||||
model = Inside
|
||||
fields = ('name', 'level', 'package', 'geometry')
|
||||
|
||||
|
||||
class RoomSerializer(serializers.ModelSerializer):
|
||||
level = serializers.SlugRelatedField(slug_field='name', read_only=True)
|
||||
package = serializers.SlugRelatedField(slug_field='name', read_only=True)
|
||||
geometry = GeometryField()
|
||||
|
||||
class Meta:
|
||||
model = Room
|
||||
fields = ('name', 'level', 'package', 'geometry')
|
Loading…
Add table
Add a link
Reference in a new issue