gnunet-svn
[Top][All Lists]
Advanced

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

[taler-bank] branch master updated: Separating HTML/JSON handlers.


From: gnunet
Subject: [taler-bank] branch master updated: Separating HTML/JSON handlers.
Date: Thu, 01 Oct 2020 17:42:47 +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 26a0dc0  Separating HTML/JSON handlers.
26a0dc0 is described below

commit 26a0dc073d9ca2a3b05a20db3fe93990deb1dc35
Author: MS <ms@taler.net>
AuthorDate: Thu Oct 1 17:42:27 2020 +0200

    Separating HTML/JSON handlers.
---
 talerbank/app/templates/profile_page.html     | 21 +++++------
 talerbank/app/templates/public_accounts.html  | 21 +++++------
 talerbank/app/templates/withdraw_confirm.html |  4 +--
 talerbank/app/urls.py                         |  1 +
 talerbank/app/views.py                        | 50 ++++++++++++++++-----------
 5 files changed, 49 insertions(+), 48 deletions(-)

diff --git a/talerbank/app/templates/profile_page.html 
b/talerbank/app/templates/profile_page.html
index d43b16b..cdedc7e 100644
--- a/talerbank/app/templates/profile_page.html
+++ b/talerbank/app/templates/profile_page.html
@@ -30,20 +30,15 @@
   </section>
   <section id="main">
     <article>
-      {% if fail_message %}
-        <div class="notification">
-          <p class="informational informational-fail">
-            {{ hint }}
-          </p>
-        </div>
+      <div class="notification">
+      {% if not is_success %}
+        <p class="informational informational-fail">
+      {% else%}
+        <p class="informational informational-ok">
       {% endif %}
-      {% if success_message %}
-        <div class="notification">
-          <p class="informational informational-ok">
-            {{ hint }}
-          </p>
-        </div>
-        {% endif %}
+        {{ hint }}
+        </p>
+      </div>
     </article>
     <article>
       <div>
diff --git a/talerbank/app/templates/public_accounts.html 
b/talerbank/app/templates/public_accounts.html
index a2110fb..61b0c23 100644
--- a/talerbank/app/templates/public_accounts.html
+++ b/talerbank/app/templates/public_accounts.html
@@ -25,20 +25,15 @@
   <a href="{{ url('index') }}">Back</a>
   <section id="main">
     <article>
-      {% if fail_message %}
-        <div class="notification">
-          <p class="informational informational-fail">
-            {{ hint }}
-          </p>
-        </div>
+      <div class="notification">
+      {% if not is_success %}
+        <p class="informational informational-fail">
+      {% else %}
+        <p class="informational informational-ok">
       {% endif %}
-      {% if success_message %}
-        <div class="notification">
-          <p class="informational informational-ok">
-            {{ hint }}
-          </p>
-        </div>
-        {% endif %}
+        {{ hint }}
+        </p>
+      </div>
       <div name="accountMenu" class="pure-menu pure-menu-horizontal">
         <ul class="pure-menu-list">
         {% for account in public_accounts %}
diff --git a/talerbank/app/templates/withdraw_confirm.html 
b/talerbank/app/templates/withdraw_confirm.html
index d4ffcfe..8c81484 100644
--- a/talerbank/app/templates/withdraw_confirm.html
+++ b/talerbank/app/templates/withdraw_confirm.html
@@ -24,7 +24,7 @@
 {% endblock %}
 
 {% block content %}
-  {% if fail_message %}
+  {% if not is_success %}
   <p class="informational informational-fail">
     {{ hint }}
   </p>
@@ -38,7 +38,7 @@
   <p>
     What is {{ question }} ?
   </p>
-  <form method="post" action="{{ url('access-api-withdrawal-abort', 
acct_id=account_id, wid=withdraw_id) }}" class="pure-form">
+  <form method="post" action="{{ url('abort-withdrawal', 
withdraw_id=withdraw_id) }}" class="pure-form">
     <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}" />
     <input type="submit" value="Abort" class="pure-button pure-button-primary" 
/>
   </form>
diff --git a/talerbank/app/urls.py b/talerbank/app/urls.py
index 42dc239..1994542 100644
--- a/talerbank/app/urls.py
+++ b/talerbank/app/urls.py
@@ -102,6 +102,7 @@ urlpatterns = [
         views.api_config,
         name="api-config",
     ),
