Exemple #1
0
    def download_selected_searchrequests(self, request, searchrequests):
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename=%s' \
            % self.get_download_filename(request)
        writer = CsvUnicodeWriter(response, delimiter=',')

        meta_data = (('id', _('Search request number')),
                     ('num_items', _('Number of items')),
                     ('state', _('Status')),
                     ('owner', _('Owner')),
                     ('creation_date', _('Creation date')),
                     )
        columns = SortedDict()
        for k, v in meta_data:
            columns[k] = v

        writer.writerow(columns.values())
        for searchrequest in searchrequests:
            row = columns.copy()
            row['id'] = searchrequest.id
            row['creation_date'] = format_datetime(searchrequest.date_created, 'DATETIME_FORMAT')
            row['state'] = searchrequest.state
            row['num_items'] = searchrequest.num_items
            row['owner'] = searchrequest.owner.email

            encoded_values = [six.text_type(value).encode('utf8')
                              for value in row.values()]
            writer.writerow(encoded_values)
        return response
Exemple #2
0
    def download_selected_quotes(self, request, quotes):
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename=%s' \
            % self.get_download_filename(request)
        writer = CsvUnicodeWriter(response, delimiter=',')

        meta_data = (('id', _('Quote number')),
                     ('search_request', _('Search request')),
                     ('state', _('Status')),
                     ('owner', _('Owner')),
                     ('date_created', _('Creation date')),
                     ('base_total_excl_tax', _('Base total (excl tax)')),
                     ('base_total_incl_tax', _('Base total (inc tax)')),
                     ('shipping_total_excl_tax', _('Shipping total (excl tax)')),
                     ('shipping_total_inc_tax', _('Shipping total (incl tax)')),
                     ('grand_total_excl_tax', _('Grand total (excl tax)')),
                     ('grand_total_inc_tax', _('Grand total (incl tax)')),
                     ('warranty_days', _('Warranty days')),
                     ('shipping_days', _('Shipping days')),
                     )
        columns = SortedDict()
        for k, v in meta_data:
            columns[k] = v

        writer.writerow(columns.values())
        for quote in quotes:
            row = columns.copy()
            row['id'] = quote.id
            row['search_request'] = quote.search_request
            row['state'] = quote.state
            row['owner'] = quote.owner.email

            row['date_created'] = format_datetime(quote.date_created, 'DATETIME_FORMAT')
            row['date_updated'] = format_datetime(quote.date_updated, 'DATETIME_FORMAT')
            row['base_total_excl_tax'] = quote.base_total_excl_tax
            row['base_total_incl_tax'] = quote.base_total_incl_tax
            row['shipping_total_excl_tax'] = quote.shipping_total_excl_tax
            row['shipping_total_incl_tax'] = quote.shipping_total_incl_tax
            row['grand_total_excl_tax'] = quote.grand_total_excl_tax
            row['grand_total_incl_tax'] = quote.grand_total_incl_tax
            row['warranty_days'] = quote.warranty_days
            row['shipping_days'] = quote.shipping_days

            encoded_values = [six.text_type(value).encode('utf8')
                              for value in row.values()]
            writer.writerow(encoded_values)
        return response
Exemple #3
0
    def test_(self):
        s = u'ünįcodē'

        class unicodeobj(object):
            def __unicode__(self):
                return s

        rows = [[
            s, s.encode('utf-8'),
            unicodeobj(), 123,
            datetime.date.today()
        ]]
        f = StringIO.StringIO()
        CsvUnicodeWriter(f).writerows(rows)
        f.seek(0)
        self.assertEqual(
            f.read().decode('utf-8-sig').strip(), u','.join(
                (s, s, s, u'123', unicode(datetime.date.today()))))
        f = StringIO.StringIO()
        self.assertRaises(TypeError, CsvUnicodeWriter(f).writerows, [object()])
Exemple #4
0
    def download_selected_orders(self, request, orders):
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename=%s' \
            % self.get_download_filename(request)
        writer = CsvUnicodeWriter(response, delimiter=',')

        meta_data = (('number', _('Order number')),
                     ('value', _('Order value')),
                     ('date', _('Date of purchase')),
                     ('num_items', _('Number of items')),
                     ('status', _('Order status')),
                     ('customer', _('Customer email address')),
                     ('shipping_address_name', _('Deliver to name')),
                     ('billing_address_name', _('Bill to name')),
                     )
        columns = SortedDict()
        for k, v in meta_data:
            columns[k] = v

        writer.writerow(columns.values())
        for order in orders:
            row = columns.copy()
            row['number'] = order.number
            row['value'] = order.total_incl_tax
            row['date'] = format_datetime(order.date_placed, 'DATETIME_FORMAT')
            row['num_items'] = order.num_items
            row['status'] = order.status
            row['customer'] = order.email
            if order.shipping_address:
                row['shipping_address_name'] = order.shipping_address.name
            else:
                row['shipping_address_name'] = ''
            if order.billing_address:
                row['billing_address_name'] = order.billing_address.name
            else:
                row['billing_address_name'] = ''

            encoded_values = [six.text_type(value).encode('utf8')
                              for value in row.values()]
            writer.writerow(encoded_values)
        return response
Exemple #5
0
    def download_selected_orders(self, request, orders):
        response = HttpResponse(mimetype='text/csv')
        response[
            'Content-Disposition'] = 'attachment; filename=%s' % self.get_download_filename(
                request)
        writer = CsvUnicodeWriter(response, delimiter=',')

        meta_data = (
            ('number', _('Order number')),
            ('value', _('Order value')),
            ('date', _('Date of purchase')),
            ('num_items', _('Number of items')),
            ('status', _('Order status')),
            ('customer', _('Customer email address')),
            ('shipping_address', _('Shipping address')),
            ('billing_address', _('Billing address')),
        )
        columns = SortedDict()
        for k, v in meta_data:
            columns[k] = v

        writer.writerow(columns.values())
        for order in orders:
            row = columns.copy()
            row['number'] = order.number
            row['value'] = order.total_incl_tax
            row['date'] = format_date(order.date_placed, 'DATETIME_FORMAT')
            row['num_items'] = order.num_items
            row['status'] = order.status
            row['customer'] = order.email

            if order.shipping_address:
                row['shipping_address'] = order.shipping_address
            else:
                row['shipping_address'] = ''
            if order.billing_address:
                row['billing_address'] = order.billing_address
            else:
                row['billing_address'] = ''

            encoded_values = [
                unicode(value).encode('utf8') for value in row.values()
            ]
            writer.writerow(encoded_values)
        return response
Exemple #6
0
 def get_csv_writer(self, file_handle, **kwargs):
     return CsvUnicodeWriter(file_handle, **kwargs)