summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2017-12-23 11:07:25 +0100
committerMarcello Stanisci <stanisci.m@gmail.com>2017-12-23 11:07:25 +0100
commitcb0ec0ada59f71a4327a13e9775fcb3814e53247 (patch)
tree9206594b7524170cb4ecb8b67ac37a5e47591f46
parent4e1f605a97f48f6300f632b64f46b4d9e98714f5 (diff)
downloadbank-cb0ec0ada59f71a4327a13e9775fcb3814e53247.tar.gz
bank-cb0ec0ada59f71a4327a13e9775fcb3814e53247.tar.bz2
bank-cb0ec0ada59f71a4327a13e9775fcb3814e53247.zip
UI fixes due to #5222.
-rw-r--r--talerbank/app/templates/login.html9
-rw-r--r--talerbank/app/templates/pin_tan.html4
-rw-r--r--talerbank/app/templates/register.html1
-rw-r--r--talerbank/app/tests.py2
-rw-r--r--talerbank/app/views.py53
5 files changed, 44 insertions, 25 deletions
diff --git a/talerbank/app/templates/login.html b/talerbank/app/templates/login.html
index 5a45aad..40a5a5b 100644
--- a/talerbank/app/templates/login.html
+++ b/talerbank/app/templates/login.html
@@ -27,15 +27,14 @@
<article>
<div class="login-form">
<h2>Please login!</h2>
- {% if form.errors %}
+ {% if fail_message %}
<p class="informational informational-fail">
- Your username and password didn't match. Please try again.
+ {{ hint }}
</p>
{% endif %}
-
- {% if just_logged_out %}
+ {% if success_message %}
<p class="informational informational-ok">
- You were logged out successfully.
+ {{ hint }}
</p>
{% endif %}
diff --git a/talerbank/app/templates/pin_tan.html b/talerbank/app/templates/pin_tan.html
index f8f8188..de836c0 100644
--- a/talerbank/app/templates/pin_tan.html
+++ b/talerbank/app/templates/pin_tan.html
@@ -24,9 +24,9 @@
{% endblock %}
{% block content %}
- {% if previous_failed %}
+ {% if fail_message %}
<p class="informational informational-fail">
- The captcha wasn't solved correctly. Please try again.
+ {{ hint }}
</p>
{% endif %}
<p>
diff --git a/talerbank/app/templates/register.html b/talerbank/app/templates/register.html
index b7423e7..f01b5d9 100644
--- a/talerbank/app/templates/register.html
+++ b/talerbank/app/templates/register.html
@@ -29,6 +29,7 @@
<article>
<a href="{{ url('index') }}">Back</a>
<div class="notification">
+ <!-- To be flag-ified -->
{% if wrong %}
<p class="informational informational-fail">
Some fields were either not filled or filled incorrectly.
diff --git a/talerbank/app/tests.py b/talerbank/app/tests.py
index 442888a..a7d68f3 100644
--- a/talerbank/app/tests.py
+++ b/talerbank/app/tests.py
@@ -138,7 +138,7 @@ class InternalWireTransferTestCase(TestCase):
Amount(settings.TALER_CURRENCY, 3),
take_money.amount),
msg=self.take_money.amount.stringify(2))
- self.assertEqual(200, response.status_code)
+ self.assertEqual(302, response.status_code)
class RegisterTestCase(TestCase):
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 7f6093d..52e49ca 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -77,24 +77,37 @@ def ignore(request):
return HttpResponse()
def login_view(request):
- just_logged_out = get_session_flag(request, "just_logged_out")
+ fail_message, success_message, hint = get_session_hint(request, "login_hint")
response = django.contrib.auth.views.login(
request,
authentication_form=MyAuthenticationForm,
template_name="login.html",
extra_context={"user": request.user})
if hasattr(response, "context_data"):
- response.context_data["just_logged_out"] = just_logged_out
+ response.context_data["fail_message"] = fail_message
+ response.context_data["success_message"] = success_message
+ response.context_data["hint"] = hint
return response
def get_session_flag(request, name):
+ """
+ Get a flag from the session and clear it.
+ """
+ if name in request.session:
+ ret = request.session[name]
+ del request.session[name]
+ return ret
+ return False
+
+def get_session_hint(request, name):
"""
- Get a flag from the session and clear it.
+ Get a hint from the session and clear it.
"""
if name in request.session:
ret = request.session[name]
del request.session[name]
return ret
+ # Fail message, success message, hint.
return False, False, None
@@ -140,7 +153,6 @@ class WTForm(forms.Form):
@login_required
def profile_page(request):
- info_bar = None
if request.method == "POST":
wtf = WTForm(request.POST)
if wtf.is_valid():
@@ -151,8 +163,10 @@ def profile_page(request):
BankAccount.objects.get(user=request.user),
BankAccount.objects.get(account_no=wtf.cleaned_data.get("receiver")),
wtf.cleaned_data.get("subject"))
+ request.session["profile_hint"] = False, True, "Wire transfer successful!"
+ return redirect("profile")
wtf = WTForm()
- fail_message, success_message, hint = get_session_flag(request, "profile_hint")
+ fail_message, success_message, hint = get_session_hint(request, "profile_hint")
context = dict(
name=request.user.username,
balance=request.user.bankaccount.amount.stringify(
@@ -215,19 +229,20 @@ def pin_tan_question(request):
int(request.GET["amount_fraction"]))
request.session["amount"] = amount.dump()
request.session["reserve_pub"] = request.GET["reserve_pub"]
- request.session["sender_wiredetails"] = dict(
- type="test",
- bank_uri=request.build_absolute_uri(reverse("index")),
- account_number=user_account.account_no
- )
- previous_failed = get_session_flag(request, "captcha_failed")
+ request.session["sender_wiredetails"] = {
+ "type": "test",
+ "bank_uri": request.build_absolute_uri(reverse("index")),
+ "account_number": user_account.account_no}
+ fail_message, success_message, hint = get_session_hint(request, "captcha_failed")
question, hashed_answer = make_question()
context = dict(
question=question,
hashed_answer=hashed_answer,
amount=amount.stringify(settings.TALER_DIGITS),
- previous_failed=previous_failed,
- exchange=request.GET["exchange"])
+ exchange=request.GET["exchange"],
+ fail_message=fail_message,
+ success_message=success_message,
+ hint=hint)
return render(request, "pin_tan.html", context)
@@ -240,7 +255,7 @@ def pin_tan_verify(request):
LOGGER.warning("Wrong CAPTCHA answer: %s vs %s",
type(hashed_attempt),
type(request.POST.get("pin_1")))
- request.session["captcha_failed"] = True
+ request.session["captcha_failed"] = True, False, "Wrong CAPTCHA answer."
return redirect(request.POST.get("question_url", "profile"))
# Check the session is a "pin tan" one
validate_data(request, request.session)
@@ -269,12 +284,16 @@ def register(request):
form = UserReg(request.POST)
if not form.is_valid():
return render(request, "register.html",
- dict(wrong_field=True))
+ {"fail_message": True,
+ "success_message": False,
+ "hint": "Wrong field(s): %s." % ", ".join(form.errors.keys())})
username = form.cleaned_data["username"]
password = form.cleaned_data["password"]
if User.objects.filter(username=username).exists():
return render(request, "register.html",
- dict(not_available=True))
+ {"fail_message": True,
+ "success_message": False,
+ "hint": "Username not available."})
with transaction.atomic():
user = User.objects.create_user(
username=username,
@@ -298,7 +317,7 @@ def logout_view(request):
Log out the user and redirect to index page.
"""
django.contrib.auth.logout(request)
- request.session["just_logged_out"] = True
+ request.session["login_hint"] = False, True, "Logged out!"
return redirect("index")