You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Lippukauppa ja e-liput

Montako e-lipputilausta on lunastettu tiettynä päivänä

python manage.py shell
from lippukala.models import Order
from dateutil.tz import tzlocal
from datetime import datetime
 
tz = tzlocal()
loerdag_start = datetime(2015, 9, 5, 0, 0, 0, tzinfo=tz)
soendag_start = datetime(2015, 9, 6, 0, 0, 0, tzinfo=tz)

Order.objects.filter(code__used_on__gte=loerdag_start, code__used_on__lt=soendag_start).distinct().count()
# 2600 

Lunastettujen koodien määrä per minuutti tietyllä aikavälillä

SELECT date_trunc('minutes', used_on) as ts, count(order_id) FROM lippukala_code 
WHERE used_on between '2015-09-05 00:07:00'::timestamp AND '2015-09-05 14:00:00'::timestamp 
GROUP BY ts ORDER BY ts;

Lunastettujen tilausten määrä per minuutti tietyllä aikavälillä

SELECT date_trunc('minutes', used_on) as ts, count(*) FROM lippukala_order o, lippukala_code c
WHERE o.id=c.id AND c.used_on between '2015-09-05 00:07:00'::timestamp AND '2015-09-05 14:00:00'::timestamp 
GROUP BY ts ORDER BY ts;

Minkä kokoisia tilauksia ihmiset tilaa

python manage.py shell
In [6]: ops = OrderProduct.objects.filter(
   ...:     order__event__slug='tracon2017',
   ...:     order__confirm_time__isnull=False,
   ...:     order__payment_date__isnull=False,
   ...:     order__cancellation_time__isnull=True,
   ...:     count__gte=1,
   ...:     product__name__icontains='viikonloppu',
   ...: )
In [7]: ops.count()
Out[7]: 2170
In [8]: c = Counter()
In [9]: for op in ops:
   ...:     c[op.count] += 1
   ...:
In [10]: c
Out[10]: Counter({1: 1171, 2: 665, 3: 211, 4: 76, 5: 36, 6: 6, 7: 3, 8: 1, 10: 1})

 

Ohjelmanumerot, joista puuttuu ohjelmanjärjestäjän sähköpostiosoite

python manage.py shell
from programme.models import Programme
for programme in Programme.objects.filter(category__event__slug='traconx', programmerole__person__email='').distinct():
    print programme.title
  • No labels