From 0881fdb6e5ec3ae211917cd3246452dab5f2daa9 Mon Sep 17 00:00:00 2001 From: Bryan Brancotte <bryan.brancotte@pasteur.fr> Date: Tue, 5 Feb 2019 17:53:45 +0100 Subject: [PATCH] Taking into accound CharFieldDataList --- ippisite/ippidb/templatetags/customtags.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ippisite/ippidb/templatetags/customtags.py b/ippisite/ippidb/templatetags/customtags.py index 3227f87d..7cd1a8a8 100644 --- a/ippisite/ippidb/templatetags/customtags.py +++ b/ippisite/ippidb/templatetags/customtags.py @@ -3,6 +3,7 @@ import logging from django import forms from django import template from django.utils.safestring import mark_safe +from django.utils.translation import ugettext register = template.Library() logger = logging.getLogger(__name__) @@ -55,10 +56,25 @@ def bootstrap(object): # overwrite the css classes attrs["class"] = " ".join(css_classes) + if 'datalist' in attrs: + datalist = attrs.pop("datalist") + attrs["list"] = "list__%s" % field.id_for_label + else: + datalist = None + # render the field ret.append('<div class="%s">' % wrapping_classes) ret.append(field.as_widget(attrs=attrs)) + ret.append("""<label class="%s">%s</label>""" % (label_classes, field.label)) + + # If the field has a datalist attribut the input field will suggest from it, printing the element + if datalist: + ret.append('<datalist id="%s">' % attrs["list"]) + for option in datalist: + ret.append('<option value="%s">' % option) + ret.append('</datalist>') + if help_text: ret.append("""<small class ="form-text text-muted">%s</small>""" % help_text) if field.errors: @@ -69,7 +85,6 @@ def bootstrap(object): # return it as safe html code elif isinstance(object, forms.BaseFormSet): formset = object - print(formset.errors) for error in formset.non_form_errors(): ret.append("""<div class="alert alert-danger">%s</div>""" % error.replace("\n", "<br/>")) else: -- GitLab