gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-bank] branch master updated: autocompleting input fi


From: gnunet
Subject: [GNUnet-SVN] [taler-bank] branch master updated: autocompleting input field
Date: Tue, 19 Dec 2017 13:45:11 +0100

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

marcello pushed a commit to branch master
in repository bank.

The following commit(s) were added to refs/heads/master by this push:
     new ecb3a19  autocompleting input field
ecb3a19 is described below

commit ecb3a1980b3e2363698a1060919158b1106cfdf6
Author: Marcello Stanisci <address@hidden>
AuthorDate: Tue Dec 19 13:44:31 2017 +0100

    autocompleting input field
---
 talerbank/app/views.py | 31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)

diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index c8c6ccb..7ad8f45 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -94,7 +94,7 @@ def get_session_flag(request, name):
     return False
 
 
-def predefined_accounts_dropdown():
+def predefined_accounts_list():
     account = 2
     ret = []
     for i in settings.TALER_PREDEFINED_ACCOUNTS[1:]:
@@ -102,13 +102,33 @@ def predefined_accounts_dropdown():
         account += 1
     return ret
 
+# Thanks to [1]
+class InputDatalist(forms.TextInput):
+
+    def __init__(self, datalist, name, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        self._name = name
+        self._datalist = datalist()
+        self.attrs.update(
+            {"list": "%slist" % name,
+             "pattern": "[1-9]+"})
+
+    def render(self, name, value, attrs=None):
+        html = super().render(name, value, attrs=attrs)
+        datalist = '<datalist id="%slist">' % self._name
+        for value, text in self._datalist:
+            datalist += '<option value="%s">%s</option>' \
+                % (value, text)
+        datalist += "</datalist>"
+        return html + datalist
+
+
 class WTForm(forms.Form):
     '''Form used to wire transfer money internally in the bank.'''
     amount = forms.FloatField(min_value=0.1,
         widget=forms.NumberInput(attrs={"class": "currency-input"}))
-    receiver = forms.TypedChoiceField(
-        choices=predefined_accounts_dropdown,
-        coerce=int)
+    receiver = forms.IntegerField(min_value=1,
+        widget=InputDatalist(predefined_accounts_list, "receiver"))
     subject = forms.CharField()
 
 # Check if user's logged in.  Check if he/she has withdrawn or
@@ -734,3 +754,6 @@ def wire_transfer(amount,
             {"error": "sender account == receiver account",
              "ec": settings.TALER_EC_BANK_TRANSFER_SAME_ACCOUNT},
             status=422))
+
+
+# [1] 
https://stackoverflow.com/questions/24783275/django-form-with-choices-but-also-with-freetext-option

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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