8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-27 07:02:26 +00:00

Laisse bootstrap_form faire les rendu au maximum

This commit is contained in:
Pierre Cadart 2017-10-05 23:47:01 +00:00
parent 5aebc822bf
commit 36a0a43710

View file

@ -20,6 +20,7 @@
from django import template
from django.utils.safestring import mark_safe
from django.forms import TextInput
from bootstrap3.templatetags.bootstrap3 import bootstrap_form
from bootstrap3.utils import render_tag
from bootstrap3.forms import render_field
@ -67,18 +68,24 @@ def bootstrap_form_typeahead(django_form, typeahead_fields, *args, **kwargs):
form = ''
for f_name, f_value in django_form.fields.items() :
if not f_name in exclude :
if f_name in t_fields :
if not f_name in hidden :
if f_name in t_fields and not f_name in hidden :
f_bound = f_value.get_bound_field( django_form, f_name )
f_value.widget = TextInput(
attrs={
'name': 'typeahead_'+f_name,
}
)
form += render_field(
f_value.get_bound_field( django_form, f_name ),
*args,
**kwargs
)
form += render_tag(
'div',
attrs = {'class': 'form-group'},
content = label_tag( f_name, f_value ) +
input_tag( f_name, f_value ) +
hidden_tag( f_name ) +
content = hidden_tag( f_bound, f_name ) +
typeahead_full_script( f_name, f_value )
)
else:
form += hidden_tag( f_name )
else:
form += render_field(
f_value.get_bound_field(django_form, f_name),
@ -89,45 +96,23 @@ def bootstrap_form_typeahead(django_form, typeahead_fields, *args, **kwargs):
return mark_safe( form )
def input_id( f_name ):
return 'typeahead_input_'+f_name
def input_id( f_name ) :
return 'id_'+f_name
def hidden_id( f_name ):
return 'typeahead_select_'+f_name
return 'typeahead_hidden_'+f_name
def hidden_tag( f_name ):
return render_tag(
'input',
attrs={
'id': hidden_id(f_name),
'maxlength': 255,
'name': f_name,
'type': 'hidden',
'value': ''
}
)
def label_tag( f_name, f_value ):
return render_tag(
'label',
attrs={
'class': 'control-label',
'for': input_id(f_name)
},
content=f_value.label
)
def input_tag( f_name, f_value ):
return render_tag(
'input',
attrs={
'class': 'form-control',
'id': input_id(f_name),
'type': 'text',
'placeholder': f_value.empty_label
},
)
def typeahead_full_script( f_name, f_value ) :
js_content = \
'$("#'+input_id(f_name)+'").ready( function() {\n' + \