Skip to content
Snippets Groups Projects
Commit f02310ec authored by frekk's avatar frekk
Browse files

more fiddling -> more working

parent 44f3bde9
Branches master
No related merge requests found
......@@ -28,7 +28,7 @@ class RegisterForm(MyModelForm):
agree_tnc = forms.BooleanField(label='I agree to the terms & conditions', required=True, help_text=mark_safe(
"You agree to abide by the UCC Constitution, rulings of the UCC Committee, UCC and "
"UWA’s Network Usage Guidelines and that you will be subscribed to the UCC Mailing List. <br>"
'Policies can be found <a href="https://www.ucc.asn.au/infobase/policies.ucc">here</a>.'))
'<b>Policies can be found <a href="https://www.ucc.asn.au/infobase/policies.ucc">here</a>.</b>'))
membership_type = forms.ChoiceField(label='Select your membership type', required=True, choices=get_membership_choices(is_renew=False))
class Meta:
......@@ -36,7 +36,7 @@ class RegisterForm(MyModelForm):
fields = ['first_name', 'last_name', 'username', 'phone_number', 'is_student', 'is_guild', 'id_number', 'email_address']
error_messages = {
'username': {
'unique': 'This username is already in use, please pick another one.',
'unique': 'This username is already taken, please pick another one.',
'invalid': 'Please pick a username with only lowercase letters and numbers'
}
}
......@@ -97,8 +97,8 @@ class RegisterView(MyUpdateView):
m, ms = form.save()
messages.success(self.request, 'Your registration has been submitted.')
# set the member session info
self.request.session['member_id'] = m.id
# don't set the member session info - user can click on the link
#self.request.session['member_id'] = m.id
return thanks_view(self.request, m, ms)
def thanks_view(request, member, ms):
......@@ -107,10 +107,10 @@ def thanks_view(request, member, ms):
'member': member,
'ms': ms,
'login_url': reverse('memberdb:login_member', kwargs={'username': member.username, 'member_token': member.login_token}),
'payment_url': reverse('squarepay:pay_membership', kwargs={'pk': ms.id}),
}
return render(request, 'thanks.html', context)
class RenewView(LoginRequiredMixin, MyUpdateView):
template_name = 'renew.html'
form_class = RenewForm
......@@ -139,19 +139,3 @@ class RenewView(LoginRequiredMixin, MyUpdateView):
m, ms = form.save()
messages.success(self.request, 'Your membership renewal has been submitted.')
return HttpResponseRedirect(reverse("memberdb:home"))
def create_member_payment(membership, commit=True):
""" creates a MembershipPayment object for the given membership """
# get the amount from dispense
price = get_item_price(membership.membership_type)
if (price is None or price == 0):
return None
desc = MEMBERSHIP_TYPES[membership.membership_type]['desc']
payment = MembershipPayment(description=desc, amount=price, membership=membership)
if (commit):
payment.save()
return payment
def thanks_page(request, membership):
pass
......@@ -12,7 +12,7 @@ from .payments import log
DISPENSE_BIN = getattr(settings, 'DISPENSE_BIN', None)
if DISPENSE_BIN is None:
log.warning("DISPENSE_BIN is not defined! Lookups for prices will fail!")
log.warning("DISPENSE_BIN is not defined! Lookups for prices will fallback to weird numbers (for testing)!")
def run_dispense(*args):
if DISPENSE_BIN is None:
......@@ -35,9 +35,12 @@ def get_item_price(itemid):
""" gets the price of the given dispense item in cents """
if (itemid is None or itemid == ""):
return None
if DISPENSE_BIN is None:
return 2223
out = run_dispense('iteminfo', itemid)
if (out is None):
return 123456
if out is None:
return None
s = out.split() # get something like ['pseudo:7', '25.00', 'membership', '(non-student', 'and', 'non-guild)']
if (s[0] != itemid):
......@@ -45,4 +48,4 @@ def get_item_price(itemid):
return None
else:
# return the price as a number of cents
return int(float(s[0]) * 100)
\ No newline at end of file
return int(float(s[0]) * 100)
......@@ -14,8 +14,18 @@ class CardPayment(models.Model):
date_created = models.DateTimeField('Date created', auto_now_add=True)
date_paid = models.DateTimeField('Date paid (payment captured)', null=True, blank=True)
def set_paid(self):
card_payment.is_paid = True
card_payment.date_paid = timezone.now()
card_payment.save()
class MembershipPayment(CardPayment):
"""
Link the payment to a specific membership
"""
membership = models.ForeignKey(Membership, on_delete=models.CASCADE, related_name='payments')
def set_paid(self):
self.membership.date_paid = timezone.now()
self.membership.payment_method = 'online'
super().set_paid()
......@@ -49,14 +49,10 @@ def try_capture_payment(card_payment, nonce):
try:
api_response = api_inst.charge(loc_id, request_body)
set_paid(card_payment)
card_payment.set_paid()
log.info("TransactionApi response without error, charge $%1.2f" % (float(card_payment.amount) / 100.0))
return True
except ApiException as e:
log.error("Exception while calling TransactionApi::charge: %s" % e)
return False
def set_paid(card_payment):
card_payment.is_paid = True
card_payment.date_paid = timezone.now()
card_payment.save()
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment