Statistics plugin: Fixed incorrect timezones

This commit is contained in:
Raphael Michel
2016-07-25 09:43:00 +02:00
parent 525705a912
commit 6693570995

View File

@@ -4,6 +4,7 @@ import json
import dateutil.parser import dateutil.parser
import dateutil.rrule import dateutil.rrule
from django.db.models import Count from django.db.models import Count
from django.utils import timezone
from django.views.generic import TemplateView from django.views.generic import TemplateView
from pretix.base.models import Item, Order, OrderPosition from pretix.base.models import Item, Order, OrderPosition
@@ -23,6 +24,7 @@ class IndexView(EventPermissionRequiredMixin, TemplateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs) ctx = super().get_context_data(**kwargs)
tz = timezone.get_current_timezone()
if 'latest' in self.request.GET: if 'latest' in self.request.GET:
clear_cache() clear_cache()
@@ -34,12 +36,12 @@ class IndexView(EventPermissionRequiredMixin, TemplateView):
if not ctx['obd_data']: if not ctx['obd_data']:
ordered_by_day = {} ordered_by_day = {}
for o in Order.objects.filter(event=self.request.event).values('datetime'): for o in Order.objects.filter(event=self.request.event).values('datetime'):
day = o['datetime'].date() day = o['datetime'].astimezone(tz).date()
ordered_by_day[day] = ordered_by_day.get(day, 0) + 1 ordered_by_day[day] = ordered_by_day.get(day, 0) + 1
paid_by_day = {} paid_by_day = {}
for o in Order.objects.filter(event=self.request.event, for o in Order.objects.filter(event=self.request.event,
payment_date__isnull=False).values('payment_date'): payment_date__isnull=False).values('payment_date'):
day = o['payment_date'].date() day = o['payment_date'].astimezone(tz).date()
paid_by_day[day] = paid_by_day.get(day, 0) + 1 paid_by_day[day] = paid_by_day.get(day, 0) + 1
data = [] data = []
@@ -96,7 +98,7 @@ class IndexView(EventPermissionRequiredMixin, TemplateView):
for o in Order.objects.filter(event=self.request.event, for o in Order.objects.filter(event=self.request.event,
status=Order.STATUS_PAID, status=Order.STATUS_PAID,
payment_date__isnull=False).values('payment_date', 'total'): payment_date__isnull=False).values('payment_date', 'total'):
day = o['payment_date'].date() day = o['payment_date'].astimezone(tz).date()
rev_by_day[day] = rev_by_day.get(day, 0) + o['total'] rev_by_day[day] = rev_by_day.get(day, 0) + o['total']
data = [] data = []