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