コード例 #1
0
    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
コード例 #2
0
    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)]))
コード例 #3
0
    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()})
コード例 #4
0
 def retrieve(self, request, *args, **kwargs):
     track_page_load(request)
     return super(DiscoveryReadOnlyModelViewSet,
                  self).retrieve(request, *args, **kwargs)