Adds event logging

This commit is contained in:
nikolark committed 2015-08-10 12:35:09 +02:00
1 parent e8a08e545b
commit b98686c726
4 files changed
+68 -2

No files matched your search

+7 -1
View File
@@ -1,3 +1,9 @@
from apps.kassa.models import KassaEvent
from django.contrib import admin
# Register your models here.
class KassaEventAdmin(admin.ModelAdmin):
list_display = ['id', 'user_phone_number', 'user_inside_id', 'event', 'created']
list_filter = ['event']
admin.site.register(KassaEvent, KassaEventAdmin)
+25
View File
@@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='KassaEvent',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('event', models.TextField(max_length=255, choices=[('new_card_membership', 'Added new card membership (no user yet)'), ('update_card', 'Updated user card number'), ('add_or_renew', 'Added or renewed membership user membership')])),
('card_number', models.IntegerField(null=True, blank=True)),
('user_inside_id', models.IntegerField(null=True, blank=True)),
('user_phone_number', models.TextField(max_length=100, null=True, blank=True)),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
],
),
]
+18 -1
View File
@@ -1,3 +1,20 @@
from __future__ import unicode_literals
from django.db import models
from django.utils.translation import ugettext_lazy as _
# Create your models here.
class KassaEvent(models.Model):
NEW_CARD_MEMBERSHIP = 'new_card_membership'
UPDATE_CARD = 'update_card'
ADD_OR_RENEW = 'add_or_renew'
EVENT_CHOICES = (
(NEW_CARD_MEMBERSHIP, _('Added new card membership (no user yet)')),
(UPDATE_CARD, _('Updated user card number')),
(ADD_OR_RENEW, _('Added or renewed membership user membership')),
)
event = models.TextField(max_length=255, choices=EVENT_CHOICES)
card_number = models.IntegerField(null=True, blank=True)
user_inside_id = models.IntegerField(null=True, blank=True)
user_phone_number = models.TextField(max_length=100, null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
+18
View File
@@ -1,6 +1,7 @@
# coding: utf-8
from __future__ import unicode_literals
import json
from apps.kassa.models import KassaEvent
from django.conf import settings
from django.contrib.auth.decorators import login_required
@@ -90,6 +91,7 @@ def register_card_and_membership(request):
post_data = json.loads(request.body)
action = post_data.get('action') # new_card_membership, update_card, add_or_renew
# TODO: multiple actions (to allow renewal only)
user_id = post_data.get('user_id')
response = inside_update_card(
@@ -101,6 +103,13 @@ def register_card_and_membership(request):
if response.status_code != 200:
return JsonResponse(response.json(), status=response.status_code)
KassaEvent.objects.create(
event=KassaEvent.UPDATE_CARD,
user_inside_id=user_id,
user_phone_number=post_data.get('phone_number'),
card_number=post_data.get('card_number')
)
# card_response = response.json()
# Send activation notification (link) to user by SMS
@@ -108,10 +117,19 @@ def register_card_and_membership(request):
card = response.json()['card']
# FIXME: could be async
tekstmelding_new_membership_card(card_number=card['card_number'], phone_number=card['owner_phone_number'])
KassaEvent.objects.create(
event=KassaEvent.NEW_CARD_MEMBERSHIP,
card_number=card['card_number'],
user_phone_number=card['owner_phone_number']
)
# Add initial or renew membership
elif action == 'add_or_renew':
response = inside_update_membership(user_id, post_data.get('purchased'))
KassaEvent.objects.create(
event=KassaEvent.ADD_OR_RENEW,
user_inside_id=user_id
)
return JsonResponse(response.json(), status=response.status_code)