API HTML preview – shorten less for outputs without geometry

This commit is contained in:
Laura Klünder 2017-05-12 13:26:18 +02:00
parent d9a451765c
commit 43a8d6f953

View file

@ -11,15 +11,16 @@ orig_render = JSONRenderer.render
def nicer_renderer(self, data, accepted_media_type=None, renderer_context=None):
if self.get_indent(accepted_media_type, renderer_context) is None:
return orig_render(self, data, accepted_media_type, renderer_context)
shorten = isinstance(data, (list, tuple)) and len(data) > 5
shorten_limit = 5 if 'geometry' in data[0] else 50
shorten = isinstance(data, (list, tuple)) and len(data) > shorten_limit
orig_len = None
if shorten:
orig_len = len(data)-5
data = data[:5]
remaining_len = len(data)-shorten_limit
data = data[:shorten_limit]
result = json_encoder_reindent(lambda d: orig_render(self, d, accepted_media_type, renderer_context), data)
if shorten:
result = (result[:-2] +
('\n ...%d more elements (truncated for HTML preview)...' % orig_len).encode() +
('\n ...%d more elements (truncated for HTML preview)...' % remaining_len).encode() +
result[-2:])
return result