You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

reports.py 969B

123456789101112131415161718192021222324252627
  1. from django.utils.translation import ugettext_lazy as _
  2. from oscar.core.loading import get_class
  3. ReportCSVFormatter = get_class(
  4. 'dashboard.reports.reports', 'ReportCSVFormatter')
  5. class OrderDiscountCSVFormatter(ReportCSVFormatter):
  6. filename_template = 'order-discounts-for-offer-%s.csv'
  7. def generate_csv(self, response, order_discounts):
  8. writer = self.get_csv_writer(response)
  9. header_row = [_('Order number'),
  10. _('Order date'),
  11. _('Order total'),
  12. _('Cost')]
  13. writer.writerow(header_row)
  14. for order_discount in order_discounts:
  15. order = order_discount.order
  16. row = [order.number,
  17. self.format_datetime(order.date_placed),
  18. order.total_incl_tax,
  19. order_discount.amount]
  20. writer.writerow(row)
  21. def filename(self, offer):
  22. return self.filename_template % offer.id