Rework some of the payment sign up system
This commit is contained in:
parent
c1ed938b04
commit
d642109c13
|
@ -1,17 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals, absolute_import
|
||||
from datetime import datetime
|
||||
from django.contrib.auth.models import Group
|
||||
from django.utils.dateparse import parse_datetime
|
||||
from mhackspace.users.models import Membership
|
||||
from mhackspace.users.models import MEMBERSHIP_CANCELLED
|
||||
from mhackspace.users.models import MEMBERSHIP_CANCELLED, MEMBERSHIP_ACTIVE
|
||||
|
||||
|
||||
def create_or_update_membership(user, signup_details, complete=False):
|
||||
start_date = signup_details.get('start_date')
|
||||
if not isinstance(start_date, datetime):
|
||||
start_date = parse_datetime(start_date)
|
||||
try:
|
||||
member = Membership.objects.get(email=signup_details.get('email'))
|
||||
# Only update if newer than last record, this way we only get the latest status
|
||||
# cancellation and changed payment will not be counted against current status
|
||||
start_date = parse_datetime(signup_details.get('start_date'))
|
||||
if start_date < member.date:
|
||||
return True
|
||||
except Membership.DoesNotExist:
|
||||
|
@ -19,11 +22,11 @@ def create_or_update_membership(user, signup_details, complete=False):
|
|||
member.user = user
|
||||
|
||||
if complete is True:
|
||||
member.status = Membership.lookup_status(name=signup_details.get('status'))
|
||||
member.status = MEMBERSHIP_ACTIVE
|
||||
member.email = signup_details.get('email')
|
||||
member.reference = signup_details.get('reference')
|
||||
member.payment = signup_details.get('amount')
|
||||
member.date = signup_details.get('start_date')
|
||||
member.date = start_date
|
||||
|
||||
member.save()
|
||||
|
||||
|
|
|
@ -114,14 +114,11 @@ class gocardless_provider:
|
|||
# response = self.client.redirect_flows.complete(r, params={
|
||||
# "session_token": session
|
||||
# })
|
||||
response = self.client.redirect_flows.get(r)
|
||||
response = self.client.redirect_flows.complete(r, params={'session_token': session})
|
||||
# response = self.client.redirect_flows.get(provider_response.get('redirect_flow_id'))
|
||||
|
||||
# response = gocardless_pro.client.confirm_resource(provider_response)
|
||||
# subscription = gocardless_pro.client.subscription(provider_response.get('resource_id'))
|
||||
user_id = response.links.customer
|
||||
mandate_id = response.links.mandate
|
||||
# user = subscription.user()
|
||||
user = self.client.customers.get(response.links.customer)
|
||||
mandate = self.client.mandates.get(response.links.mandate)
|
||||
|
||||
|
|
|
@ -106,6 +106,8 @@ class MembershipJoinSuccessView(LoginRequiredMixin, RedirectView):
|
|||
)
|
||||
|
||||
# if something went wrong return to profile with an error
|
||||
|
||||
result['start_date'] = timezone.now()
|
||||
if result.get('success') is False:
|
||||
messages.add_message(
|
||||
self.request,
|
||||
|
|
|
@ -45,7 +45,7 @@ class Blurb(models.Model):
|
|||
skills = models.CharField(max_length=255)
|
||||
description = models.TextField()
|
||||
|
||||
MEMBERSHIP_ACTIVE = 4
|
||||
MEMBERSHIP_ACTIVE = 1
|
||||
MEMBERSHIP_CANCELLED = 4
|
||||
|
||||
MEMBERSHIP_STATUS_CHOICES = (
|
||||
|
|
Loading…
Reference in New Issue