[Checkins] SVN: z3c.table/trunk/ be smart to not IPhysicallyLocatable objects if we lookup the __name__ value

Roger Ineichen roger at projekt01.ch
Fri Dec 19 08:42:06 EST 2008


Log message for revision 94192:
  be smart to not IPhysicallyLocatable objects if we lookup the __name__ value

Changed:
  U   z3c.table/trunk/CHANGES.txt
  U   z3c.table/trunk/src/z3c/table/column.py

-=-
Modified: z3c.table/trunk/CHANGES.txt
===================================================================
--- z3c.table/trunk/CHANGES.txt	2008-12-19 12:31:09 UTC (rev 94191)
+++ z3c.table/trunk/CHANGES.txt	2008-12-19 13:42:05 UTC (rev 94192)
@@ -5,7 +5,7 @@
 Version 0.6.1dev (unreleased)
 -----------------------------
 
-- ...
+- be smart to not IPhysicallyLocatable objects if we lookup the __name__ value
 
 Version 0.6.0 (2008-11-12)
 --------------------------

Modified: z3c.table/trunk/src/z3c/table/column.py
===================================================================
--- z3c.table/trunk/src/z3c/table/column.py	2008-12-19 12:31:09 UTC (rev 94191)
+++ z3c.table/trunk/src/z3c/table/column.py	2008-12-19 13:42:05 UTC (rev 94192)
@@ -57,6 +57,14 @@
     return column
 
 
+def getName(item):
+    # probably not IPhysicallyLocatable but still could have a __name__
+    try:
+        return api.getName(item)
+    except TypeError, e:
+        return item.__name__
+
+
 def safeGetAttr(obj, attr, default):
     try:
         return getattr(obj, attr, default)
@@ -134,7 +142,7 @@
     header = _('Name')
 
     def renderCell(self, item):
-        return api.getName(item)
+        return getName(item)
 
 
 class RadioColumn(Column):
@@ -153,13 +161,13 @@
         return property(get, set)
 
     def getSortKey(self, item):
-        return api.getName(item)
+        return getName(item)
 
     def getItemKey(self, item):
         return '%s-selectedItem' % self.id
 
     def getItemValue(self, item):
-        return api.getName(item)
+        return getName(item)
 
     def update(self):
         items = [item for item in self.table.values
@@ -193,13 +201,13 @@
         return property(get, set)
 
     def getSortKey(self, item):
-        return api.getName(item)
+        return getName(item)
 
     def getItemKey(self, item):
         return '%s-selectedItems' % self.id
 
     def getItemValue(self, item):
-        return api.getName(item)
+        return getName(item)
 
     def isSelected(self, item):
         v = self.request.get(self.getItemKey(item), [])
@@ -326,7 +334,7 @@
 
     def getLinkContent(self, item):
         """Setup link content."""
-        return self.linkContent or api.getName(item)
+        return self.linkContent or getName(item)
 
     def renderCell(self, item):
         # setup a tag
@@ -349,7 +357,7 @@
         return '%s-selectedItems' % self.id
 
     def getItemValue(self, item):
-        return api.getName(item)
+        return getName(item)
 
     def getSortKey(self, item):
         """Returns the sort key used for column sorting."""
@@ -357,7 +365,7 @@
 
     def getLinkContent(self, item):
         """Setup link content."""
-        return self.linkContent or api.getName(item)
+        return self.linkContent or getName(item)
 
     def getLinkURL(self, item):
         """Setup link url."""



More information about the Checkins mailing list