+    path("abort-withdrawal/<str:withdraw_id>", views.abort_withdrawal, 
name="abort-withdrawal"),
     path("start-withdrawal", views.start_withdrawal, name="start-withdrawal"),
     path(
         "show-withdrawal/<str:withdraw_id>", views.show_withdrawal, 
name="withdraw-show"
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 69f610f..937f61f 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -206,21 +206,20 @@ def get_session_hint(request, hintId):
         ret = request.session[hintId]
         del request.session[hintId]
         return ret
+    return False, None
 
-    return False, False, None
 
-
-def set_profile_hint(request, *, success, failure, hint):
+def set_profile_hint(request, *, success, hint):
     set_session_hint(
-        request, "profile_hint", success=success, failure=failure, hint=hint
+        request, "profile_hint", success=success, hint=hint
     )
 
 
-def set_session_hint(request, hintId, *, success, failure, hint):
+def set_session_hint(request, hintId, *, success, hint):
     if hintId in request.session:
         LOGGER.warning(f"Overriding a non consumed hint: {hintId}")
         del request.session[hintId]
-    request.session[hintId] = success, failure, hint
+    request.session[hintId] = success, hint
 
 
 ##
@@ -327,18 +326,17 @@ def profile_page(request):
             )
 
             set_profile_hint(
-                request, failure=False, success=True, hint="Wire transfer 
successful!"
+                request, success=True, hint="Wire transfer successful!"
             )
 
             return redirect("profile")
 
     wtf = WTForm()
-    is_success, is_failure, hint = get_session_hint(request, "profile_hint")
+    is_success, hint = get_session_hint(request, "profile_hint")
     context = dict(
         name=request.user.username,
         balance=request.user.bankaccount.balance,
-        fail_message=is_failure,
-        success_message=is_success,
+        is_success=is_success,
         hint=hint,
         precision=settings.TALER_DIGITS,
         currency=request.user.bankaccount.balance.amount.currency,
@@ -506,7 +504,7 @@ def register(request):
         )
 
     set_profile_hint(
-        request, success=True, failure=False, hint="Registration successful!"
+        request, success=True, hint="Registration successful!"
     )
 
     django.contrib.auth.login(request, user)
@@ -1225,7 +1223,7 @@ def confirm_withdrawal(request, withdraw_id):
         )
 
         set_profile_hint(
-            request, success=True, failure=False, hint="Withdrawal successful!"
+            request, success=True, hint="Withdrawal successful!"
         )
         request.session["just_withdrawn"] = True
 
@@ -1397,6 +1395,22 @@ def bank_accounts_api_get_withdrawal(request, user, 
acct_id, wid):
         }
     )
 
+def withdraw_abort_internal(wid):
+    op = TalerWithdrawOperation.objects.get(withdraw_id=wid)
+    if op.confirmation_done:
+        return dict(status=409, hint="can't abort confirmed withdrawal")
+    op.aborted = True
+    op.save()
+    return dict(status=200)
+
+
+@require_POST
+@login_required
+def abort_withdrawal(request, user, wid):
+    internal_status = withdraw_abort_internal(wid)
+    set_profile_hint(request, success=internal_status["status"] == 200, 
hint=internal_status["hint"])
+    return redirect("profile")
+
 
 @csrf_exempt
 @require_POST
@@ -1408,14 +1422,10 @@ def bank_accounts_api_abort_withdrawal(request, user, 
acct_id, wid):
         raise Exception(
             f"credentials do not match URL ('{acct_id}' vs 
'{user_account.username}')"
         )
-    op = TalerWithdrawOperation.objects.get(withdraw_id=wid)
-
-    if op.confirmation_done:
-        return JsonResponse(dict(hint="can't abort confirmed withdrawal"), 
status=409)
-    op.aborted = True
-    op.save()
-    return JsonResponse(dict(), status=200)
-
+    internal_status = withdraw_abort_internal(wid)
+    return JsonResponse(
+        dict(hint=internal_status["hint"]), status=internal_status["status"]
+    )
 
 @csrf_exempt
 @require_POST

-- 
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]