Procházet zdrojové kódy

Merge pull request #4120 from samar-hassan/samar/optimize-offer-listing

[FEAT] Optimize Offer Listing page
master
Voxin Muyli před 2 roky
rodič
revize
de7363c315
Žádný účet není propojen s e-mailovou adresou tvůrce revize

+ 4
- 2
src/oscar/apps/dashboard/offers/views.py Zobrazit soubor

@@ -4,7 +4,7 @@ from django.conf import settings
4 4
 from django.contrib import messages
5 5
 from django.core import serializers
6 6
 from django.core.serializers.json import DjangoJSONEncoder
7
-from django.db.models import Q
7
+from django.db.models import Count, Q
8 8
 from django.http import HttpResponseRedirect
9 9
 from django.shortcuts import get_object_or_404, redirect
10 10
 from django.urls import reverse
@@ -38,7 +38,9 @@ class OfferListView(ListView):
38 38
 
39 39
     def get_queryset(self):
40 40
         self.search_filters = []
41
-        qs = self.model._default_manager.all()
41
+        qs = self.model._default_manager.annotate(
42
+            voucher_count=Count('vouchers')
43
+        ).select_related('benefit', 'condition')
42 44
         qs = sort_queryset(qs, self.request, ['name', 'offer_type', 'start_datetime', 'end_datetime',
43 45
                                               'num_applications', 'total_discount'])
44 46
 

+ 2
- 2
src/oscar/templates/oscar/dashboard/offers/offer_list.html Zobrazit soubor

@@ -103,7 +103,7 @@
103 103
                         <td><a href="{% url 'dashboard:offer-detail' pk=offer.pk %}">{{ offer.name }}</a></td>
104 104
                         <td>{{ offer.offer_type }}</td>
105 105
                         {% if form.is_bound %}{% if form.is_voucher_offer_type or not form.cleaned_data.offer_type %}
106
-                        <td>{{ offer.vouchers.count }}</td>
106
+                        <td>{{ offer.voucher_count }}</td>
107 107
                         {% endif %}{% endif %}
108 108
                         <td>{{ offer.start_datetime|default:"-" }}</td>
109 109
                         <td>{{ offer.end_datetime|default:"-" }}</td>
@@ -145,7 +145,7 @@
145 145
                                         <a class="dropdown-item" href="{% url 'dashboard:offer-metadata' pk=offer.pk %}">
146 146
                                             {% trans "Edit" %}
147 147
                                         </a>
148
-                                        {% if not offer.vouchers.exists %}
148
+                                        {% if not offer.voucher_count %}
149 149
                                         <a class="dropdown-item" href="{% url 'dashboard:offer-delete' pk=offer.pk %}">
150 150
                                             {% trans "Delete" %}
151 151
                                         </a>

Načítá se…
Zrušit
Uložit