<div tal:define="error_class error_class|field.widget.error_class; description description|field.description; title title|field.title; oid oid|field.oid; hidden hidden|field.widget.hidden; category category|field.widget.category; structural hidden or category == 'structural'; required required|field.required;" class="form-group ${field.error and 'has-error' or ''} ${field.widget.item_css_class or ''}" id="item-${oid}" tal:omit-tag="structural" i18n:domain="deform"> <label for="${oid}" class="control-label ${required and 'required' or ''}" tal:condition="not structural" id="req-${oid}" > ${title} </label> <div class="control-inputs"> <div tal:define="input_prepend field.widget.input_prepend | None; input_append field.widget.input_append | None" tal:omit-tag="not (input_prepend or input_append)" class="input-group"> <span class="input-group-addon" tal:condition="input_prepend">${input_prepend}</span ><span tal:replace="structure field.serialize(cstruct).strip()" /><span class="input-group-addon" tal:condition="input_append">${input_append}</span> </div> <p class="help-block error-block" tal:define="errstr 'error-%s' % field.oid" tal:repeat="msg field.error.messages()" i18n:translate="" tal:attributes="id repeat.msg.index==0 and errstr or ('%s-%s' % (errstr, repeat.msg.index))" tal:condition="field.error and not field.widget.hidden and not field.typ.__class__.__name__=='Mapping'"> ${msg} </p> <p tal:condition="field.description and not field.widget.hidden" class="help-block" > ${field.description} </p> </div> </div>