# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
from django import forms
-from django.forms.widgets import flatatt
-from django.utils.encoding import smart_unicode
+from django.forms.utils import flatatt
+from django.utils.encoding import smart_text
from django.utils.safestring import mark_safe
from json import dumps
return u'$(\'#%s\').autocomplete(%s).result(autocomplete_result_handler);' % (field_id, options)
def render(self, name, value=None, attrs=None):
- final_attrs = self.build_attrs(attrs, name=name)
+ final_attrs = self.build_attrs(self.attrs, attrs)
+ final_attrs["name"] = name
if value:
- final_attrs['value'] = smart_unicode(value)
+ final_attrs['value'] = smart_text(value)
- if not self.attrs.has_key('id'):
+ if 'id' not in self.attrs:
final_attrs['id'] = 'id_%s' % name
html = u'''<input type="text" %(attrs)s/>
%(js)s//--></script>
''' % {
'attrs': flatatt(final_attrs),
- 'js' : self.render_js(final_attrs['id'], self.options),
+ 'js': self.render_js(final_attrs['id'], self.options),
}
return mark_safe(html)
def render_js(self, field_id, options):
return u""
-
+
class JQueryAutoCompleteField(forms.CharField):
- def __init__(self, source, options={}, *args, **kwargs):
+ def __init__(self, source, options=None, *args, **kwargs):
+ if options is None:
+ options = {}
if 'widget' not in kwargs:
options['source'] = source
kwargs['widget'] = JQueryAutoCompleteWidget(options)
class JQueryAutoCompleteSearchField(forms.CharField):
- def __init__(self, options={}, *args, **kwargs):
+ def __init__(self, options=None, *args, **kwargs):
+ if options is None:
+ options = {}
if 'widget' not in kwargs:
kwargs['widget'] = JQueryAutoCompleteSearchWidget(options)