X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..967eed676fc83d15b26149047f353ac61faa8217:/src/search/fields.py?ds=sidebyside diff --git a/src/search/fields.py b/src/search/fields.py index 45d8b7ecf..c27cce166 100755 --- a/src/search/fields.py +++ b/src/search/fields.py @@ -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''' @@ -30,7 +31,7 @@ class JQueryAutoCompleteWidget(forms.TextInput): %(js)s//--> ''' % { '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)