X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..8f031335a8a0dabceec381b89eb0cbbcb2f4b637:/src/search/fields.py diff --git a/src/search/fields.py b/src/search/fields.py old mode 100755 new mode 100644 index 45d8b7ecf..18a5c1564 --- a/src/search/fields.py +++ b/src/search/fields.py @@ -1,10 +1,10 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # 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.forms.widgets import RadioSelect +from django.utils.encoding import smart_str from django.utils.safestring import mark_safe from json import dumps @@ -15,22 +15,23 @@ class JQueryAutoCompleteWidget(forms.TextInput): super(JQueryAutoCompleteWidget, self).__init__(*args, **kwargs) def render_js(self, field_id, options): - return u'$(\'#%s\').autocomplete(%s).result(autocomplete_result_handler);' % (field_id, options) + return '$(\'#%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) + def render(self, name, value=None, attrs=None, renderer=None): + final_attrs = self.build_attrs(self.attrs, attrs) + final_attrs["name"] = name if value: - final_attrs['value'] = smart_unicode(value) + final_attrs['value'] = smart_str(value) - if not self.attrs.has_key('id'): + if 'id' not in self.attrs: final_attrs['id'] = 'id_%s' % name - html = u''' + html = ''' ''' % { '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) @@ -41,11 +42,13 @@ class JQueryAutoCompleteSearchWidget(JQueryAutoCompleteWidget): super(JQueryAutoCompleteSearchWidget, self).__init__(*args, **kwargs) def render_js(self, field_id, options): - return u"" - + return "" + 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,8 +57,15 @@ 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) super(JQueryAutoCompleteSearchField, self).__init__(*args, **kwargs) + + + +class InlineRadioWidget(RadioSelect): + option_template_name = 'search/inline_radio_widget_option.html'