Skip to content
Snippets Groups Projects
widgets.py 1.04 KiB
Newer Older
  • Learn to ignore specific revisions
  • Todd Dembrey's avatar
    Todd Dembrey committed
    from django.contrib.staticfiles.templatetags.staticfiles import static
    
    
    Erin Mullaney's avatar
    Erin Mullaney committed
    from django_select2.forms import Select2Widget, Select2MultipleWidget
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    
    class Select2MultiCheckboxesWidget(Select2MultipleWidget):
    
        class Media:
            js = (
                static('js/select2.multi-checkboxes.js'),
                static('js/django_select2-checkboxes.js'),
            )
    
    
        def __init__(self, *args, **kwargs):
            attrs = kwargs.get('attrs', {})
            attrs.setdefault('data-placeholder', 'items')
            kwargs['attrs'] = attrs
            super().__init__(*args, **kwargs)
    
    
    Todd Dembrey's avatar
    Todd Dembrey committed
        def build_attrs(self, *args, **kwargs):
            attrs = super().build_attrs(*args, **kwargs)
            attrs['class'] = attrs['class'].replace('django-select2', 'django-select2-checkboxes')
            return attrs
    
    Erin Mullaney's avatar
    Erin Mullaney committed
    
    
    class Select2IconWidget(Select2Widget):
    
        template_name = 'funds/widgets/icon_select2.html'
    
    
    Erin Mullaney's avatar
    Erin Mullaney committed
        def __init__(self, *args, **kwargs):
            attrs = kwargs.get('attrs', {})
    
            attrs.setdefault('icon', '')
    
    Erin Mullaney's avatar
    Erin Mullaney committed
            kwargs['attrs'] = attrs
            super().__init__(*args, **kwargs)