Sfoglia il codice sorgente

Use entire queryset for offer report download rather than paginated one (#4105)

* Use entire queryset for offer report download rather than paginated queryset

* Add offer order report test

* Specify order number in create_order factory
master
Joey 2 anni fa
parent
commit
9aa30727ac
Nessun account collegato all'indirizzo email del committer

+ 1
- 1
src/oscar/apps/dashboard/offers/views.py Vedi File

@@ -407,6 +407,6 @@ class OfferDetailView(ListView):
407 407
     def render_to_response(self, context):
408 408
         if self.request.GET.get('format') == 'csv':
409 409
             formatter = OrderDiscountCSVFormatter()
410
-            return formatter.generate_response(context['order_discounts'],
410
+            return formatter.generate_response(self.get_queryset(),
411 411
                                                offer=self.offer)
412 412
         return super().render_to_response(context)

+ 15
- 0
tests/functional/dashboard/test_offer.py Vedi File

@@ -2,6 +2,7 @@ from django.urls import reverse
2 2
 from django.utils import timezone
3 3
 
4 4
 from oscar.apps.offer import models
5
+from oscar.apps.order.models import OrderDiscount
5 6
 from oscar.test import factories, testcases
6 7
 
7 8
 
@@ -248,6 +249,20 @@ class TestAnAdmin(testcases.WebTestCase):
248 249
 
249 250
         self.assertNotIn(offer_a, offer_b.combinations.all())
250 251
 
252
+    def test_create_offer_order_report(self):
253
+        order1 = factories.create_order(number="100001")
254
+        order2 = factories.create_order(number="100002")
255
+        offer = factories.create_offer()
256
+        OrderDiscount.objects.create(order=order1, offer_id=offer.id)
257
+        OrderDiscount.objects.create(order=order2, offer_id=offer.id)
258
+
259
+        report_url = "%s%s" % (reverse("dashboard:offer-detail", kwargs={'pk': offer.pk}), "?format=csv")
260
+        response = self.get(report_url)
261
+        self.assertEqual(response.status_code, 200)
262
+        self.assertEqual(response.headers["Content-Type"], "text/csv")
263
+        self.assertIn("100001", response.content.decode("utf-8"))
264
+        self.assertIn("100002", response.content.decode("utf-8"))
265
+
251 266
 
252 267
 class TestOfferListSearch(testcases.WebTestCase):
253 268
     is_staff = True

Loading…
Annulla
Salva