-
Notifications
You must be signed in to change notification settings - Fork 76
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add more properties on POI JSON detail
- Loading branch information
Showing
5 changed files
with
147 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
from rest_framework import serializers as rest_serializers | ||
from django.core.urlresolvers import reverse | ||
|
||
from geotrek.core.models import AltimetryMixin | ||
|
||
|
||
class AltimetrySerializerMixin(rest_serializers.ModelSerializer): | ||
elevation_area_url = rest_serializers.SerializerMethodField('get_elevation_area_url') | ||
altimetric_profile = rest_serializers.SerializerMethodField('get_altimetric_profile_url') | ||
|
||
class Meta: | ||
fields = ('elevation_area_url', 'altimetric_profile') + \ | ||
tuple(AltimetryMixin.COLUMNS) | ||
|
||
def get_elevation_area_url(self, obj): | ||
return reverse('trekking:trek_elevation_area', kwargs={'pk': obj.pk}) | ||
|
||
def get_altimetric_profile_url(self, obj): | ||
return reverse('trekking:trek_profile', kwargs={'pk': obj.pk}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
from django.core.urlresolvers import reverse | ||
from django.db import models as django_db_models | ||
|
||
from rest_framework import serializers as rest_serializers | ||
from rest_framework import serializers as rest_fields | ||
|
||
|
||
class TranslatedModelSerializer(rest_serializers.ModelSerializer): | ||
def get_field(self, model_field): | ||
kwargs = {} | ||
if issubclass( | ||
model_field.__class__, | ||
(django_db_models.CharField, | ||
django_db_models.TextField)): | ||
if model_field.null: | ||
kwargs['allow_none'] = True | ||
kwargs['max_length'] = getattr(model_field, 'max_length') | ||
return rest_fields.CharField(**kwargs) | ||
return super(TranslatedModelSerializer, self).get_field(model_field) | ||
|
||
|
||
class PictogramSerializerMixin(rest_serializers.ModelSerializer): | ||
pictogram = rest_serializers.Field('get_pictogram_url') | ||
|
||
|
||
class PicturesSerializerMixin(rest_serializers.ModelSerializer): | ||
thumbnail = rest_serializers.Field(source='serializable_thumbnail') | ||
pictures = rest_serializers.Field(source='serializable_pictures') | ||
|
||
class Meta: | ||
fields = ('thumbnail', 'pictures',) | ||
|
||
|
||
class PublishableSerializerMixin(rest_serializers.ModelSerializer): | ||
slug = rest_serializers.Field(source='slug') | ||
published_status = rest_serializers.Field(source='published_status') | ||
|
||
map_image_url = rest_serializers.Field(source='map_image_url') | ||
printable = rest_serializers.SerializerMethodField('get_printable_url') | ||
filelist_url = rest_serializers.SerializerMethodField('get_filelist_url') | ||
|
||
def get_printable_url(self, obj): | ||
appname = obj._meta.app_label | ||
modelname = obj._meta.module_name | ||
return reverse('%s:%s_printable' % (appname, modelname), | ||
kwargs={'pk': obj.pk}) | ||
|
||
def get_filelist_url(self, obj): | ||
appname = obj._meta.app_label | ||
modelname = obj._meta.module_name | ||
return reverse('get_attachments', kwargs={'app_label': appname, | ||
'module_name': modelname, | ||
'pk': obj.pk}) | ||
|
||
class Meta: | ||
fields = ('name', 'slug', 'published', 'published_status', 'publication_date', | ||
'map_image_url', 'filelist_url', 'printable') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from rest_framework import serializers as rest_serializers | ||
|
||
from geotrek.zoning import models as zoning_models | ||
|
||
|
||
class CitySerializer(rest_serializers.ModelSerializer): | ||
|
||
class Meta: | ||
model = zoning_models.City | ||
fields = ('code', 'name') | ||
|
||
|
||
class DistrictSerializer(rest_serializers.ModelSerializer): | ||
|
||
class Meta: | ||
model = zoning_models.District | ||
fields = ('id', 'name') | ||
|
||
|
||
class RestrictedAreaSerializer(rest_serializers.ModelSerializer): | ||
type = rest_serializers.Field(source='area_type.name') | ||
|
||
class Meta: | ||
model = zoning_models.RestrictedArea | ||
fields = ('id', 'name', 'type') |