Some registration logic fixes, ++
This commit is contained in:
1 parent
4593e556b5
commit
da0e945812
5 files changed
+48
-16
No files matched your search
@@ -7,6 +7,7 @@
|
||||
{% csrf_token %}
|
||||
<h3>{% trans "Register card" %}</h3>
|
||||
<p><!--
|
||||
Add no-user membership [DONE].
|
||||
Add membership for new user and existing user.
|
||||
Renew membership for existing user.
|
||||
Register card to existing user [DONE].
|
||||
@@ -19,8 +20,8 @@
|
||||
</div>
|
||||
{{ add_card_form|bootstrap }}
|
||||
<ul>
|
||||
<li>If no existing membership can be found, a new membership is registered.</li>
|
||||
<li>If an existing user is found, the membership is marked as renewed</li>
|
||||
<li>If <em>no</em> existing user with membership can be found, <strong>a new membership is registered</strong> and tied to a card number.</li>
|
||||
<li>If an existing user is found <em>without</em> a membership, it is <strong>renewed</strong></li>
|
||||
<li>Registering a card number with a phone number already tied to an existing user, will add the card to that user.</li>
|
||||
</ul>
|
||||
<button id="register-submit-btn" type="submit" class="btn btn-primary btn-lg" disabled>{% trans "Register card" %}</button>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# coding: utf-8
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
import json
|
||||
import requests
|
||||
|
||||
|
||||
def tekstmelding_new_card_no_user(card_number, phone_number):
|
||||
payload = {
|
||||
'phone_number': phone_number,
|
||||
'card_number': card_number,
|
||||
'action': 'new_card_no_user',
|
||||
}
|
||||
|
||||
url = '{}kassa/notify-new-card'.format(settings.TEKSTMELDING_API_URL)
|
||||
response = requests.post(
|
||||
url,
|
||||
data=json.dumps(payload),
|
||||
params={'api_key': settings.TEKSTMELDING_API_KEY},
|
||||
headers={'Content-Type': 'application/json'}
|
||||
)
|
||||
|
||||
return response.json()
|
||||
+9
-2
@@ -10,6 +10,7 @@ import phonenumbers
|
||||
import requests
|
||||
|
||||
from apps.kassa.forms import AddCardForm, SearchUserForm
|
||||
from apps.kassa.utils import tekstmelding_new_card_no_user
|
||||
|
||||
|
||||
@login_required
|
||||
@@ -63,7 +64,7 @@ def check_phone_number(request):
|
||||
'api_key': settings.TEKSTMELDING_API_KEY,
|
||||
'number': number
|
||||
}
|
||||
url = '{}kassa-pending-membership'.format(settings.TEKSTMELDING_API_URL)
|
||||
url = '{}kassa/pending-membership'.format(settings.TEKSTMELDING_API_URL)
|
||||
tekstmelding_data = requests.get(url, params=payload).json()
|
||||
|
||||
return JsonResponse({
|
||||
@@ -85,7 +86,7 @@ def inside_card_api(request):
|
||||
'card_number': post_data.get('card_number'),
|
||||
'user_id': post_data.get('user_id'),
|
||||
'phone_number': post_data.get('phone_number'),
|
||||
'type': post_data.get('type') # renewal, new_user, new_card_only,
|
||||
'action': post_data.get('action') # new_card_no_user, update_card, renewal
|
||||
}
|
||||
response = requests.post(
|
||||
url,
|
||||
@@ -93,6 +94,12 @@ def inside_card_api(request):
|
||||
params=params,
|
||||
headers=dict(content_type='application/json')
|
||||
)
|
||||
# Send activation notification (link) to user by SMS
|
||||
# FIXME: could be async
|
||||
if response.status_code == 200 and payload['action'] == 'new_card_no_user':
|
||||
card = response.json()['card']
|
||||
# FIXME: ignores errors
|
||||
tekstmelding_new_card_no_user(card_number=card['card_number'], phone_number=card['owner_phone_number'])
|
||||
else:
|
||||
params.update({
|
||||
'card_number': request.GET.get('card_number', '')
|
||||
|
||||
Reference in new issue
Block a user