diff --git a/VERSION b/VERSION index 47053d68..1bce9e32 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.6.0-development+timestamp.2013.07.11.09.13.54 +Version 2.6.0-development+timestamp.2013.07.11.11.27.25 diff --git a/gluon/html.py b/gluon/html.py index 34f00597..2d9fd7a2 100644 --- a/gluon/html.py +++ b/gluon/html.py @@ -98,6 +98,7 @@ __all__ = [ 'TFOOT', 'TITLE', 'TR', +# 'TRHEAD', 'TT', 'URL', 'XHTML', @@ -1198,12 +1199,12 @@ def TAG_pickler(data): return (TAG_unpickler, (marshal_dump,)) -class __tag__(DIV): +class __tag_div__(DIV): def __init__(self,name,*a,**b): DIV.__init__(self,*a,**b) self.tag = name -copy_reg.pickle(__tag__, TAG_pickler, TAG_unpickler) +copy_reg.pickle(__tag_div__, TAG_pickler, TAG_unpickler) class __TAG__(XmlComponent): @@ -1223,7 +1224,7 @@ class __TAG__(XmlComponent): name = name[:-1] + '/' if isinstance(name, unicode): name = name.encode('utf-8') - return lambda *a,**b: __tag__(name,*a,**b) + return lambda *a,**b: __tag_div__(name,*a,**b) def __call__(self, html): return web2pyHTMLParser(decoder.decoder(html)).tree @@ -1640,12 +1641,27 @@ class TR(DIV): self._wrap_components((TD, TH), TD) +class TRHEAD(DIV): + """ + TRHEAD Component. + + If subcomponents are not TD/TH-components they will be wrapped in a TH + + see also :class:`DIV` + """ + + tag = 'tr' + + def _fixup(self): + self._wrap_components((TD, TH), TH) + + class THEAD(DIV): tag = 'thead' def _fixup(self): - self._wrap_components(TR, TR) + self._wrap_components((TRHEAD, TR), TRHEAD) class TBODY(DIV): diff --git a/gluon/tests/test_html.py b/gluon/tests/test_html.py index 51a75526..82d65e62 100644 --- a/gluon/tests/test_html.py +++ b/gluon/tests/test_html.py @@ -188,6 +188,10 @@ class TestBareHelpers(unittest.TestCase): def testTHEAD(self): self.assertEqual(THEAD('<>', _a='1', _b='2').xml(), + '<>') + #self.assertEqual(THEAD(TRHEAD('<>'), _a='1', _b='2').xml(), + # '<>') + self.assertEqual(THEAD(TR('<>'), _a='1', _b='2').xml(), '<>') def testTITLE(self):