Esempio n. 1
0
 def custom_response(self, status, content, content_key='content', status_code=200):
     resp = HttpResponse(content_type=self.content_type)
     resp.status_code = status_code
     json.dump({
         'status': status,
         content_key: content
     }, resp)
     return resp
Esempio n. 2
0
    def dispatch(self, request, *args, **kwargs):
        result = super(JSONView, self).dispatch(request, *args, **kwargs)
        indent_response = 4 if request.GET.get('indent') else None

        if isinstance(result, HttpResponse):
            return result
        resp = HttpResponse(content_type=self.content_type)
        callback = ''
        if self.allow_jsonp and 'callback' in request.GET:
            callback = re.sub(r'[^a-zA-Z0-9_]', '', request.GET['callback'])
            resp.write(callback + '(')
        json.dump({'status': 'ok', 'content': result}, resp, indent=indent_response)
        if callback:
            resp.write(');')

        if settings.DEBUG and 'html' in request.GET:
            resp = HttpResponse('<html><body>' + resp.content + '</body></html>')
        return resp
Esempio n. 3
0
def committee_list(request):
    committees = Committee.objects.filter(sessions=Session.objects.current(),
        parent__isnull=True, display=True)

    if request.GET.get('format') == 'json':
        # This is a one-off hack, to later be replaced by nicer general-purpose JSON code
        resp = HttpResponse(mimetype='application/json')
        json.dump(list(committees.order_by('name').values('name', 'slug')), resp)
        return resp

    recent_meetings = CommitteeMeeting.objects.order_by('-date')[:50]
    recent_studies = CommitteeActivity.objects.filter(
        study=True,
        committeemeeting__in=list(recent_meetings.values_list('id', flat=True))
    ).distinct()[:12]
    return render(request, "committees/committee_list.html", {
        'object_list': committees,
        'title': 'House Committees',
        'recent_studies': recent_studies
    })