Skip to content

Commit

Permalink
Added some more fields to API event feed:
Browse files Browse the repository at this point in the history
 - organiser details (embedded)
 - Audience
 - Booking status
 - Booking url
 - Booking cost
 - Special message
  • Loading branch information
ahaith committed Jan 15, 2016
1 parent 0ac06bf commit 95e3f55
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions talks/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,20 +140,23 @@ def to_representation(self, instance):

class EventEmbedsSerializer(serializers.ModelSerializer):
speakers = EmbeddedSpeakerSerializer(many=True, read_only=True)
organisers = EmbeddedSpeakerSerializer(many=True, read_only=True)
venue = EmbeddedOxpointsSerializer(source='api_location', read_only=True)
organising_department = EmbeddedOxpointsSerializer(source='api_organisation', read_only=True)
topics = EmbeddedTopicSerializer(source='api_topics', many=True, read_only=True)

class Meta:
model = Event
fields = ('speakers', 'venue', 'organising_department', 'topics')
fields = ('speakers', 'organisers', 'venue', 'organising_department', 'topics')


class HALEventSerializer(serializers.ModelSerializer):
_links = serializers.SerializerMethodField(method_name='get_links')
_embedded = EventEmbedsSerializer(source='*', read_only=True)

location_summary = serializers.SerializerMethodField()
audience = serializers.SerializerMethodField()
booking_required = serializers.SerializerMethodField()
series = serializers.SerializerMethodField()
organiser_email = serializers.CharField(read_only=True)

Expand All @@ -173,14 +176,20 @@ def get_location_summary(self, obj):
return summary
return None

def get_audience(self, obj):
return obj.get_audience_display();

def get_booking_required(self, obj):
return obj.get_booking_type_display();

def get_series(self, obj):
if obj.group:
return { 'title': obj.group.title, 'slug': obj.group.slug }
return None

class Meta:
model = Event
fields = ('_links', 'title_display', 'slug', 'start', 'end', 'formatted_date', 'formatted_time', 'description', 'location_details', 'location_summary', 'series', '_embedded', 'organiser_email')
fields = ('_links', 'title_display', 'slug', 'start', 'end', 'formatted_date', 'formatted_time', 'description', 'audience', 'booking_required', 'booking_url', 'booking_email', 'cost', 'location_details', 'location_summary', 'series', 'organiser_email', 'special_message', '_embedded')


class SearchResultEmbedsSerializer(serializers.Serializer):
Expand Down

0 comments on commit 95e3f55

Please sign in to comment.