gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-bank] branch master updated: implement wire-transfer form


From: gnunet
Subject: [taler-bank] branch master updated: implement wire-transfer form
Date: Wed, 02 Jun 2021 17:31:57 +0200

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository bank.

The following commit(s) were added to refs/heads/master by this push:
     new df1a91c  implement wire-transfer form
df1a91c is described below

commit df1a91c06fffe37f9ba99963829b35cfdb874450
Author: ms <ms@taler.net>
AuthorDate: Wed Jun 2 17:31:48 2021 +0200

    implement wire-transfer form
---
 talerbank/app/templates/payto_wiretransfer.html    |  1 -
 talerbank/app/templates/profile_page.html          |  2 +-
 .../{payto_wiretransfer.html => wiretransfer.html} | 27 +++++++------
 talerbank/app/urls.py                              |  1 +
 talerbank/app/views.py                             | 44 ++++++++++++++++++++++
 5 files changed, 62 insertions(+), 13 deletions(-)

diff --git a/talerbank/app/templates/payto_wiretransfer.html 
b/talerbank/app/templates/payto_wiretransfer.html
index b435248..06a2fd5 100644
--- a/talerbank/app/templates/payto_wiretransfer.html
+++ b/talerbank/app/templates/payto_wiretransfer.html
@@ -59,7 +59,6 @@
                type="submit"
                value={{ _("Confirm") }} />
       </form>
-      <p><a href=" {{ url('profile') }}">Cancel</a></p>
     </div>
     </article>
   </section>
diff --git a/talerbank/app/templates/profile_page.html 
b/talerbank/app/templates/profile_page.html
index b62e4fb..0abecc4 100644
--- a/talerbank/app/templates/profile_page.html
+++ b/talerbank/app/templates/profile_page.html
@@ -75,7 +75,7 @@
     </article>
     <article>
       <h2>{{ _("Transactions for") }} {{ name }}</h2>
-      <p><a href={{ url('payto-form') }}>{{_("Transfer money manually") 
}}</a></p>
+      <p><a href={{ url('wiretransfer-form') }}>{{_("Transfer money manually") 
}}</a></p>
       <div id="transactions-history">
         {% if history %}
         <table class="pure-table">
diff --git a/talerbank/app/templates/payto_wiretransfer.html 
b/talerbank/app/templates/wiretransfer.html
similarity index 69%
copy from talerbank/app/templates/payto_wiretransfer.html
copy to talerbank/app/templates/wiretransfer.html
index b435248..0813d97 100644
--- a/talerbank/app/templates/payto_wiretransfer.html
+++ b/talerbank/app/templates/wiretransfer.html
@@ -43,23 +43,28 @@
     <article>
     <div>
       <h2>{{ _("Wire transfer") }}</h2>
-      <p>{{ _("Transfer money via the payto system:") }}
+      <p>{{ _("Transfer money to another account of this bank:") }}
       <br>
       <br>
-      <tt style="font-size: 
15px">payto://x-taler-bank/[bank-hostname]/[receiver-username]?message=[subject]&amount=[{{
 currency }}:X.Y]</tt>
       </p>
-        <form action="{{ url('payto-transfer') }}"
+        <form action="{{ url('wiretransfer-form') }}"
               method="POST"
-              name="payto-form">
+              name="wire-transfer-form">
         <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token 
}}" />
-        <input name="address"
-               placeholder={{ _("payto address") }}
-               
pattern="payto://x-taler-bank/[a-z\.]+(:[0-9]+)?/[0-9a-zA-Z]+\?message=[a-zA-Z0-9
 ]+&amount={{ currency }}:[0-9]+(\.[0-9]+)?" />
-        <input class="pure-button pure-button-primary"
-               type="submit"
-               value={{ _("Confirm") }} />
+        <input name="receiver" placeholder={{ _("receiver") }} />
+       <br>
+       <br>
+        <input name="subject" placeholder={{ _("subject") }} />
+       <br>
+       <br>
+        <input name="amount"
+              placeholder={{ _("amount (CURRENCY:X.YY)") }}
+              pattern="{{ currency }}:[0-9]+(\.[0-9]+)?"/>
+       <br>
+       <br>
+        <input class="pure-button pure-button-primary" type="submit" value={{ 
_("Confirm") }} />
       </form>
-      <p><a href=" {{ url('profile') }}">Cancel</a></p>
+      <p><a href="{{ url('payto-form') }}">Want to try the raw 
payto://-format?</a></p>
     </div>
     </article>
   </section>
diff --git a/talerbank/app/urls.py b/talerbank/app/urls.py
index a27c6d5..9a41a13 100644
--- a/talerbank/app/urls.py
+++ b/talerbank/app/urls.py
@@ -117,6 +117,7 @@ urlpatterns += i18n_patterns(
     path("register", views.register, name="register"),
     path("profile", views.profile_page, name="profile"),
     path("payto-form", views.payto_form, name="payto-form"),
+    path("wiretransfer-form", views.wiretransfer_form, 
name="wiretransfer-form"),
     path(
         "login",
         auth_views.LoginView.as_view(
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index c0f0303..6a9b3a2 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -294,6 +294,50 @@ class PaytoTransferForm(forms.Form):
     address = forms.CharField()
 
 
+@login_required
+def wiretransfer_form(request):
+    if request.method == "GET":
+        is_success, hint = get_session_hint(request)
+        context = dict(
+            currency=request.user.bankaccount.balance.amount.currency,
+            is_success=is_success,
+            hint=hint,
+        )
+        return render(request, "wiretransfer.html", context)
+
+    # A payment was submitted. 
+    try:
+        amount = Amount.parse(request.POST.get("amount"))
+    except Exception:
+        set_session_hint(request, success=False, hint="Wrong amount 
specified.")
+        return redirect("wiretransfer-form")
+    try:
+        receiver_user = User.objects.get(username=request.POST.get("receiver"))
+    except User.DoesNotExist:
+        set_session_hint(request, success=False, hint="Money receiver was not 
found")
+        return redirect("wiretransfer-form")
+
+    try:
+
+        wire_transfer(
+            amount,
+            request.user.bankaccount,
+            receiver_user.bankaccount,
+            request.POST.get("subject", "not given")
+        )
+    except Exception as exception:
+        hint = str(exception)
+        if hasattr(exception, "hint"):
+            hint = exception.hint
+        set_session_hint(request, success=False, hint=hint)
+        return redirect("wiretransfer-form")
+
+    set_session_hint(request, success=True, hint=gettext("Wire transfer 
successful!"))
+    return redirect("profile")
+
+
+
+
 @login_required
 def payto_form(request):
     is_success, hint = get_session_hint(request)

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]