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 796B

1234567891011121314151617181920212223242526
  1. import csv
  2. from oscar.core.loading import import_module
  3. import_module('dashboard.reports.reports', ['ReportGenerator'], locals())
  4. import_module('offer.models', ['ConditionalOffer'], locals())
  5. class OfferReportGenerator(ReportGenerator):
  6. filename_template = 'conditional-offer-performance.csv'
  7. code = 'conditional-offers'
  8. description = 'Offer performance'
  9. def generate(self, response):
  10. writer = csv.writer(response)
  11. header_row = ['Offer',
  12. 'Total discount',
  13. ]
  14. writer.writerow(header_row)
  15. for offer in ConditionalOffer._default_manager.all():
  16. row = [offer, offer.total_discount]
  17. writer.writerow(row)
  18. def filename(self):
  19. return self.filename_template