mirror of
https://github.com/pretix/pretix.git
synced 2026-05-06 15:24:02 +00:00
* Make orderlist and overview filterable by payment_provider (fixing #233) * Remove checks for allowed and enabled payment_providers as discussed
This commit is contained in:
committed by
Raphael Michel
parent
a43b41c8d6
commit
8fb363f815
@@ -54,6 +54,15 @@
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<select name="provider" class="form-control">
|
||||
<option value="">{% trans "All payment providers" %}</option>
|
||||
{% for p in providers %}
|
||||
<option value="{{ p.name }}"
|
||||
{% if request.GET.provider|add:"0" == p.name %}selected="selected"{% endif %}>
|
||||
{{ p.verbose_name }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input type="text" name="user" class="form-control" placeholder="{% trans "Search user" %}" value="{{ request.GET.user }}">
|
||||
<button class="btn btn-primary" type="submit">{% trans "Filter" %}</button>
|
||||
</form>
|
||||
|
||||
@@ -40,27 +40,27 @@
|
||||
<tr class="item {% if tup.0 %}categorized{% endif %}">
|
||||
<td>{{ item.name }}</td>
|
||||
<td>
|
||||
<a href="{{ listurl }}?item={{ item.id }}">
|
||||
<a href="{{ listurl }}?item={{ item.id }}&provider={{ item.provider }}">
|
||||
{{ item.num_total|togglesum }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=ne">
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=ne&provider={{ item.provider }}">
|
||||
{{ item.num_pending|togglesum }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=c">
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=c&provider={{ item.provider }}">
|
||||
{{ item.num_cancelled|togglesum }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=r">
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=r&provider={{ item.provider }}">
|
||||
{{ item.num_refunded|togglesum }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=p">
|
||||
<a href="{{ listurl }}?item={{ item.id }}&status=p&provider={{ item.provider }}">
|
||||
{{ item.num_paid|togglesum }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
@@ -66,12 +66,27 @@ class OrderList(EventPermissionRequiredMixin, ListView):
|
||||
if self.request.GET.get("item", "") != "":
|
||||
i = self.request.GET.get("item", "")
|
||||
qs = qs.filter(positions__item_id__in=(i,))
|
||||
if self.request.GET.get("provider", "") != "":
|
||||
p = self.request.GET.get("provider", "")
|
||||
qs = qs.filter(payment_provider=p)
|
||||
return qs.distinct()
|
||||
|
||||
def get_payment_providers(self):
|
||||
providers = []
|
||||
responses = register_payment_providers.send(self.request.event)
|
||||
for receiver, response in responses:
|
||||
provider = response(self.request.event)
|
||||
providers.append({
|
||||
'name': provider,
|
||||
'verbose_name': provider.verbose_name
|
||||
})
|
||||
return providers
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['items'] = Item.objects.filter(event=self.request.event)
|
||||
ctx['filtered'] = ("status" in self.request.GET or "item" in self.request.GET or "user" in self.request.GET)
|
||||
ctx['filtered'] = ("status" in self.request.GET or "item" in self.request.GET or "user" in self.request.GET or "provider" in self.request.GET)
|
||||
ctx['providers'] = self.get_payment_providers()
|
||||
return ctx
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user