<form id="user-edit" action="" method="post"
    py:attrs="{'class':'has-errors'} if errors else {}"
    xmlns:i18n="http://genshi.edgewall.org/i18n"
    xmlns:py="http://genshi.edgewall.org/"
    xmlns:xi="http://www.w3.org/2001/XInclude">

<div class="error-explanation" py:if="error_summary">
<h2>Errors in form</h2>
<p>The form contains invalid entries:</p>
<ul>
  <li py:for="key, error in error_summary.items()">${"%s: %s" % (key, error)}</li>
</ul>
</div>
  <fieldset>
    <legend>Base details</legend>
    <dl>
    <dt><label for="fullname">Full name:</label></dt>
    <dd><input type="text" name="fullname" value="${data.get('fullname','')}" /></dd>
     
    <dt><label for="email">E-Mail:</label></dt>
    <dd><input type="text" name="email" value="${data.get('email','')}" /></dd>
    </dl>
  </fieldset>
  <fieldset>
    <legend>Change your password</legend>
    <dl>
    <dt><label for="password1">Password:</label></dt>
    <dd><input type="password" name="password1" value="" /></dd>
    <dt><label for="password2">Password (repeat):</label></dt>
    <dd><input type="password" name="password2" value="" /></dd>
    </dl>
  </fieldset>
  <label for="about">About user:</label>
  <textarea id="about" rows="5" name="about" cols="60">${data.get('about','')}</textarea>
  <p class="small" i18n:msg="">You can use <a href="http://daringfireball.net/projects/markdown/syntax">Markdown formatting</a> here.</p>

  <div>
    <input name="preview" type="submit" value="Preview" />
    ${h.submit('save', _('Save'))}
  </div>
</form>

