Mercurial > p > roundup > code
view website/issues/html/_generic.item.html @ 5988:39b8bc511ed7
Fix html generation errors for boolean options.
Code was generating xhtml form for html4 output.
In xhtml, Boolean attributes like 'disabled', 'required' are
represented with a value that is the same as the attribute name. E.G.
<input required="required" ...>. Html 5 (and 4) represents the same as
<input required ...> .
Recognize booleans in one of two ways:
value is None
value is the same as the attribute name
Make html4 and xhtml variants of cgi_escape_attrs. Have input_htmlp4
and input_xhtml call the proper variant. Also set HTMLInputMixin
property cgi_escape_atrs to select proper one similar to self.input
definition. Then replace calls to cgi_escape_attr with
self.cgi_escape_attrs to get correct output.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 14 Dec 2019 16:18:15 -0500 |
| parents | c2d0d3e9099d |
| children |
line wrap: on
line source
<tal:block metal:use-macro="templates/page/macros/icing"> <title metal:fill-slot="head_title" i18n:translate="" ><span tal:replace="python:context._classname.capitalize()" i18n:name="class" /> editing - <span i18n:name="tracker" tal:replace="config/TRACKER_NAME" /></title> <tal:block metal:fill-slot="body_title" i18n:translate="" ><span tal:replace="python:context._classname.capitalize()" i18n:name="class" /> editing</tal:block> <td class="content" metal:fill-slot="content"> <p tal:condition="python:not (context.is_view_ok() or request.user.hasRole('Anonymous'))" i18n:translate=""> You are not allowed to view this page.</p> <p tal:condition="python:not context.is_view_ok() and request.user.hasRole('Anonymous')" i18n:translate=""> Please login with your username and password.</p> <div tal:condition="context/is_view_ok"> <form method="POST" onSubmit="return submit_once()" enctype="multipart/form-data" tal:condition="context/is_view_ok" tal:attributes="action context/designator"> <input type="hidden" name="@template" value="item"> <table class="form"> <tr tal:repeat="prop python:db[context._classname].properties()"> <tal:block tal:condition="python:prop._name not in ('id', 'creator', 'creation', 'actor', 'activity')"> <th tal:content="prop/_name"></th> <td tal:content="structure python:context[prop._name].field()"></td> </tal:block> </tr> <tr> <td> </td> <td colspan=3 tal:content="structure context/submit"> submit button will go here </td> </tr> </table> </form> <tal:block tal:condition="context/id" tal:replace="structure context/history" /> </div> </td> </tal:block>
