Fixed a bug that made it hard to change the visibility of a column of a table instance
authorMichael Elsdoerfer <michael@elsdoerfer.info>
Sat, 10 Jan 2009 01:13:00 +0000 (02:13 +0100)
committerMichael Elsdoerfer <michael@elsdoerfer.info>
Sat, 10 Jan 2009 01:13:00 +0000 (02:13 +0100)
django_tables/tables.py
tests/test_basic.py

index f4fea4fcd8a9645fd53ab979a20fddcb9e5746d4..94274e8c79c56752c05eedf367549e3a6b727a35 100644 (file)
@@ -467,7 +467,7 @@ class Columns(object):
         This is primarily geared towards table rendering.\r
         """\r
         for column in self.all():\r
-            if column.column.visible:\r
+            if column.visible:\r
                 yield column\r
 \r
     def __contains__(self, item):\r
index 51f897229cdb6ead0446548abde414ca18071e22..372532ad55da62c243216a39b098da0ae3107078 100644 (file)
@@ -308,7 +308,7 @@ def test_pagination():
     # exceptions are converted into 404s\r
     assert_raises(Http404, books.paginate, Paginator, 10, page=9999)\r
     assert_raises(Http404, books.paginate, Paginator, 10, page="abc")\r
-    \r
+\r
 \r
 # TODO: all the column stuff might warrant it's own test file\r
 def test_columns():\r
@@ -316,7 +316,7 @@ def test_columns():
     """\r
 \r
     class BookTable(tables.Table):\r
-        id = tables.Column(sortable=False)\r
+        id = tables.Column(sortable=False, visible=False)\r
         name = tables.Column(sortable=True)\r
         pages = tables.Column(sortable=True)\r
         language = tables.Column(sortable=False)\r
@@ -324,6 +324,12 @@ def test_columns():
 \r
     assert list(books.columns.sortable()) == [c for c in books.columns if c.sortable]\r
 \r
+    # .columns iterator only yields visible columns\r
+    assert len(list(books.columns)) == 3\r
+    # visiblity of columns can be changed at instance-time\r
+    books.columns['id'].visible = True\r
+    assert len(list(books.columns)) == 4\r
+\r
 \r
 def test_column_order():\r
     """Test the order functionality of bound columns.\r