Club prepared.
[wolnelektury.git] / src / search / fields.py
index 45d8b7e..c27cce1 100755 (executable)
@@ -3,8 +3,8 @@
 # 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
 
@@ -18,11 +18,12 @@ class JQueryAutoCompleteWidget(forms.TextInput):
         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/>
@@ -30,7 +31,7 @@ class JQueryAutoCompleteWidget(forms.TextInput):
             %(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)
@@ -42,10 +43,12 @@ class JQueryAutoCompleteSearchWidget(JQueryAutoCompleteWidget):
 
     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)
@@ -54,7 +57,9 @@ class JQueryAutoCompleteField(forms.CharField):
 
 
 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)