def formatArgs(kwargs):
if not kwargs:
return ''
L = []
for key in kwargs.keys():
if kwargs[key] is None:
L.append(key)
else:
L.append('%s="%s"' % (key, kwargs[key]))
return ' ' + ' '.join(L)
def find_selected(tag, name, selected, default):
if selected is None:
selected = tag._api.getModule('request').getpost(name)
if selected is None and default is not None:
selected = default
if selected is None:
return []
if isinstance(selected, basestring) and selected.startswith('='):
selected = tag.eval(selected)
if isinstance(selected, basestring) or not hasattr(selected, '__contains__'):
selected = (selected,)
return selected
def escape_dq(value):
return str(value).replace('"', '\\"')
def render_radio(tagname, name, label, value, checked, id=None, kwargs=None):
if id is None:
id = name
checkedstr = checked and ' CHECKED' or ''
baseradio = '' \
% (tagname, name, id, escape_dq(value), checkedstr, formatArgs(kwargs))
if label is not None:
baseradio += ' ' % (id, label)
return baseradio
def render_option(value, text, selected):
if selected:
selectedtxt = ' selected'
else:
selectedtxt = ''
return '' % (escape_dq(value), selectedtxt, text)
def maybe_emit_label(tag, id, label):
if label is not None:
tag.getOut().write(' ' % (id, label))