From 5d3e9a1435a575dd27695e3c0ff0e6282acc0c0f Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 3 Feb 2015 00:49:58 +0100 Subject: Implement Select2 selection as a multi select widget --- ishtar_common/widgets.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'ishtar_common/widgets.py') diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 404d5fabe..0ba4061a8 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -37,6 +37,24 @@ import models reverse_lazy = lazy(reverse, unicode) + +class Select2Multiple(forms.SelectMultiple): + class Media: + css = { + 'all': ('select2/css/select2.css',) + } + js = ('select2/js/select2.min.js', + 'select2/js/init.js') + + def render(self, name, value, attrs=None, choices=()): + klass = attrs and attrs.get('class') or '' + klass += ' ' if klass else '' + 'js-select2' + if not attrs: + attrs = {} + attrs['class'] = klass + return super(Select2Multiple, self).render(name, value, attrs, + choices) + class MultipleAutocompleteField(forms.MultipleChoiceField): def __init__(self, *args, **kwargs): self.model = None -- cgit v1.2.3