From 426417dcdad3c4bc0c82a041c8e56a1952c029be Mon Sep 17 00:00:00 2001
From: frekk <frekk@ucc.asn.au>
Date: Sun, 30 Dec 2018 18:05:03 +0800
Subject: [PATCH] check whether pending membership exists when renewing

---
 gms/memberdb/approve.py  | 8 ++++----
 gms/memberdb/register.py | 6 +-----
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/gms/memberdb/approve.py b/gms/memberdb/approve.py
index 494395a..e3c47d7 100644
--- a/gms/memberdb/approve.py
+++ b/gms/memberdb/approve.py
@@ -28,7 +28,10 @@ def get_membership_type(member):
         return best['dispense']
 
 def make_pending_membership(member):
-    ms = Membership(member=member, approved=False)
+    # check if this member already has a pending membership
+    ms = Membership.objects.filter(member=member, approved__exact=False).first()
+    if (ms is None):
+        ms = Membership(member=member, approved=False)
     ms.date_submitted = timezone.now()
     ms.membership_type = get_membership_type(member)
     return ms
@@ -41,7 +44,6 @@ and have a look at .admin.MembershipAdmin
 class MembershipApprovalForm(MyModelForm):
     payment_confirm = forms.BooleanField(label='Confirm payment', required=False)
 
-
     class Meta:
         model = Membership
         fields = ['membership_type', 'payment_method']
@@ -105,7 +107,6 @@ class MembershipApprovalAdminView(MyUpdateView):
     pk_url_kwarg = 'object_id'
     # override with the instance of ModelAdmin
     admin = None
-    object = None
 
     def get_context_data(self, **kwargs):
         ms = self.get_object()
@@ -119,7 +120,6 @@ class MembershipApprovalAdminView(MyUpdateView):
         })
         return context
 
-
     """
     called when the approval form is submitted and valid data (according to the form's field types and defined validators) is given
     """
diff --git a/gms/memberdb/register.py b/gms/memberdb/register.py
index a5e7e84..add5737 100644
--- a/gms/memberdb/register.py
+++ b/gms/memberdb/register.py
@@ -2,10 +2,9 @@
 This file implements the member-facing registration workflow. See ../../README.md
 """
 
-from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponseRedirect
 from django.shortcuts import render
 from django.urls import reverse
-from django.views.generic.edit import CreateView, UpdateView
 from django.contrib.auth.mixins import LoginRequiredMixin
 from django.utils.safestring import mark_safe
 from django import forms
@@ -74,9 +73,6 @@ class RenewForm(RegisterForm):
             ms.save()
         return m, ms
 
-
-
-
 """
 simple FormView which displays registration form and handles template rendering & form submission
 """
-- 
GitLab