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

reports.py 1.1KB

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