Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

reports.py 1002B

123456789101112131415161718192021222324252627282930
  1. import csv
  2. from oscar.core.loading import import_module
  3. import_module('reports.reports', ['ReportGenerator'], locals())
  4. import_module('order.models', ['Order'], locals())
  5. class OrderReportGenerator(ReportGenerator):
  6. filename_template = 'orders-%s-to-%s.csv'
  7. code = 'order_report'
  8. description = "Orders placed"
  9. def generate(self, response):
  10. orders = Order._default_manager.filter(
  11. date_placed__gte=self.start_date
  12. ).filter(date_placed__lt=self.end_date)
  13. writer = csv.writer(response)
  14. header_row = ['Order number',
  15. 'User',
  16. 'Total incl. tax',
  17. 'Date placed',]
  18. writer.writerow(header_row)
  19. for order in orders:
  20. row = [order.number, order.user, order.total_incl_tax, order.date_placed]
  21. writer.writerow(row)
  22. def is_available_to(self, user):
  23. return user.is_staff and user.has_perm('order.can_view')