Fixes #4076: Recommendations from collections.
[wolnelektury.git] / src / club / payment_methods.py
index 29221ee..1b27bd3 100644 (file)
@@ -1,8 +1,12 @@
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
 from django.conf import settings
 from django.urls import reverse
 
 
 class PaymentMethod(object):
 from django.conf import settings
 from django.urls import reverse
 
 
 class PaymentMethod(object):
+    is_onetime = False
     is_recurring = False
 
     def initiate(self, request, schedule):
     is_recurring = False
 
     def initiate(self, request, schedule):
@@ -10,8 +14,8 @@ class PaymentMethod(object):
 
 
 class PayU(PaymentMethod):
 
 
 class PayU(PaymentMethod):
+    is_onetime = True
     slug = 'payu'
     slug = 'payu'
-    name = 'PayU'
     template_name = 'club/payment/payu.html'
 
     def __init__(self, pos_id):
     template_name = 'club/payment/payu.html'
 
     def __init__(self, pos_id):
@@ -30,7 +34,6 @@ class PayU(PaymentMethod):
 
 class PayURe(PaymentMethod):
     slug='payu-re'
 
 class PayURe(PaymentMethod):
     slug='payu-re'
-    name = 'PayU Recurring'
     template_name = 'club/payment/payu-re.html'
     is_recurring = True
 
     template_name = 'club/payment/payu-re.html'
     is_recurring = True
 
@@ -43,45 +46,36 @@ class PayURe(PaymentMethod):
     def pay(self, request, schedule):
         # Create order, put it and see what happens next.
         from .models import PayUOrder
     def pay(self, request, schedule):
         # Create order, put it and see what happens next.
         from .models import PayUOrder
+        if request is not None:
+            ip = request.META['REMOTE_ADDR']
+        else:
+            ip = '127.0.0.1'
         order = PayUOrder.objects.create(
             pos_id=self.pos_id,
         order = PayUOrder.objects.create(
             pos_id=self.pos_id,
-            customer_ip=request.META['REMOTE_ADDR'],
+            customer_ip=ip,
             schedule=schedule,
         )
         return order.put()
         
 
             schedule=schedule,
         )
         return order.put()
         
 
-class PayPalRe(PaymentMethod):
-    slug='paypal-re'
-    name = 'PayPal Recurring'
-    template_name = 'club/payment/paypal-re.html'
+class PayPal(PaymentMethod):
+    slug='paypal'
+    template_name = 'club/payment/paypal.html'
     is_recurring = True
     is_recurring = True
+    is_onetime = True
 
     def initiate(self, request, schedule):
         return reverse('club_dummy_payment', args=[schedule.key])
 
 
 
     def initiate(self, request, schedule):
         return reverse('club_dummy_payment', args=[schedule.key])
 
 
-methods = []
-
-pos = getattr(settings, 'CLUB_PAYU_POS', None)
+pos = getattr(settings, 'CLUB_PAYU_RECURRING_POS', None)
 if pos:
 if pos:
-    payu_method = PayU(pos)
-    methods.append(payu_method)
+    recurring_payment_method = PayURe(pos)
 else:
 else:
-    payu_method = None
+    recurring_payment_method = None
 
 
-pos= getattr(settings, 'CLUB_PAYU_RECURRING_POS', None)
+pos = getattr(settings, 'CLUB_PAYU_POS', None)
 if pos:
 if pos:
-    payure_method = PayURe(pos)
-    methods.append(payure_method)
+    single_payment_method = PayU(pos)
 else:
 else:
-    payure_method = None
-
-
-methods.append(PayPalRe())
-
-
-method_by_slug = {
-    m.slug: m
-    for m in methods
-}
+    single_payment_method = None