From 0cb5f71843cd333ce8512bcb980cd490bf992bfb Mon Sep 17 00:00:00 2001 From: frekk <frekk@ucc.asn.au> Date: Tue, 26 Feb 2019 20:50:36 +0800 Subject: [PATCH] make approval form respect already-paid memberships --- src/memberdb/approve.py | 11 ++++++++--- src/memberdb/models.py | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/memberdb/approve.py b/src/memberdb/approve.py index 59fe2bc..50ca2ad 100644 --- a/src/memberdb/approve.py +++ b/src/memberdb/approve.py @@ -32,6 +32,7 @@ class MembershipApprovalForm(MyModelForm): # override the model membership_type field so we display all the options with prices self.fields['membership_type'].choices = get_membership_choices() + self.fields['payment_confirm'].initial = (self.instance.date_paid is not None) def clean(self): """ @@ -50,9 +51,13 @@ class MembershipApprovalForm(MyModelForm): data['date_approved'] = now if (data['payment_confirm'] == True): - if (data['payment_method'] == ''): - self.add_error('payment_method', 'Please select a payment method') - data['date_paid'] = now + if data['payment_method'] == self.instance.payment_method and data['payment_confirm'] == (self.instance.date_paid is not None): + # check if the payment was already made, preserve the date_paid + data['date_paid'] = self.instance.date_paid + else: + if (data['payment_method'] == ''): + self.add_error('payment_method', 'Please select a payment method') + data['date_paid'] = now else: data['date_paid'] = None diff --git a/src/memberdb/models.py b/src/memberdb/models.py index f4bcea3..b8cb469 100644 --- a/src/memberdb/models.py +++ b/src/memberdb/models.py @@ -109,6 +109,7 @@ def make_pending_membership(member): # otherwise update the existing membership and mark as pending latest.approved = False + latest.date_approved = None latest.date_submitted = timezone.now() return latest -- GitLab