diff --git a/apps/kassa/urls.py b/apps/kassa/urls.py index fe015b2..3c72689 100644 --- a/apps/kassa/urls.py +++ b/apps/kassa/urls.py @@ -1,6 +1,6 @@ from django.conf.urls import url from apps.kassa.views import register, inside_user_api, inside_card_api, check_phone_number, \ - register_card_and_membership + register_card_and_membership, stats_card_sales urlpatterns = [ url(r'^$', register, name='register'), @@ -8,4 +8,5 @@ urlpatterns = [ url(r'^check-phonenumber/$', check_phone_number, name='check-phone-number'), url(r'^inside/card/$', inside_card_api, name='inside-card-number-api'), url(r'^register-card-membership/$', register_card_and_membership, name='register-card-and-membership'), + url(r'^stats/card-sales/$', stats_card_sales, name='stats-card-sales') ] diff --git a/apps/kassa/views.py b/apps/kassa/views.py index c9cc049..973eb49 100644 --- a/apps/kassa/views.py +++ b/apps/kassa/views.py @@ -1,5 +1,6 @@ # coding: utf-8 from __future__ import unicode_literals +from itertools import groupby import json from apps.kassa.models import KassaEvent @@ -142,3 +143,13 @@ def register_card_and_membership(request): return JsonResponse(response.json(), status=response.status_code) + +def stats_card_sales(request): + sale_events = [KassaEvent.ADD_OR_RENEW, KassaEvent.NEW_CARD_MEMBERSHIP] + # TODO filter by start HTTP param + events = KassaEvent.objects.filter(event__in=sale_events).values_list('created') + grouped = [] + for key, values in groupby(events, key=lambda row: row[0].date()): + grouped.append({'date': key.isoformat(), 'sales': len(list(values))}) + + return JsonResponse({'memberships': grouped})