[Checkins] SVN: zope.introspectorui/trunk/src/zope/introspectorui/util.py Let the breadcrumbs be computed based on location infos.

Uli Fouquet uli at gnufix.de
Sun Aug 10 21:37:12 EDT 2008


Log message for revision 89610:
  Let the breadcrumbs be computed based on location infos.

Changed:
  U   zope.introspectorui/trunk/src/zope/introspectorui/util.py

-=-
Modified: zope.introspectorui/trunk/src/zope/introspectorui/util.py
===================================================================
--- zope.introspectorui/trunk/src/zope/introspectorui/util.py	2008-08-11 01:28:32 UTC (rev 89609)
+++ zope.introspectorui/trunk/src/zope/introspectorui/util.py	2008-08-11 01:37:11 UTC (rev 89610)
@@ -26,11 +26,15 @@
 
     def getBreadcrumbs(self):
         code_obj = self.context.context.context
-        items = code_obj.getParents()
-        result = []
-        for item in items:
-            name = getattr(item, 'name', item.dotted_name.split('.')[-1])
-            url = self.context.url(item)
-            result.append(
-                '<a href="%s">%s</a>' % (url, name))
+        dotted_name = code_obj.dotted_name
+        parts = []
+        while code_obj.__parent__:
+            parts.append(code_obj)
+            curr_dotted_name = '.'.join([x.__name__ for x in parts])
+            code_obj = code_obj.__parent__
+            if len(curr_dotted_name) >= len(dotted_name):
+                break
+        parts.reverse()
+        result = ['<a href="%s">%s</a>' % (self.context.url(x), x.__name__)
+                  for x in parts]
         return '.'.join(result)



More information about the Checkins mailing list