mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-15 02:33:13 +00:00
Simplified handling of show_details flag in serializers
This commit is contained in:
parent
b4d0a6aded
commit
2d691cd6e7
1 changed files with 11 additions and 13 deletions
|
|
@ -103,15 +103,13 @@ class WagtailSerializer(serializers.BaseSerializer):
|
|||
def to_representation(self, instance):
|
||||
fields = self.context.get('fields', frozenset())
|
||||
all_fields = self.context.get('all_fields', False)
|
||||
show_details = self.context.get('show_details', False)
|
||||
return self.serialize_object(
|
||||
instance,
|
||||
fields=fields,
|
||||
all_fields=all_fields,
|
||||
show_details=show_details
|
||||
)
|
||||
|
||||
def serialize_object_metadata(self, obj, show_details=False):
|
||||
def serialize_object_metadata(self, obj):
|
||||
"""
|
||||
This returns a JSON-serialisable dict to use for the "meta"
|
||||
section of a particlular object.
|
||||
|
|
@ -124,7 +122,7 @@ class WagtailSerializer(serializers.BaseSerializer):
|
|||
|
||||
return data
|
||||
|
||||
def serialize_object(self, obj, fields=frozenset(), extra_data=(), all_fields=False, show_details=False):
|
||||
def serialize_object(self, obj, fields=frozenset(), extra_data=(), all_fields=False):
|
||||
"""
|
||||
This converts an object into JSON-serialisable dict so it can
|
||||
be used in the API.
|
||||
|
|
@ -134,7 +132,7 @@ class WagtailSerializer(serializers.BaseSerializer):
|
|||
]
|
||||
|
||||
# Add meta
|
||||
metadata = self.serialize_object_metadata(obj, show_details=show_details)
|
||||
metadata = self.serialize_object_metadata(obj)
|
||||
if metadata:
|
||||
data.append(('meta', metadata))
|
||||
|
||||
|
|
@ -165,17 +163,17 @@ class WagtailSerializer(serializers.BaseSerializer):
|
|||
|
||||
|
||||
class PageSerializer(WagtailSerializer):
|
||||
def serialize_object_metadata(self, page, show_details=False):
|
||||
data = super(PageSerializer, self).serialize_object_metadata(page, show_details=show_details)
|
||||
def serialize_object_metadata(self, page):
|
||||
data = super(PageSerializer, self).serialize_object_metadata(page)
|
||||
|
||||
# Add type
|
||||
data['type'] = page.specific_class._meta.app_label + '.' + page.specific_class.__name__
|
||||
|
||||
return data
|
||||
|
||||
def serialize_object(self, page, fields=frozenset(), extra_data=(), all_fields=False, show_details=False):
|
||||
def serialize_object(self, page, fields=frozenset(), extra_data=(), all_fields=False):
|
||||
# Add parent
|
||||
if show_details:
|
||||
if self.context.get('show_details', False):
|
||||
parent = page.get_parent()
|
||||
|
||||
site_pages = pages_for_site(self.context['request'].site)
|
||||
|
|
@ -192,15 +190,15 @@ class PageSerializer(WagtailSerializer):
|
|||
])),
|
||||
)
|
||||
|
||||
return super(PageSerializer, self).serialize_object(page, fields=fields, extra_data=extra_data, all_fields=all_fields, show_details=show_details)
|
||||
return super(PageSerializer, self).serialize_object(page, fields=fields, extra_data=extra_data, all_fields=all_fields)
|
||||
|
||||
|
||||
class DocumentSerializer(WagtailSerializer):
|
||||
def serialize_object_metadata(self, document, show_details=False):
|
||||
data = super(DocumentSerializer, self).serialize_object_metadata(document, show_details=show_details)
|
||||
def serialize_object_metadata(self, document):
|
||||
data = super(DocumentSerializer, self).serialize_object_metadata(document)
|
||||
|
||||
# Download URL
|
||||
if show_details:
|
||||
if self.context.get('show_details', False):
|
||||
data['download_url'] = URLPath(document.url)
|
||||
|
||||
return data
|
||||
|
|
|
|||
Loading…
Reference in a new issue