From 4920026ba70f079b8552b29f433a223c7937f8b7 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Wed, 9 Mar 2022 21:41:10 +0100
Subject: [PATCH] Add SEPA payment methods

---
 aleksis/apps/tezor/apps.py        | 11 +++++++++++
 aleksis/apps/tezor/preferences.py | 33 +++++++++++++++++++++++++++++++
 pyproject.toml                    |  1 +
 3 files changed, 45 insertions(+)

diff --git a/aleksis/apps/tezor/apps.py b/aleksis/apps/tezor/apps.py
index a5af98e..e2418d2 100644
--- a/aleksis/apps/tezor/apps.py
+++ b/aleksis/apps/tezor/apps.py
@@ -49,4 +49,15 @@ class DefaultConfig(AppConfig):
                 "endpoint": "https://api.paypal.com",
             })
 
+        if prefs["payments__pledge_enabled"]:
+            variants["paypal"] = ("djp_sepa.PaymentPledgeProvider", {
+            })
+
+
+        if prefs["payments__sdd_creditor_identifier"]:
+            variants["paypal"] = ("djp_sepa.DirectDebitProvider", {
+                "creditor": prefs["payments__sdd_creditor"],
+                "creditor_identifier": prefs["payments__sdd_creditor_identifier"],
+            })
+
         return variants
diff --git a/aleksis/apps/tezor/preferences.py b/aleksis/apps/tezor/preferences.py
index adf2b29..9cf7797 100644
--- a/aleksis/apps/tezor/preferences.py
+++ b/aleksis/apps/tezor/preferences.py
@@ -72,3 +72,36 @@ class PaypalCapture(BooleanPreference):
     verbose_name = _("PayPal - Use Authorize & Capture")
     default = False
     required = False
+
+
+@site_preferences_registry.register
+class EnablePledge(BooleanPreference):
+    """Payment pledge payment backend - enable or not."""
+
+    section = payments
+    name = "pledge_enabled"
+    verbose_name = _("Enabledp ledged payments")
+    default = False
+    required = False
+
+
+@site_preferences_registry.register
+class SDDCreditor(StringPreference):
+    """SEPA direct debit backend - creditor name."""
+
+    section = payments
+    name = "sdd_creditor"
+    verbose_name = _("SEPA Direct Debit - Creditor name")
+    default = ""
+    required = False
+
+
+@site_preferences_registry.register
+class SDDCreditorIdentifier(StringPreference):
+    """SEPA direct debit backend - creditor identifier."""
+
+    section = payments
+    name = "sdd_creditor_identifier"
+    verbose_name = _("SEPA Direct Debit - Creditor identifier")
+    default = ""
+    required = False
diff --git a/pyproject.toml b/pyproject.toml
index b57f3a3..9010b7c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -33,6 +33,7 @@ python = "^3.9"
 aleksis-core = "^2.7"
 django-payments = "^0.15.0"
 pycountry = "22.1.10"
+django-payments-sepa = "^1.0.dev0"
 
 [tool.poetry.dev-dependencies]
 aleksis-builddeps = "*"
-- 
GitLab