def get(self, request, *args, **kwargs): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="vendors.csv"' writer = csv.writer(response) writer.writerow(('GSA Discovery vendor research results', )) writer.writerow(('URL: ' + self.request.build_absolute_uri(), )) writer.writerow(('Time: ' + time.strftime('%b %d, %Y %l:%M%p %Z'), )) writer.writerow(('', )) self._process_keywords(writer) self._process_naics(writer) self._process_psc(writer) self._process_vehicles(writer) self._process_pools(writer) self._process_setasides(writer) self._process_zones(writer) self._process_memberships(writer) self._process_agencies(writer) self._process_amount(writer) self._process_countries(writer) self._process_states(writer) self._render_vendors(writer) track_page_load(request) return response
def values(self, request, *args, **kwargs): field_lookup = kwargs['field_lookup'] queryset = self.filter_queryset( self.get_queryset().order_by(field_lookup)) values = [] for value in queryset.values_list(field_lookup, flat=True): if value is not None: if isinstance(value, (datetime, date)): value = value.isoformat() if value.endswith('+00:00'): value = value[:-6] + 'Z' values.append(value) track_page_load(request) return Response( OrderedDict([('count', len(values)), ('results', values)]))
def count(self, request, *args, **kwargs): field_lookup = kwargs['field_lookup'] queryset = self.filter_queryset(self.get_queryset()) track_page_load(request) return Response({'count': queryset.values_list(field_lookup).count()})
def retrieve(self, request, *args, **kwargs): track_page_load(request) return super(DiscoveryReadOnlyModelViewSet, self).retrieve(request, *args, **kwargs)