| @ -0,0 +1,45 @@ | |||||
| from django import template | |||||
| register = template.Library() | |||||
| @register.simple_tag(takes_context=True) | |||||
| def input_option(context, type, name='', value='', **kwargs): | |||||
| """ | |||||
| Usage: when specifying data attributes in templates, use "data_" intead of "data-". | |||||
| """ | |||||
| if type == "textarea": | |||||
| tag = ['<textarea name="' + name + '"'] | |||||
| tag = additional_attributes(tag, **kwargs) | |||||
| tag.append('>') | |||||
| tag.append(context.get(name, '')) | |||||
| tag.append('</textarea>') | |||||
| else: | |||||
| # set initial value for textbox | |||||
| if type == "text": | |||||
| value = context.get(name, '') | |||||
| tag = ['<input type="' + type + '" name="' + name + '" value="' + value + '"'] | |||||
| tag = additional_attributes(tag, **kwargs) | |||||
| # check if buttons should be selected by default | |||||
| value_list = context.get(name, '').split('; ') | |||||
| if value in value_list and value != '': | |||||
| tag.append(' checked') | |||||
| tag.append('>') | |||||
| return ''.join(tag) | |||||
| def additional_attributes(tag, **kwargs): | |||||
| for key, data_val in kwargs.items(): | |||||
| if str.startswith(key, 'data_'): | |||||
| key = str.replace(key, 'data_', 'data-') | |||||
| tag.append(' ' + key + '="' + data_val + '"') | |||||
| return tag | |||||