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,