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.

utils.py 1.2KB

123456789101112131415161718192021222324252627282930
  1. from oscar.core.loading import get_class, get_classes
  2. OrderReportGenerator = get_class('order.reports', 'OrderReportGenerator')
  3. ProductReportGenerator, UserReportGenerator \
  4. = get_classes('analytics.reports', ['ProductReportGenerator',
  5. 'UserReportGenerator'])
  6. OpenBasketReportGenerator, SubmittedBasketReportGenerator \
  7. = get_classes('basket.reports', ['OpenBasketReportGenerator',
  8. 'SubmittedBasketReportGenerator'])
  9. OfferReportGenerator = get_class('offer.reports', 'OfferReportGenerator')
  10. VoucherReportGenerator = get_class('voucher.reports', 'VoucherReportGenerator')
  11. class GeneratorRepository(object):
  12. generators = [OrderReportGenerator,
  13. ProductReportGenerator,
  14. UserReportGenerator,
  15. OpenBasketReportGenerator,
  16. SubmittedBasketReportGenerator,
  17. VoucherReportGenerator,
  18. OfferReportGenerator]
  19. def get_report_generators(self):
  20. return self.generators
  21. def get_generator(self, code):
  22. for generator in self.generators:
  23. if generator.code == code:
  24. return generator
  25. return None