forked from CGM_Public/pretix_original
Added filtering by item to the product list
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user