summaryrefslogtreecommitdiff
path: root/ishtar_common/widgets.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-03-27 17:23:42 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-03-27 17:23:42 +0200
commitf19a8dfbd0763a4b994ff77e4105ca54faeff648 (patch)
tree5157e8260af61bc54ab6502e22d9fb972d215bf6 /ishtar_common/widgets.py
parenta27e466364b4e2409d58f9ab11ed909098fcd790 (diff)
downloadIshtar-f19a8dfbd0763a4b994ff77e4105ca54faeff648.tar.bz2
Ishtar-f19a8dfbd0763a4b994ff77e4105ca54faeff648.zip
Widgets: update select2 usage
Diffstat (limited to 'ishtar_common/widgets.py')
-rw-r--r--ishtar_common/widgets.py24
1 files changed, 19 insertions, 5 deletions
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 3fbf24f29..ffa09e7b4 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2017 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# Copyright (C) 2007 skam <massimo dot scamarcia at gmail.com>
# (http://djangosnippets.org/snippets/233/)
@@ -45,12 +45,19 @@ reverse_lazy = lazy(reverse, unicode)
class Select2Multiple(forms.SelectMultiple):
- class Media:
+
+ @property
+ def media(self):
+ media = super(Select2Multiple, self).media
css = {
'all': ('select2/css/select2.css',)
}
- js = ('select2/js/select2.min.js',
- 'select2/js/init.js')
+ js = ['select2/js/select2.min.js']
+ for lang_code, lang in settings.LANGUAGES:
+ js.append('select2/js/i18n/{}.js'.format(lang_code))
+ media.add_css(css)
+ media.add_js(js)
+ return media
def render(self, name, value, attrs=None, choices=()):
klass = attrs and attrs.get('class') or ''
@@ -58,8 +65,15 @@ class Select2Multiple(forms.SelectMultiple):
if not attrs:
attrs = {}
attrs['class'] = klass
- return super(Select2Multiple, self).render(name, value, attrs,
+ attrs['style'] = "width: 370px"
+ html = super(Select2Multiple, self).render(name, value, attrs,
choices)
+ html += """<script type="text/javascript">
+ $(document).ready(function() {{
+ $("#id_{}").select2();
+ }});</script>
+ """.format(name)
+ return mark_safe(html)
class CheckboxSelectMultiple(CheckboxSelectMultipleBase):