summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-22 16:45:59 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-22 16:45:59 +0200
commit0b464a01663afc41fa8732ffa1e1f24e5c9aab86 (patch)
treef476155d237d06875ce9e56a614703114c48fa83 /ishtar_common
parent9e39c3c7f7367e6a5ab21544213866886b1980c4 (diff)
downloadIshtar-0b464a01663afc41fa8732ffa1e1f24e5c9aab86.tar.bz2
Ishtar-0b464a01663afc41fa8732ffa1e1f24e5c9aab86.zip
Django 1.11: API change in widget rendering
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/widgets.py54
1 files changed, 28 insertions, 26 deletions
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 37a243c7d..79c0513c0 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -156,8 +156,7 @@ class CheckboxSelectMultiple(CheckboxSelectMultipleBase):
value = value.split(',')
if type(value) not in (list, tuple):
value = [value]
- return super(CheckboxSelectMultiple, self).render(name, value, attrs,
- choices)
+ return super(CheckboxSelectMultiple, self).render(name, value, attrs)
class Select2MultipleField(forms.MultipleChoiceField):
@@ -192,9 +191,9 @@ class Select2MultipleField(forms.MultipleChoiceField):
class DeleteWidget(forms.CheckboxInput):
- def render(self, name, value, attrs=None):
- final_attrs = flatatt(self.build_attrs(attrs, name=name,
- value='1'))
+ def render(self, name, value, attrs=None, renderer=None):
+ final_attrs = flatatt(
+ self.build_attrs(attrs, {"name": name, "value": '1'}))
output = ['<tr class="delete"><td colspan="2">']
output.append(u"<button%s>%s</button>" % (final_attrs, _("Delete")))
output.append('</td></tr>')
@@ -207,10 +206,11 @@ class ImageFileInput(ClearableFileInput):
class SquareMeterWidget(forms.TextInput):
- def render(self, name, value, attrs=None):
+ def render(self, name, value, attrs=None, renderer=None):
if not value:
value = u""
- final_attrs = flatatt(self.build_attrs(attrs, name=name, value=value))
+ final_attrs = flatatt(
+ self.build_attrs(attrs, {"name": name, "value": value}))
dct = {'final_attrs': final_attrs,
'unit': settings.SURFACE_UNIT_LABEL,
'id': attrs['id'],
@@ -232,7 +232,7 @@ class JQueryDate(forms.TextInput):
self.attrs['class'] = ''
self.attrs['class'] = 'date-pickup'
- def render(self, name, value=None, attrs=None):
+ def render(self, name, value, attrs=None, renderer=None):
if value:
value = unicode(value)
# very specific...
@@ -267,25 +267,29 @@ class JQueryDate(forms.TextInput):
class JQueryAutoComplete(forms.TextInput):
- def __init__(self, source, associated_model=None, options={}, attrs={},
- new=False, url_new='', multiple=False, limit={},
- dynamic_limit=[]):
+ def __init__(self, source, associated_model=None, options=None, attrs=None,
+ new=False, url_new='', multiple=False, limit=None,
+ dynamic_limit=None):
"""
Source can be a list containing the autocomplete values or a
string containing the url used for the request.
"""
- self.options = None
- self.attrs = {}
self.source = source
self.associated_model = associated_model
- if len(options) > 0:
+
+ self.options = None
+ if options and len(options) > 0:
self.options = JSONEncoder().encode(options)
- self.attrs.update(attrs)
+ self.attrs = {}
+
+ if attrs:
+ self.attrs.update(attrs)
+
self.new = new
self.url_new = url_new
self.multiple = multiple
- self.limit = limit
- self.dynamic_limit = dynamic_limit
+ self.limit = limit or {}
+ self.dynamic_limit = dynamic_limit or []
def value_from_datadict(self, data, files, name):
if self.multiple:
@@ -314,7 +318,6 @@ class JQueryAutoComplete(forms.TextInput):
if self.options:
dct['options'] = mark_safe('%s' % self.options)
- js = ""
tpl = 'blocks/JQueryAutocomplete.js'
if self.multiple:
tpl = 'blocks/JQueryAutocompleteMultiple.js'
@@ -322,14 +325,13 @@ class JQueryAutoComplete(forms.TextInput):
js = t.render(dct)
return js
- def render(self, name, value=None, attrs=None):
- attrs_hidden = self.build_attrs(attrs, name=name)
+ def render(self, name, value, attrs=None, renderer=None):
+ attrs_hidden = self.build_attrs(attrs, {"name": name})
attrs_select = self.build_attrs(attrs)
attrs_select['placeholder'] = _(u"Search...")
if value:
hiddens = []
selects = []
- values = value
if type(value) not in (list, tuple):
values = unicode(escape(smart_unicode(value)))
values = values.replace('[', '').replace(']', '')
@@ -429,8 +431,8 @@ class JQueryTown(forms.TextInput):
raise ValueError('source type is not valid')
return encoded_src
- def render(self, name, value=None, attrs=None):
- attrs_hidden = self.build_attrs(attrs, name=name)
+ def render(self, name, value, attrs=None, renderer=None):
+ attrs_hidden = self.build_attrs(attrs, {"name": name})
attrs_select = self.build_attrs(attrs)
attrs_select['placeholder'] = _(u"Search...")
selected = ''
@@ -544,8 +546,8 @@ class JQueryPersonOrganization(forms.TextInput):
js = loader.get_template(self.js_template).render(dct)
return js
- def render(self, name, value=None, attrs=None):
- attrs_hidden = self.build_attrs(attrs, name=name)
+ def render(self, name, value, attrs=None, renderer=None):
+ attrs_hidden = self.build_attrs(attrs, {'name': name})
attrs_select = self.build_attrs(attrs)
attrs_select['placeholder'] = _(u"Search...")
selected = ''
@@ -693,7 +695,7 @@ class JQueryJqGrid(forms.RadioSelect):
extra_cols = extra_cols and ", ".join(extra_cols) or ""
return jq_col_names, extra_cols
- def render(self, name, value=None, attrs=None):
+ def render(self, name, value, attrs=None, renderer=None):
t = loader.get_template('blocks/form_flex_snippet.html')
form = self.form()
rendered = t.render({'form': form, 'flex': True})