New log event for SMS purchased memberships
This commit is contained in:
1 parent
488ec8916b
commit
96d5214151
6 files changed
+71
-20
No files matched your search
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('kassa', '0002_auto_20150810_1327'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='kassaevent',
|
||||
name='event',
|
||||
field=models.CharField(max_length=255, choices=[('new_card_membership', 'Added new card membership (no user yet)'), ('sms_card_notify', 'Notified phone number about activation'), ('update_card', 'Updated user card number'), ('add_or_renew', 'Added or renewed membership user membership')]),
|
||||
),
|
||||
]
|
||||
@@ -5,10 +5,12 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
class KassaEvent(models.Model):
|
||||
NEW_CARD_MEMBERSHIP = 'new_card_membership'
|
||||
SMS_CARD_NOTIFY = 'sms_card_notify'
|
||||
UPDATE_CARD = 'update_card'
|
||||
ADD_OR_RENEW = 'add_or_renew'
|
||||
EVENT_CHOICES = (
|
||||
(NEW_CARD_MEMBERSHIP, _('Added new card membership (no user yet)')),
|
||||
(SMS_CARD_NOTIFY, _('Notified phone number about activation')),
|
||||
(UPDATE_CARD, _('Updated user card number')),
|
||||
(ADD_OR_RENEW, _('Added or renewed membership user membership')),
|
||||
)
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ def inside_update_card(card_number, user_id, phone_number, action):
|
||||
'card_number': card_number,
|
||||
'user_id': user_id,
|
||||
'phone_number': phone_number,
|
||||
'action': action # new_card_membership, update_card, add_or_renew
|
||||
'action': action # new_card_membership, update_card, add_or_renew, sms_card_notify
|
||||
}
|
||||
return requests.post(
|
||||
url,
|
||||
|
||||
+9
-5
@@ -95,7 +95,7 @@ def register_card_and_membership(request):
|
||||
return JsonResponse({'error': 'Only method POST supported'})
|
||||
|
||||
post_data = json.loads(request.body)
|
||||
action = post_data.get('action') # new_card_membership, update_card, add_or_renew
|
||||
action = post_data.get('action') # new_card_membership, update_card, add_or_renew, sms_card_notify
|
||||
# TODO: multiple actions (to allow renewal only)
|
||||
user_id = post_data.get('user_id')
|
||||
card_number = post_data.get('card_number')
|
||||
@@ -121,15 +121,19 @@ def register_card_and_membership(request):
|
||||
|
||||
KassaEvent.objects.create(**event_data)
|
||||
|
||||
# card_response = response.json()
|
||||
card_update_response = response.json()
|
||||
|
||||
# Send activation notification (link) to user by SMS
|
||||
if action == 'new_card_membership':
|
||||
card = response.json()['card']
|
||||
if action == 'new_card_membership' or action == 'sms_card_notify':
|
||||
card = card_update_response['card']
|
||||
event = KassaEvent.NEW_CARD_MEMBERSHIP
|
||||
if action == 'sms_card_notify':
|
||||
event = KassaEvent.SMS_CARD_NOTIFY
|
||||
|
||||
# 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,
|
||||
event=event,
|
||||
card_number=card['card_number'],
|
||||
user_phone_number=card['owner_phone_number']
|
||||
)
|
||||
|
||||
@@ -138,6 +138,8 @@ function resetCardForm(reset_native) {
|
||||
selectedUser = null;
|
||||
_dom.userIdField.val('').trigger('change');
|
||||
|
||||
pendingSMSMembership = null;
|
||||
|
||||
/* Disable submit button */
|
||||
_dom.registerSubmitButton.prop('disabled', true);
|
||||
}
|
||||
@@ -206,6 +208,7 @@ function getFormData(formElement) {
|
||||
var _dom;
|
||||
var users;
|
||||
var selectedUser;
|
||||
var pendingSMSMembership;
|
||||
var cardForm = {
|
||||
fields: {
|
||||
cardNumber: false,
|
||||
@@ -255,6 +258,7 @@ $(document).ready(function(){
|
||||
set_selected_user(null, true);
|
||||
set_field_state(_dom.phoneNumberField, 'error', data.error);
|
||||
cardForm.fields.phoneNumber = false;
|
||||
pendingSMSMembership = null;
|
||||
update_submit_button();
|
||||
return;
|
||||
}
|
||||
@@ -264,6 +268,7 @@ $(document).ready(function(){
|
||||
var msg = 'Phone number is already tied to card '+ card.card_number + ' and is valid until '+ card.expires +'.';
|
||||
set_field_state(_dom.phoneNumberField, 'error', msg);
|
||||
cardForm.fields.phoneNumber = false;
|
||||
pendingSMSMembership = null;
|
||||
update_submit_button();
|
||||
return;
|
||||
}
|
||||
@@ -277,12 +282,14 @@ $(document).ready(function(){
|
||||
/* Existing user */
|
||||
_user = inside.users[0];
|
||||
_success_msg = 'Phone number belongs to existing user.';
|
||||
pendingSMSMembership = null;
|
||||
} else if(tekstmelding.result !== null) {
|
||||
/* Pending SMS membership (not activated yet) */
|
||||
_success_msg = 'Phone number has valid membership (paid via SMS). OK to give out card.';
|
||||
// TODO store this in form and use in confirmation message.
|
||||
pendingSMSMembership = tekstmelding.result;
|
||||
} else {
|
||||
/* Valid phone number with no existing user, card membership or pending SMS membership */
|
||||
pendingSMSMembership = null;
|
||||
}
|
||||
|
||||
set_field_state(_dom.phoneNumberField, 'success', _success_msg);
|
||||
@@ -400,9 +407,11 @@ $(document).ready(function(){
|
||||
|
||||
/* Register type */
|
||||
// FIXME: get from form
|
||||
// action: 'new_card_membership', 'update_card', 'add_or_renew'
|
||||
if(selectedUser === null) {
|
||||
// action: 'new_card_membership', 'update_card', 'add_or_renew', 'sms_card_notify'
|
||||
if(selectedUser === null && pendingSMSMembership === null) {
|
||||
payload.action = 'new_card_membership';
|
||||
} else if(selectedUser === null && pendingSMSMembership !== null) {
|
||||
payload.action = 'sms_card_notify';
|
||||
} else {
|
||||
if(selectedUser.is_member === '1') {
|
||||
payload.action = 'update_card';
|
||||
@@ -418,15 +427,19 @@ $(document).ready(function(){
|
||||
type: 'post',
|
||||
headers: {'X-CSRFToken': getCookie('csrftoken')}
|
||||
}).success(function(data){
|
||||
var phone_number;
|
||||
var success_message = 'New card registered ' + payload.card_number;
|
||||
if(payload.action === 'add_or_renew') {
|
||||
var full_name = data.user[0].firstname + ' ' + data.user[0].lastname;
|
||||
success_message = 'New membership and card number '+ payload.card_number + ' registered to ' + full_name;
|
||||
success_message = 'New membership and card number '+ payload.card_number + ' registered to ' + full_name + ' ';
|
||||
}
|
||||
else if(payload.action ==='new_card_membership') {
|
||||
var phone_number = data.card.owner_phone_number;
|
||||
// TODO Is membership charged by kassa-user or by SMS?
|
||||
success_message = 'New card registered to ' + format_phone_number(phone_number) + '. Activation SMS sent ';
|
||||
phone_number = data.card.owner_phone_number;
|
||||
success_message = 'New membership and card registered to ' + format_phone_number(phone_number) + '. Activation SMS sent ';
|
||||
}
|
||||
else if(payload.action === 'sms_card_notify') {
|
||||
phone_number = data.card.owner_phone_number;
|
||||
success_message = 'New card registered to ' + format_phone_number(phone_number) + '. Membership already paid by SMS ('+ pendingSMSMembership.purchase_date +'). Activation SMS sent ';
|
||||
}
|
||||
set_toast(success_message + ' :-)', 'success');
|
||||
resetCardForm(true);
|
||||
|
||||
Vendored
+20
-7
@@ -138,6 +138,8 @@ function resetCardForm(reset_native) {
|
||||
selectedUser = null;
|
||||
_dom.userIdField.val('').trigger('change');
|
||||
|
||||
pendingSMSMembership = null;
|
||||
|
||||
/* Disable submit button */
|
||||
_dom.registerSubmitButton.prop('disabled', true);
|
||||
}
|
||||
@@ -206,6 +208,7 @@ function getFormData(formElement) {
|
||||
var _dom;
|
||||
var users;
|
||||
var selectedUser;
|
||||
var pendingSMSMembership;
|
||||
var cardForm = {
|
||||
fields: {
|
||||
cardNumber: false,
|
||||
@@ -255,6 +258,7 @@ $(document).ready(function(){
|
||||
set_selected_user(null, true);
|
||||
set_field_state(_dom.phoneNumberField, 'error', data.error);
|
||||
cardForm.fields.phoneNumber = false;
|
||||
pendingSMSMembership = null;
|
||||
update_submit_button();
|
||||
return;
|
||||
}
|
||||
@@ -264,6 +268,7 @@ $(document).ready(function(){
|
||||
var msg = 'Phone number is already tied to card '+ card.card_number + ' and is valid until '+ card.expires +'.';
|
||||
set_field_state(_dom.phoneNumberField, 'error', msg);
|
||||
cardForm.fields.phoneNumber = false;
|
||||
pendingSMSMembership = null;
|
||||
update_submit_button();
|
||||
return;
|
||||
}
|
||||
@@ -277,12 +282,14 @@ $(document).ready(function(){
|
||||
/* Existing user */
|
||||
_user = inside.users[0];
|
||||
_success_msg = 'Phone number belongs to existing user.';
|
||||
pendingSMSMembership = null;
|
||||
} else if(tekstmelding.result !== null) {
|
||||
/* Pending SMS membership (not activated yet) */
|
||||
_success_msg = 'Phone number has valid membership (paid via SMS). OK to give out card.';
|
||||
// TODO store this in form and use in confirmation message.
|
||||
pendingSMSMembership = tekstmelding.result;
|
||||
} else {
|
||||
/* Valid phone number with no existing user, card membership or pending SMS membership */
|
||||
pendingSMSMembership = null;
|
||||
}
|
||||
|
||||
set_field_state(_dom.phoneNumberField, 'success', _success_msg);
|
||||
@@ -400,9 +407,11 @@ $(document).ready(function(){
|
||||
|
||||
/* Register type */
|
||||
// FIXME: get from form
|
||||
// action: 'new_card_membership', 'update_card', 'add_or_renew'
|
||||
if(selectedUser === null) {
|
||||
// action: 'new_card_membership', 'update_card', 'add_or_renew', 'sms_card_notify'
|
||||
if(selectedUser === null && pendingSMSMembership === null) {
|
||||
payload.action = 'new_card_membership';
|
||||
} else if(selectedUser === null && pendingSMSMembership !== null) {
|
||||
payload.action = 'sms_card_notify';
|
||||
} else {
|
||||
if(selectedUser.is_member === '1') {
|
||||
payload.action = 'update_card';
|
||||
@@ -418,15 +427,19 @@ $(document).ready(function(){
|
||||
type: 'post',
|
||||
headers: {'X-CSRFToken': getCookie('csrftoken')}
|
||||
}).success(function(data){
|
||||
var phone_number;
|
||||
var success_message = 'New card registered ' + payload.card_number;
|
||||
if(payload.action === 'add_or_renew') {
|
||||
var full_name = data.user[0].firstname + ' ' + data.user[0].lastname;
|
||||
success_message = 'New membership and card number '+ payload.card_number + ' registered to ' + full_name;
|
||||
success_message = 'New membership and card number '+ payload.card_number + ' registered to ' + full_name + ' ';
|
||||
}
|
||||
else if(payload.action ==='new_card_membership') {
|
||||
var phone_number = data.card.owner_phone_number;
|
||||
// TODO Is membership charged by kassa-user or by SMS?
|
||||
success_message = 'New card registered to ' + format_phone_number(phone_number) + '. Activation SMS sent ';
|
||||
phone_number = data.card.owner_phone_number;
|
||||
success_message = 'New membership and card registered to ' + format_phone_number(phone_number) + '. Activation SMS sent ';
|
||||
}
|
||||
else if(payload.action === 'sms_card_notify') {
|
||||
phone_number = data.card.owner_phone_number;
|
||||
success_message = 'New card registered to ' + format_phone_number(phone_number) + '. Membership already paid by SMS ('+ pendingSMSMembership.purchase_date +'). Activation SMS sent ';
|
||||
}
|
||||
set_toast(success_message + ' :-)', 'success');
|
||||
resetCardForm(true);
|
||||
|
||||
Reference in new issue
Block a user