summaryrefslogtreecommitdiff
path: root/chimere/widgets.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/widgets.py')
-rw-r--r--chimere/widgets.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/chimere/widgets.py b/chimere/widgets.py
index 8464d47..0b00d9d 100644
--- a/chimere/widgets.py
+++ b/chimere/widgets.py
@@ -146,23 +146,28 @@ JQuery UI button select widget.
class ButtonRadioInput(RadioSelect):
- def tag(self, name, value):
+ def tag(self, name, value, idx=''):
selected = str(value) == str(self.choices[0][0])
- return '<input type="radio" name="{}" value="{}"{}>'.format(
- name, self.choices[0][0],
+ if idx:
+ idx = ' id="{}"'.format(idx)
+ return '<input type="radio" name="{}" value="{}"{}{}>'.format(
+ name, self.choices[0][0], idx,
' selected="selected"' if selected else '')
def render(self, name=None, value=None, attrs=None, choices=(),
index=0):
attrs = attrs or self.attrs
+ idx = ''
if 'id' in self.attrs:
- label_for = ' for="%s_%s"' % (self.attrs['id'], index)
+ idx = '{}_{}'.format(self.attrs['id'], index)
+ label_for = ' for="{}"'.format(idx)
+ if str(value) == str(self.choices[0][0]):
+ label_for += " aria-pressed='true'"
else:
label_for = ''
choice_label = conditional_escape(str(self.choices[0][1]))
- return mark_safe('%s <label%s>%s</label>' % (self.tag(name, value),
- label_for,
- choice_label))
+ return mark_safe('%s <label%s>%s</label>' % (
+ self.tag(name, value, idx), label_for, choice_label))
class ButtonRadioFieldRenderer(RadioFieldRenderer):
@@ -184,9 +189,11 @@ class ButtonSelectWidget(forms.RadioSelect):
def render(self, *args, **kwargs):
rendered = "<div id='%s'>\n" % kwargs['attrs']['id']
rendered += super(ButtonSelectWidget, self).render(*args, **kwargs)
- rendered += "\n<script type='text/javascript'>\n"\
+ """rendered += "\n<script type='text/javascript'>\n"\
" $('#%s').buttonset();\n"\
- "</script>\n</div>\n" % kwargs['attrs']['id']
+ "</script>" % kwargs['attrs']['id']
+ """
+ rendered += "\n</div>\n"
return mark_safe(rendered)