From 4cbcf8cac5e8cad592d9d84d76408249ccca8112 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Mon, 5 Jun 2023 11:45:00 +0200 Subject: [PATCH] Allow disable paypal. --- src/club/models.py | 5 +++++ src/club/payment_methods.py | 17 ++++++++++------- .../club/2022/donation_step1_form.html | 9 ++++++--- .../templates/club/2022/donation_step2.html | 7 +++++-- .../templates/club/2022/donation_step3.html | 18 +++++++++++------- src/club/views.py | 5 +++++ src/wolnelektury/settings/contrib.py | 1 + .../static/2022/images/payments-2.png | Bin 4299 -> 0 bytes .../static/2022/images/payments-paypal.png | Bin 0 -> 5958 bytes .../static/2022/images/payments-payu.png | Bin 0 -> 7213 bytes 10 files changed, 43 insertions(+), 19 deletions(-) delete mode 100644 src/wolnelektury/static/2022/images/payments-2.png create mode 100644 src/wolnelektury/static/2022/images/payments-paypal.png create mode 100644 src/wolnelektury/static/2022/images/payments-payu.png diff --git a/src/club/models.py b/src/club/models.py index 676669497..8fe3e4798 100644 --- a/src/club/models.py +++ b/src/club/models.py @@ -73,6 +73,11 @@ class Club(models.Model): amounts = self.monthlyamount_set if monthly else self.singleamount_set amount = amounts.all().filter(amount__lte=amount).last() return amount.description if amount is not None else '' + + @property + def paypal_enabled(self): + print("ENABLED?", settings.PAYPAL_ENABLED) + return settings.PAYPAL_ENABLED class SingleAmount(models.Model): diff --git a/src/club/payment_methods.py b/src/club/payment_methods.py index 8d1ad7be9..4a596e45b 100644 --- a/src/club/payment_methods.py +++ b/src/club/payment_methods.py @@ -150,13 +150,16 @@ class PayPal(PaymentMethod): is_onetime = False def invite_widget(self, schedule, request): - return render_to_string( - 'club/payment/paypal_invite.html', - { - 'schedule': schedule, - }, - request=request - ) + if settings.PAYPAL_ENABLED: + return render_to_string( + 'club/payment/paypal_invite.html', + { + 'schedule': schedule, + }, + request=request + ) + else: + return '' def initiate(self, request, schedule): app = request.GET.get('app') diff --git a/src/club/templates/club/2022/donation_step1_form.html b/src/club/templates/club/2022/donation_step1_form.html index 6b985eded..7066db593 100644 --- a/src/club/templates/club/2022/donation_step1_form.html +++ b/src/club/templates/club/2022/donation_step1_form.html @@ -67,9 +67,12 @@
- -Bezpieczne płatności zapewniają: - + + Bezpieczne płatności zapewniają: + PayU Visa MasterCard + {% if club.paypal_enabled %} + PayPal + {% endif %}
diff --git a/src/club/templates/club/2022/donation_step2.html b/src/club/templates/club/2022/donation_step2.html index f115ece6b..4f43b84fb 100644 --- a/src/club/templates/club/2022/donation_step2.html +++ b/src/club/templates/club/2022/donation_step2.html @@ -97,7 +97,7 @@
- Powrót + Powrót
@@ -109,6 +109,9 @@
Bezpieczne płatności zapewniają: - + PayU Visa MasterCard + {% if club.paypal_enabled %} + PayPal + {% endif %}
{% endblock %} diff --git a/src/club/templates/club/2022/donation_step3.html b/src/club/templates/club/2022/donation_step3.html index a368c659b..7acb6170b 100644 --- a/src/club/templates/club/2022/donation_step3.html +++ b/src/club/templates/club/2022/donation_step3.html @@ -15,8 +15,8 @@ {{ schedule.amount|floatformat }} zł {% if schedule.monthly %} /mies. - {% endif %} - + {% endif %} +
@@ -91,13 +91,17 @@
- Powrót - + Powrót
- Bezpieczne płatności zapewniają +
+ + Bezpieczne płatności zapewniają: + PayU Visa MasterCard + {% if club.paypal_enabled %} + PayPal + {% endif %} +
{% endblock %} diff --git a/src/club/views.py b/src/club/views.py index 74ff2fb90..e80fcf977 100644 --- a/src/club/views.py +++ b/src/club/views.py @@ -53,6 +53,11 @@ class DonationStep2(UpdateView): template_name = 'club/2022/donation_step2.html' step = 2 + def get_context_data(self, **kwargs): + c = super().get_context_data(**kwargs) + c['club'] = models.Club.objects.first() + return c + class JoinView(CreateView): @property diff --git a/src/wolnelektury/settings/contrib.py b/src/wolnelektury/settings/contrib.py index 858c4022c..664003ff1 100644 --- a/src/wolnelektury/settings/contrib.py +++ b/src/wolnelektury/settings/contrib.py @@ -17,6 +17,7 @@ PAYPAL_CONFIG = { 'client_id': '', 'client_secret': '', } +PAYPAL_ENABLED = True REST_FRAMEWORK = { "DEFAULT_RENDERER_CLASSES": ( diff --git a/src/wolnelektury/static/2022/images/payments-2.png b/src/wolnelektury/static/2022/images/payments-2.png deleted file mode 100644 index 346076122b82bb818684b5b455e53747078a995f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4299 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 diff --git a/src/wolnelektury/static/2022/images/payments-paypal.png b/src/wolnelektury/static/2022/images/payments-paypal.png new file mode 100644 index 0000000000000000000000000000000000000000..f26e1cc0b56e0075d773ec2c90190a1d12fb766e GIT binary patch literal 5958 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