Added filtering by item to the product list

This commit is contained in:
Raphael Michel
2015-07-19 20:32:15 +02:00
parent 42b3f9ff51
commit cb9ae9cc81
3 changed files with 44 additions and 6 deletions

View File

@@ -22,6 +22,15 @@
<option value="c" {% if request.GET.status == "c" %}selected="selected"{% endif %}>{% trans "Cancelled" %}</option>
<option value="r" {% if request.GET.status == "r" %}selected="selected"{% endif %}>{% trans "Refunded" %}</option>
</select>
<select name="item" class="form-control">
<option value="">{% trans "All products" %}</option>
{% for item in items %}
<option value="{{ item.identity }}"
{% if request.GET.item == item.identity %}selected="selected"{% endif %}>
{{ item.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>

View File

@@ -3,6 +3,7 @@
{% load order_overview %}
{% block title %}{% trans "Order overview" %}{% endblock %}
{% block content %}
{% url "control:event.orders" organizer=request.event.organizer.slug event=request.event.slug as listurl %}
<div class="pull-right">
<div class="btn-group" role="group" id="sumtoggle">
<button type="button" data-target=".count" class="btn btn-default active">Show number</button>
@@ -37,11 +38,31 @@
{% for item in tup.1 %}
<tr class="item {% if tup.0 %}categorized{% endif %}">
<td>{{ item.name }}</td>
<td>{{ item.num_total|togglesum }}</td>
<td>{{ item.num_pending|togglesum }}</td>
<td>{{ item.num_cancelled|togglesum }}</td>
<td>{{ item.num_refunded|togglesum }}</td>
<td>{{ item.num_paid|togglesum }}</td>
<td>
<a href="{{ listurl }}?item={{ item.identity }}">
{{ item.num_total|togglesum }}
</a>
</td>
<td>
<a href="{{ listurl }}?item={{ item.identity }}&status=n">
{{ item.num_pending|togglesum }}
</a>
</td>
<td>
<a href="{{ listurl }}?item={{ item.identity }}&status=c">
{{ item.num_cancelled|togglesum }}
</a>
</td>
<td>
<a href="{{ listurl }}?item={{ item.identity }}&status=r">
{{ item.num_refunded|togglesum }}
</a>
</td>
<td>
<a href="{{ listurl }}?item={{ item.identity }}&status=p">
{{ item.num_paid|togglesum }}
</a>
</td>
</tr>
{% if item.has_variations %}
{% for var in item.all_variations %}

View File

@@ -8,7 +8,7 @@ from django.http import HttpResponse
from django.shortcuts import redirect, render
from django.utils.functional import cached_property
from django.views.generic import ListView, DetailView, TemplateView, View
from pretix.base.models import Order, Quota, OrderPosition, ItemCategory
from pretix.base.models import Order, Quota, OrderPosition, ItemCategory, Item
from pretix.base.services.orders import mark_order_paid
from pretix.base.signals import register_payment_providers
from pretix.control.forms.orders import ExtendForm
@@ -35,8 +35,16 @@ class OrderList(EventPermissionRequiredMixin, ListView):
if self.request.GET.get("status", "") != "":
s = self.request.GET.get("status", "")
qs = qs.filter(status=s)
if self.request.GET.get("item", "") != "":
i = self.request.GET.get("item", "")
qs = qs.filter(positions__item_id__in=(i,)).distinct()
return qs.select_related("user")
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['items'] = Item.objects.current.filter(event=self.request.event)
return ctx
class OrderView(EventPermissionRequiredMixin, DetailView):
context_object_name = 'order'