Source code for admin_kit.widgets

"""
    Admin Kit Widgets module

"""

import json
from django.forms.widgets import SelectMultiple, Select

__all__ = ['SelectMultipleWidget', 'SelectWidget']

[docs]class SelectMultipleWidget(SelectMultiple): """ MultiSelect Widget which inherits Django's SelectMultiple widget """ template_name = 'admin_kit/widgets/select.html' option_template_name = 'admin_kit/widgets/select_option.html'
[docs] class Media: """ This class adds css required for admin_kit's widget """ css = { 'all': ('admin_kit/css/select.css', ) }
[docs] def get_context(self, name, value, attrs): """ Adds appropriate attributes to widget context """ context = super().get_context(name, value, attrs) context['widget']['attrs']['class'] = 'admin-kit admin-kit-select' kit_config = json.loads(context['widget']['attrs']['data-kit-config']) kit_config['init-value'] = ','.join(context['widget']['value']) context['widget']['attrs']['data-kit-config'] = json.dumps(kit_config) return context
[docs]class SelectWidget(Select): """ MultiSelect Widget which inherits Django's Select widget """
[docs] def get_context(self, name, value, attrs): """ Adds appropriate attributes to widget context """ context = super().get_context(name, value, attrs) context['widget']['attrs']['class'] = 'admin-kit admin-kit-select' kit_config = json.loads(context['widget']['attrs']['data-kit-config']) kit_config['init-value'] = ','.join(context['widget']['value']) context['widget']['attrs']['data-kit-config'] = json.dumps(kit_config) return context