diff --git a/donate/subscription.py b/donate/subscription.py
index 911df4a98..801541544 100644
--- a/donate/subscription.py
+++ b/donate/subscription.py
@@ -223,7 +223,7 @@ def get_display_transaction_details(transaction):
def get_academic_centers(request):
stateId = request.GET.get('stateId')
if stateId:
- ac = AcademicCenter.objects.filter(state_id=stateId).order_by('institution_name').values('id', 'institution_name', 'academic_code')
+ ac = AcademicCenter.objects.filter(state_id=stateId).order_by('institution_name').values('id', 'institution_name', 'academic_code','institution_type_id' )
return JsonResponse(list(ac), safe=False)
return JsonResponse([])
diff --git a/spoken/views.py b/spoken/views.py
index e9e46f1b6..e1a9116a5 100644
--- a/spoken/views.py
+++ b/spoken/views.py
@@ -940,6 +940,9 @@ def subscription(request):
user = request.user
context = {}
context["subscription_amount"] = settings.SUBSCRIPTION_AMOUNT
+ context["SUBSCRIPTION_AMOUNT_COLLEGE"] = settings.SUBSCRIPTION_AMOUNT_COLLEGE
+ context["SUBSCRIPTION_INSTITUTE_TYPES"] = settings.SUBSCRIPTION_INSTITUTE_TYPES
+
template = 'spoken/templates/subscription.html'
if request.method == 'GET':
form = AcademicSubscriptionForm(user=user)
@@ -952,8 +955,13 @@ def subscription(request):
academic = form.cleaned_data.get('institute')
expiry_date = date.today() + timedelta(days=365)
state = form.cleaned_data.get('state')
- total_academic_centers = len(academic)
- subscription_amount = settings.SUBSCRIPTION_AMOUNT * total_academic_centers
+ subscription_amount = 0
+
+ for ac in academic:
+ if ac.institute_type_id in settings.SUBSCRIPTION_INSTITUTE_TYPES:
+ subscription_amount += settings.SUBSCRIPTION_AMOUNT_COLLEGE
+ else:
+ subscription_amount += settings.SUBSCRIPTION_AMOUNT
email = form.cleaned_data.get('email')
data = {
'name': form.cleaned_data.get('name'),
@@ -971,13 +979,20 @@ def subscription(request):
for ac in academic:
gst_no = request.POST.get(f"gst_no_{ac.id}")
gst_name = request.POST.get(f"gst_name_{ac.id}")
+ if ac.institute_type_id in settings.SUBSCRIPTION_INSTITUTE_TYPES:
+ amount = settings.SUBSCRIPTION_AMOUNT_COLLEGE
+ else:
+ amount = settings.SUBSCRIPTION_AMOUNT
+
AcademicSubscriptionDetail.objects.create(
- subscription = subscription,
- academic = ac,
- subscription_end_date = expiry_date, # Default to expiry_date,
- gst_number = gst_no.strip(),
- gst_name = gst_name.strip()
+ subscription=subscription,
+ academic=ac,
+ subscription_end_date=expiry_date,
+ gst_number=gst_no.strip() if gst_no else None,
+ gst_name=gst_name.strip() if gst_name else None,
+ amount=amount
)
+
else:
messages.add_message(request, messages.ERROR, "Please see below errors.")
return render(request, template, context=context)
@@ -1007,6 +1022,7 @@ def subscription(request):
subscription.save()
messages.add_message(request, messages.ERROR, "An error occurred. Please try later")
return render(request, template, context=context)
+
@csrf_exempt
def payment_callback(request):
diff --git a/static/spoken/templates/subscription.html b/static/spoken/templates/subscription.html
index acdd35e53..db22890f9 100644
--- a/static/spoken/templates/subscription.html
+++ b/static/spoken/templates/subscription.html
@@ -114,6 +114,12 @@
+
+