[PATCH 2/2] Revert "api: Only provide JSON version of events list"

Daniel Axtens dja at axtens.net
Sat May 12 02:46:23 AEST 2018


Stephen Finucane <stephen at that.guru> writes:

> This reverts commit 90d9ee14e73e8ec9248e89c788d64867c4a4bb74.
>
> The root cause of this performance issue was not the use of the
> JSONRenderer but rather the population of filter forms. The latter is
> now disabled, meaning we can start using the original renderer.
>
> Signed-off-by: Stephen Finucane <stephen at that.guru>
> Cc: Daniel Axtens <dja at axtens.net>
Acked-by: Daniel Axtens <dja at axtens.net>

I have applied the series; thanks so much for following this up.

Regards,
Daniel
> ---
>  patchwork/api/event.py                        | 15 ---------------
>  patchwork/templates/patchwork/event-list.html | 17 -----------------
>  2 files changed, 32 deletions(-)
>  delete mode 100644 patchwork/templates/patchwork/event-list.html
>
> diff --git a/patchwork/api/event.py b/patchwork/api/event.py
> index b6626ec7..cce25a75 100644
> --- a/patchwork/api/event.py
> +++ b/patchwork/api/event.py
> @@ -18,13 +18,10 @@
>  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
>  
>  from collections import OrderedDict
> -import json
>  
>  from rest_framework.generics import ListAPIView
>  from rest_framework.serializers import ModelSerializer
>  from rest_framework.serializers import SerializerMethodField
> -from rest_framework.renderers import JSONRenderer
> -from rest_framework.renderers import TemplateHTMLRenderer
>  
>  from patchwork.api.embedded import CheckSerializer
>  from patchwork.api.embedded import CoverLetterSerializer
> @@ -88,21 +85,9 @@ class EventSerializer(ModelSerializer):
>          read_only_fields = fields
>  
>  
> -# The standard template html renderer is broken:
> -# https://github.com/encode/django-rest-framework/issues/5236
> -class JSONListHTMLRenderer(TemplateHTMLRenderer):
> -    def get_template_context(self, data, renderer_context):
> -        response = renderer_context['response']
> -        if response.exception:
> -            data['status_code'] = response.status_code
> -        return {'data': json.dumps(data, indent=4)}
> -
> -
>  class EventList(ListAPIView):
>      """List events."""
>  
> -    renderer_classes = (JSONRenderer, JSONListHTMLRenderer)
> -    template_name = 'patchwork/event-list.html'
>      serializer_class = EventSerializer
>      filter_class = EventFilterSet
>      page_size_query_param = None  # fixed page size
> diff --git a/patchwork/templates/patchwork/event-list.html b/patchwork/templates/patchwork/event-list.html
> deleted file mode 100644
> index 821c6897..00000000
> --- a/patchwork/templates/patchwork/event-list.html
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -{% extends "base.html" %}
> -
> -{% load person %}
> -{% load static %}
> -
> -{% block title %}Event List{% endblock %}
> -{% block patch_active %}active{% endblock %}
> -
> -{% block body %}
> -
> -<p>Due to a currently undiagnosed issue with django-rest-framework, the browsable API is very CPU intensive and has been disabled. The JSON output is:</p>
> -
> -<pre>
> -{{data}}
> -</pre>
> -
> -{% endblock %}
> -- 
> 2.14.3


More information about the Patchwork mailing list