diff --git a/src/pretix/control/templates/pretixcontrol/dashboard.html b/src/pretix/control/templates/pretixcontrol/dashboard.html new file mode 100644 index 0000000000..879b72ca85 --- /dev/null +++ b/src/pretix/control/templates/pretixcontrol/dashboard.html @@ -0,0 +1,13 @@ +{% extends "pretixcontrol/base.html" %} +{% load i18n %} +{% block title %}{% trans "Dashboard" %}{% endblock %} +{% block content %} +

{% trans "Dashboard" %}

+

+ There is nothing yet to see on this dashboard. If you have any ideas what to put here, just tell us! +

+

+ Probably, you are looking for your events. +

+{% endblock %} diff --git a/src/pretix/control/templates/pretixcontrol/event/index.html b/src/pretix/control/templates/pretixcontrol/event/index.html index 6991961f70..1f157c4441 100644 --- a/src/pretix/control/templates/pretixcontrol/event/index.html +++ b/src/pretix/control/templates/pretixcontrol/event/index.html @@ -3,4 +3,94 @@ {% block title %}{{ request.event.name }}{% endblock %} {% block content %}

{{ request.event.name }}

+
+
+
+
+
+
+ +
+
+
{{ tickets_sold }}
+
{% trans "Tickets sold" %}
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
{{ tickets_total }}
+
{% trans "Total items ordered" %}
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
{{ tickets_revenue }}
+
{% trans "Total Revenue" %}
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+
+
{{ products_active }}
+
{% trans "Active Products" %}
+
+
+
+ + + +
+
+
{% endblock %} diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index 80d577c20a..b64923b046 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -1,6 +1,7 @@ from collections import OrderedDict from django.contrib import messages +from django.db.models import Sum from django.shortcuts import render, redirect from django.utils.functional import cached_property from django.views.generic import FormView @@ -9,7 +10,7 @@ from django.views.generic.detail import SingleObjectMixin from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse from pretix.control.forms.event import ProviderForm, TicketSettingsForm, EventSettingsForm, EventUpdateForm -from pretix.base.models import Event +from pretix.base.models import Event, OrderPosition, Order, Item from pretix.base.signals import register_payment_providers, register_ticket_outputs from pretix.control.permissions import EventPermissionRequiredMixin from . import UpdateView @@ -232,4 +233,23 @@ class TicketSettings(EventPermissionRequiredMixin, FormView): def index(request, organizer, event): - return render(request, 'pretixcontrol/event/index.html', {}) + ctx = { + 'products_active': Item.objects.current.filter( + event=request.event, + active=True, + ).count(), + 'tickets_total': OrderPosition.objects.current.filter( + order__event=request.event, + item__admission=True + ).count(), + 'tickets_revenue': Order.objects.current.filter( + event=request.event, + status=Order.STATUS_PAID, + ).aggregate(sum=Sum('total'))['sum'], + 'tickets_sold': OrderPosition.objects.current.filter( + order__event=request.event, + order__status=Order.STATUS_PAID, + item__admission=True + ).count() + } + return render(request, 'pretixcontrol/event/index.html', ctx) diff --git a/src/pretix/control/views/main.py b/src/pretix/control/views/main.py index cacc18d0a4..6e0d14a8e6 100644 --- a/src/pretix/control/views/main.py +++ b/src/pretix/control/views/main.py @@ -24,7 +24,7 @@ class EventList(ListView): def index(request): - return render(request, 'pretixcontrol/base.html', {}) + return render(request, 'pretixcontrol/dashboard.html', {}) class EventCreateStart(TemplateView):