summaryrefslogtreecommitdiff
path: root/ishtar_common/widgets.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-05-14 21:08:44 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-06-12 08:44:34 +0200
commit083985d6f383157b84e528701ba4be7cbd898fe3 (patch)
tree3d7c3e2f3217849df3cfe2f8e461792c08473fa4 /ishtar_common/widgets.py
parent7c9a9d586e5255b60179807934e780b3d38cd30e (diff)
downloadIshtar-083985d6f383157b84e528701ba4be7cbd898fe3.tar.bz2
Ishtar-083985d6f383157b84e528701ba4be7cbd898fe3.zip
Authors for M2M images (refs #4076)
Diffstat (limited to 'ishtar_common/widgets.py')
-rw-r--r--ishtar_common/widgets.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 22e4901cf..e33669e19 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -229,12 +229,20 @@ class Select2MultipleField(forms.MultipleChoiceField):
if remote:
self.remote = reverse_lazy(
'autocomplete-' + self.model.__name__.lower())
+ long_widget = False
+ if 'long_widget' in kwargs:
+ long_widget = kwargs.pop('long_widget')
self.available = False
if 'available' in kwargs:
self.available = kwargs.pop('available')
- kwargs['widget'] = Select2Multiple(model=self.model,
- available=self.available,
- remote=self.remote)
+ attrs = {}
+ if long_widget:
+ attrs['cols'] = True
+ attrs['full-width'] = True
+ kwargs['widget'] = Select2Multiple(
+ model=self.model, available=self.available, remote=self.remote,
+ attrs=attrs
+ )
super(Select2MultipleField, self).__init__(*args, **kwargs)
def get_q(self):
@@ -394,10 +402,12 @@ class JQueryAutoComplete(forms.TextInput):
self.dynamic_limit = dynamic_limit or []
def value_from_datadict(self, data, files, name):
- if self.multiple:
- return data.getlist(name, None)
- else:
+ v = data.get(name, None)
+ if not self.multiple:
return data.get(name, None)
+ if type(v) == unicode and "," in v:
+ return [item.strip() for item in v.split(',') if item.strip()]
+ return data.getlist(name, None)
def render_js(self, field_id):
if isinstance(self.source, list):