diff options
-rw-r--r-- | archaeological_finds/forms.py | 2 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 24 |
2 files changed, 20 insertions, 6 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 09d23a3bc..bbc8729d0 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -158,7 +158,7 @@ class FindForm(ManageOldType, forms.Form): model=models.ObjectType, label=_(u"Object types"), required=False) preservation_to_consider = forms.MultipleChoiceField( label=_(u"Preservation type"), choices=[], - widget=widgets.CheckboxSelectMultiple, required=False) + widget=widgets.Select2Multiple, required=False) integritie = forms.MultipleChoiceField( label=_(u"Integrity / interest"), choices=[], widget=widgets.CheckboxSelectMultiple, required=False) diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 3fbf24f29..ffa09e7b4 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2010-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2017 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # Copyright (C) 2007 skam <massimo dot scamarcia at gmail.com> # (http://djangosnippets.org/snippets/233/) @@ -45,12 +45,19 @@ reverse_lazy = lazy(reverse, unicode) class Select2Multiple(forms.SelectMultiple): - class Media: + + @property + def media(self): + media = super(Select2Multiple, self).media css = { 'all': ('select2/css/select2.css',) } - js = ('select2/js/select2.min.js', - 'select2/js/init.js') + js = ['select2/js/select2.min.js'] + for lang_code, lang in settings.LANGUAGES: + js.append('select2/js/i18n/{}.js'.format(lang_code)) + media.add_css(css) + media.add_js(js) + return media def render(self, name, value, attrs=None, choices=()): klass = attrs and attrs.get('class') or '' @@ -58,8 +65,15 @@ class Select2Multiple(forms.SelectMultiple): if not attrs: attrs = {} attrs['class'] = klass - return super(Select2Multiple, self).render(name, value, attrs, + attrs['style'] = "width: 370px" + html = super(Select2Multiple, self).render(name, value, attrs, choices) + html += """<script type="text/javascript"> + $(document).ready(function() {{ + $("#id_{}").select2(); + }});</script> + """.format(name) + return mark_safe(html) class CheckboxSelectMultiple(CheckboxSelectMultipleBase): |