diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2017-12-23 11:07:25 +0100 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2017-12-23 11:07:25 +0100 |
commit | cb0ec0ada59f71a4327a13e9775fcb3814e53247 (patch) | |
tree | 9206594b7524170cb4ecb8b67ac37a5e47591f46 | |
parent | 4e1f605a97f48f6300f632b64f46b4d9e98714f5 (diff) | |
download | bank-cb0ec0ada59f71a4327a13e9775fcb3814e53247.tar.gz bank-cb0ec0ada59f71a4327a13e9775fcb3814e53247.tar.bz2 bank-cb0ec0ada59f71a4327a13e9775fcb3814e53247.zip |
UI fixes due to #5222.
-rw-r--r-- | talerbank/app/templates/login.html | 9 | ||||
-rw-r--r-- | talerbank/app/templates/pin_tan.html | 4 | ||||
-rw-r--r-- | talerbank/app/templates/register.html | 1 | ||||
-rw-r--r-- | talerbank/app/tests.py | 2 | ||||
-rw-r--r-- | talerbank/app/views.py | 53 |
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") |