diff options
| author | Étienne Loks <etienne.loks@proxience.com> | 2015-02-03 00:49:58 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@proxience.com> | 2015-02-03 00:49:58 +0100 | 
| commit | 77500b5ae4a0ce3e2fbb928b5cf9847ab9a69c5e (patch) | |
| tree | 9afd7c785b7c1fa04abcf1b2a2d5a477f85e9e48 /ishtar_common/widgets.py | |
| parent | d3959af5b232f0ab121c5e32032d1389d0e97139 (diff) | |
| download | Ishtar-77500b5ae4a0ce3e2fbb928b5cf9847ab9a69c5e.tar.bz2 Ishtar-77500b5ae4a0ce3e2fbb928b5cf9847ab9a69c5e.zip | |
Implement Select2 selection as a multi select widget
Diffstat (limited to 'ishtar_common/widgets.py')
| -rw-r--r-- | ishtar_common/widgets.py | 18 | 
1 files changed, 18 insertions, 0 deletions
| 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 | 
