def download_report(request, report_id=None): """Downloads a report.""" if not report_exists(report_id): raise Http404 report = get_report_by_id(report_id, request.user) return create_csv_response(report.rows(), report.field_titles, report.get_filename())
def post(self, request, format=None): """Performs search and returns CSV file.""" validated_data = self.validate_data(request.data) es_query = self._get_opensearch_query(request, validated_data) ids = tuple(self._get_ids(es_query)) db_queryset = self._get_rows(ids, validated_data['sortby']) base_filename = self._get_base_filename() user_event_data = { 'num_results': len(ids), 'args': validated_data, } record_user_event(request, UserEventType.SEARCH_EXPORT, data=user_event_data) return create_csv_response(db_queryset, self.field_titles, base_filename)