Fixed amount display so its in pounds not pence, fixed cancel

This commit is contained in:
Oliver Marks 2017-10-07 13:00:17 +01:00
parent a6fbe753d5
commit 9169c0dd52
4 changed files with 16 additions and 23 deletions

View File

@ -25,7 +25,9 @@ def create_or_update_membership(user, signup_details, complete=False):
member.user = user member.user = user
if complete is True: if complete is True:
member.status = MEMBERSHIP_ACTIVE member.status = MEMBERSHIP_CANCELLED
if signup_details.get('status') == 'active':
member.status = MEMBERSHIP_ACTIVE
member.email = signup_details.get('email') member.email = signup_details.get('email')
member.reference = signup_details.get('reference') member.reference = signup_details.get('reference')
member.payment = signup_details.get('amount') member.payment = signup_details.get('amount')

View File

@ -14,14 +14,9 @@ def update_subscriptions(provider_name):
provider = select_provider('gocardless') provider = select_provider('gocardless')
Membership.objects.all().delete() Membership.objects.all().delete()
group = Group.objects.get(name='members')
for sub in provider.fetch_subscriptions(): for sub in provider.fetch_subscriptions():
try: try:
user_model = User.objects.get(email=sub.get('email')) user_model = User.objects.get(email=sub.get('email'))
if sub.get('status') == 'active':
user_model.groups.add(group)
except User.DoesNotExist: except User.DoesNotExist:
user_model = None user_model = None

View File

@ -53,16 +53,16 @@ class gocardless_provider:
def fetch_subscriptions(self): def fetch_subscriptions(self):
# for paying_member in self.client.mandates.list().records: # for paying_member in self.client.mandates.list().records:
for paying_member in self.client.subscriptions.list().records: for paying_member in self.client.subscriptions.list().records:
mandate=self.client.mandates.get(paying_member.links.mandate) mandate = self.client.mandates.get(paying_member.links.mandate)
user=self.client.customers.get(mandate.links.customer) user = self.client.customers.get(mandate.links.customer)
# gocardless does not have a reference so we use the id instead # gocardless does not have a reference so we use the id instead
yield { yield {
'status': paying_member.status, 'status': paying_member.status,
'email': user.email, 'email': user.email,
'start_date': paying_member.created_at, 'start_date': paying_member.created_at,
'reference': mandate.id, 'reference': paying_member.id,
'amount': paying_member.amount} 'amount': paying_member.amount * 0.01}
def get_redirect_url(self): def get_redirect_url(self):
return payment_providers['gocardless']['redirect_url'] return payment_providers['gocardless']['redirect_url']
@ -89,7 +89,7 @@ class gocardless_provider:
'amount': subscription.amount, 'amount': subscription.amount,
'start_date': subscription.created_at, 'start_date': subscription.created_at,
'reference': subscription.id, 'reference': subscription.id,
'success': True if response.get('status_code') is '200' else False 'success': True if response.status == 'cancelled' else False
} }
def create_subscription(self, user, session, amount, def create_subscription(self, user, session, amount,
@ -110,12 +110,7 @@ class gocardless_provider:
def confirm_subscription(self, membership, session, provider_response, def confirm_subscription(self, membership, session, provider_response,
name, interval_unit='monthly', interval_length='1'): name, interval_unit='monthly', interval_length='1'):
r = provider_response.get('redirect_flow_id') r = provider_response.get('redirect_flow_id')
# response = self.client.redirect_flows.complete(r, params={
# "session_token": session
# })
response = self.client.redirect_flows.complete(r, params={'session_token': session}) response = self.client.redirect_flows.complete(r, params={'session_token': session})
# response = self.client.redirect_flows.get(provider_response.get('redirect_flow_id'))
user_id = response.links.customer user_id = response.links.customer
mandate_id = response.links.mandate mandate_id = response.links.mandate
@ -138,7 +133,8 @@ class gocardless_provider:
'amount': membership.payment, 'amount': membership.payment,
'email': user.email, 'email': user.email,
'start_date': subscription_response.created_at, 'start_date': subscription_response.created_at,
'reference': mandate_id, 'reference': subscription_response.id,
'status': subscription_response.status,
'success': subscription_response.api_response.status_code 'success': subscription_response.api_response.status_code
} }

View File

@ -32,12 +32,12 @@ class MembershipCancelView(LoginRequiredMixin, RedirectView):
reference=member.reference reference=member.reference
) )
# if result.get('success') is True: if result.get('success') is True:
cancel_membership(user=self.request.user) cancel_membership(user=self.request.user)
messages.add_message( messages.add_message(
self.request, self.request,
messages.SUCCESS, messages.SUCCESS,
'Your membership has now been cancelled') 'Your membership has now been cancelled')
kwargs['username'] = self.request.user.get_username() kwargs['username'] = self.request.user.get_username()
return super(MembershipCancelView, self).get_redirect_url(*args, **kwargs) return super(MembershipCancelView, self).get_redirect_url(*args, **kwargs)