better auto verbose names
authorMichael Elsdörfer <michael@elsdoerfer.info>
Wed, 18 Jun 2008 12:59:53 +0000 (12:59 +0000)
committerMichael Elsdörfer <michael@elsdoerfer.info>
Wed, 18 Jun 2008 12:59:53 +0000 (12:59 +0000)
README
django_tables/tables.py
tests/test_models.py
tests/test_templates.py

diff --git a/README b/README
index e31888748b738ba1f3da30a695f87da770ea3714..b7813a5adc14affe203e16ca209c33f99ed4e02b 100644 (file)
--- a/README
+++ b/README
@@ -51,7 +51,7 @@ If you pass the table object along into a template, you can do:
 Which will give you:\r
 \r
     Country Name\r
-    Time Zone\r
+    Timezone\r
 \r
 Note that ``population`` is skipped (as it has ``visible=False``), that the\r
 declared verbose name for the ``name`` column is used, and that ``time_zone``\r
index eeecde011ca69003d8f879cf2c8acfef3d77ee02..aa0980370c264a6e3bf8bb72021dd54ac3edb149 100644 (file)
@@ -1,6 +1,7 @@
 import copy\r
 from django.utils.datastructures import SortedDict\r
 from django.utils.encoding import StrAndUnicode\r
+from django.utils.text import capfirst\r
 from columns import Column\r
 \r
 __all__ = ('BaseTable', 'Table')\r
@@ -334,7 +335,7 @@ class BoundColumn(StrAndUnicode):
     values = property(_get_values)\r
 \r
     def __unicode__(self):\r
-        return self.column.verbose_name or self.name\r
+        return capfirst(self.column.verbose_name or self.name.replace('_', ' '))\r
 \r
     def as_html(self):\r
         pass\r
index 9d9f3e437da59237e1ee611cb5e821d56edfad11..c58f91800a6c05cf06bdf73c553c94270bb31614 100644 (file)
@@ -160,5 +160,4 @@ def test_pagination():
 # TODO: support function column sources both for modeltables (methods on model) and static tables (functions in dict)\r
 # TODO: manual base columns change -> update() call (add as example in docstr here) -> rebuild snapshot: is row cache, column cache etc. reset?\r
 # TODO: test that boundcolumn.name works with name overrides and without\r
-# TODO: more beautiful auto column names\r
 # TODO: throw an exception on invalid order_by
\ No newline at end of file
index e49c16863ee2fa1e54dcfba1b0d83b064fc6e6a3..3b59aeb641d41699e43a02cfd0622fd6940115cc 100644 (file)
@@ -44,7 +44,7 @@ def test_columns_and_rows():
     # column name override, hidden columns\r
     assert [c.name for c in countries.columns] == ['name', 'capital', 'population', 'cc']\r
     # verbose_name, and fallback to field name\r
-    assert [unicode(c) for c in countries.columns] == ['name', 'capital', 'Population Size', 'Phone Ext.']\r
+    assert [unicode(c) for c in countries.columns] == ['Name', 'Capital', 'Population Size', 'Phone Ext.']\r
 \r
     # data yielded by each row matches the defined columns\r
     for row in countries.rows:\r
@@ -88,7 +88,7 @@ def test_render():
 \r
     assert Template("{% for column in countries.columns %}{{ column }}/{{ column.name }} {% endfor %}").\\r
         render(Context({'countries': countries})) == \\r
-        "name/name capital/capital Population Size/population Phone Ext./cc "\r
+        "Name/name Capital/capital Population Size/population Phone Ext./cc "\r
 \r
     assert Template("{% for row in countries %}{% for value in row %}{{ value }} {% endfor %}{% endfor %}").\\r
         render(Context({'countries': countries})) == \\r