[Checkins] SVN: zc.table/trunk/src/zc/table/column. bugfix: did not
encode <>&
Adam Groszer
agroszer at gmail.com
Fri Jul 20 05:51:06 EDT 2007
Log message for revision 78218:
bugfix: did not encode <>&
Changed:
U zc.table/trunk/src/zc/table/column.py
U zc.table/trunk/src/zc/table/column.txt
-=-
Modified: zc.table/trunk/src/zc/table/column.py
===================================================================
--- zc.table/trunk/src/zc/table/column.py 2007-07-20 07:19:06 UTC (rev 78217)
+++ zc.table/trunk/src/zc/table/column.py 2007-07-20 09:51:04 UTC (rev 78218)
@@ -101,7 +101,9 @@
return item
def cell_formatter(self, value, item, formatter):
- return unicode(value)
+ return unicode(value).replace('&', '&') \
+ .replace('<', '<') \
+ .replace('>', '>')
def renderCell(self, item, formatter):
value = self.getter(item, formatter)
Modified: zc.table/trunk/src/zc/table/column.txt
===================================================================
--- zc.table/trunk/src/zc/table/column.txt 2007-07-20 07:19:06 UTC (rev 78217)
+++ zc.table/trunk/src/zc/table/column.txt 2007-07-20 09:51:04 UTC (rev 78218)
@@ -403,3 +403,116 @@
</tr>
</tbody>
</table>
+
+<>& encoding bug
+================
+
+There was a bug in column.py, it did not encode the characters <>& to
+< > &
+
+ >>> bugcontacts = (
+ ... Contact('1', 'Bob <Smith>', 'bob at zope.com'),
+ ... Contact('2', 'Sally & Baker', 'sally at zope.com'),
+ ... )
+
+We'll define columns that displays name and email addresses.
+
+ >>> from zc.table import column
+ >>> bugcolumns = (
+ ... column.GetterColumn(
+ ... title="Name", name="name",
+ ... getter=lambda contact, formatter: contact.name,
+ ... ),
+ ... column.GetterColumn(
+ ... title="E-mail", name="email",
+ ... getter=lambda contact, formatter: contact.email,
+ ... ),
+ ... )
+
+ >>> request = zope.publisher.browser.TestRequest()
+ >>> context = None
+ >>> formatter = table.Formatter(
+ ... context, request, bugcontacts, columns=bugcolumns)
+ >>> print formatter()
+ <table>
+ <thead>
+ <tr>
+ <th>
+ Name
+ </th>
+ <th>
+ E-mail
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ Bob <Smith>
+ </td>
+ <td>
+ bob at zope.com
+ </td>
+ </tr>
+ <tr>
+ <td>
+ Sally & Baker
+ </td>
+ <td>
+ sally at zope.com
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ >>> from zc.table import column
+ >>> bug2columns = (
+ ... column.FieldEditColumn(
+ ... "Name", "test", IContact["name"],
+ ... lambda contact: contact.id,
+ ... ),
+ ... column.FieldEditColumn(
+ ... "Email address", "test", IContact["email"],
+ ... lambda contact: contact.id,
+ ... ),
+ ... )
+
+ >>> formatter = table.Formatter(
+ ... context, request, bugcontacts, columns=bug2columns)
+ >>> print formatter()
+ <BLANKLINE>
+ <table>
+ <thead>
+ <tr>
+ <th>
+ Name
+ </th>
+ <th>
+ Email address
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <input class="textType" id="test.MQ==.name" name="test.MQ==.name"
+ size="20" type="text" value="Bob <Smith>" />
+ </td>
+ <td>
+ <input class="textType" id="test.MQ==.email" name="test.MQ==.email"
+ size="20" type="text" value="bob at zope.com" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <input class="textType" id="test.Mg==.name" name="test.Mg==.name"
+ size="20" type="text" value="Sally & Baker" />
+ </td>
+ <td>
+ <input class="textType" id="test.Mg==.email" name="test.Mg==.email"
+ size="20" type="text" value="sally at zope.com" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <BLANKLINE>
More information about the Checkins
mailing list