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):