diff --git a/apps/payment/templates/payment/pay.html b/apps/payment/templates/payment/pay.html
new file mode 100644
index 00000000..e25caa87
--- /dev/null
+++ b/apps/payment/templates/payment/pay.html
@@ -0,0 +1,10 @@
+{% extends "templates/lilcity/index.html" %} {% load static %} {% block content %}
+{% if school and request.user.bonus %}
+
+{% endif %}
+
+
+ {% include "./paymentwall_widget.html" %}
+
+
+{% endblock content %}
diff --git a/apps/payment/templates/payment/paymentwall_widget.html b/apps/payment/templates/payment/paymentwall_widget.html
index bdde28e0..08fc4c5f 100644
--- a/apps/payment/templates/payment/paymentwall_widget.html
+++ b/apps/payment/templates/payment/paymentwall_widget.html
@@ -1,9 +1,3 @@
-{% extends "templates/lilcity/index.html" %} {% load static %} {% block content %}
-
-
- {% autoescape off %}
- {{ widget }}
- {% endautoescape %}
-
-
-{% endblock content %}
+{% autoescape off %}
+{{ widget }}
+{% endautoescape %}
diff --git a/apps/payment/views.py b/apps/payment/views.py
index 8eb30777..688287c2 100644
--- a/apps/payment/views.py
+++ b/apps/payment/views.py
@@ -119,7 +119,8 @@ class CourseBuyView(TemplateView):
@method_decorator(login_required, name='dispatch')
class SchoolBuyView(TemplateView):
- template_name = 'payment/paymentwall_widget.html'
+ # template_name = 'payment/paymentwall_widget.html'
+ template_name = 'payment/pay.html'
def get(self, request, *args, **kwargs):
host = urlsplit(self.request.META.get('HTTP_REFERER'))
@@ -128,30 +129,39 @@ class SchoolBuyView(TemplateView):
roistat_visit = request.COOKIES.get('roistat_visit', None)
date_start = request.GET.get('date_start')
duration = request.GET.get('duration')
+ payment_id = request.GET.get('payment_id')
package = get_object_or_404(Package, duration=duration)
date_start = date_start and datetime.datetime.strptime(date_start, '%Y-%m-%d').date() or now().date()
- amount_data = SchoolPayment.calc_amount(package=package, user=request.user, date_start=date_start)
- school_payment = SchoolPayment.objects.create(
- user=request.user,
- weekdays=amount_data.get('weekdays'),
- roistat_visit=roistat_visit,
- date_start=amount_data.get('date_start'),
- date_end=amount_data.get('date_end'),
- package=package,
- )
+ if payment_id:
+ school_payment = get_object_or_404(SchoolPayment, id=payment_id)
+ else:
+ amount_data = SchoolPayment.calc_amount(package=package, user=request.user, date_start=date_start)
+ school_payment = SchoolPayment.objects.create(
+ user=request.user,
+ weekdays=amount_data.get('weekdays'),
+ roistat_visit=roistat_visit,
+ date_start=amount_data.get('date_start'),
+ date_end=amount_data.get('date_end'),
+ package=package,
+ )
if use_bonuses and request.user.bonus:
if request.user.bonus >= school_payment.amount:
bonus = UserBonus.objects.create(amount= -school_payment.amount, user=request.user, payment=school_payment)
school_payment.amount = 0
school_payment.status = Pingback.PINGBACK_TYPE_REGULAR
else:
- bonus = UserBonus.objects.create(amount= -request.user.bonus, user=request.user,
- payment=school_payment)
school_payment.amount -= request.user.bonus
+ bonus = UserBonus.objects.create(amount= -request.user.bonus, user=request.user,
+ payment=school_payment)
school_payment.bonus = bonus
school_payment.save()
if school_payment.is_paid():
return redirect(reverse_lazy('payment-success'))
+ if payment_id and school_payment.bonus and not use_bonuses:
+ bonus = school_payment.bonus
+ school_payment.amount += school_payment.bonus
+ school_payment.bonus = None
+ bonus.delete()
product = Product(
f'school_{school_payment.id}',
school_payment.amount,