changeset 3599:8087731920d8 beta

breadcrumbs: make repo names link to summary pages
author Mads Kiilerich <madski@unity3d.com>
date Tue, 26 Mar 2013 15:53:11 +0100
parents 7d774f09dba5
children 727119201a42
files rhodecode/lib/helpers.py rhodecode/model/db.py rhodecode/model/repo.py rhodecode/templates/base/base.html
diffstat 4 files changed, 11 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/helpers.py	Tue Mar 26 01:23:35 2013 +0100
+++ b/rhodecode/lib/helpers.py	Tue Mar 26 15:53:11 2013 +0100
@@ -917,7 +917,7 @@
         return ': ' + _('No Files')
 
 
-def repo_link(groups_and_repos, last_url=None):
+def repo_link(groups_and_repos):
     """
     Makes a breadcrumbs link to repo within a group
     joins &raquo; on each group to create a fancy link
@@ -928,18 +928,14 @@
     :param groups_and_repos:
     :param last_url:
     """
-    groups, repo_name = groups_and_repos
-    last_link = link_to(repo_name, last_url) if last_url else repo_name
+    groups, just_name, repo_name = groups_and_repos
+    last_url = url('summary_home', repo_name=repo_name)
+    last_link = link_to(just_name, last_url)
 
-    if not groups:
-        if last_url:
-            return literal('<span>%s</span>' % last_link)
-        return literal('<span>%s</span>' % repo_name)
-    else:
-        def make_link(group):
-            return link_to(group.name,
-                           url('repos_group_home', group_name=group.group_name))
-        return literal(' &raquo; '.join(map(make_link, groups) + ['<span>' + last_link + '</span>']))
+    def make_link(group):
+        return link_to(group.name,
+                       url('repos_group_home', group_name=group.group_name))
+    return literal(' &raquo; '.join(map(make_link, groups) + ['<span>%s</span>' % last_link]))
 
 
 def fancy_file_stats(stats):
--- a/rhodecode/model/db.py	Tue Mar 26 01:23:35 2013 +0100
+++ b/rhodecode/model/db.py	Tue Mar 26 15:53:11 2013 +0100
@@ -887,7 +887,7 @@
 
     @property
     def groups_and_repo(self):
-        return self.groups_with_parents, self.just_name
+        return self.groups_with_parents, self.just_name, self.repo_name
 
     @LazyProperty
     def repo_path(self):
--- a/rhodecode/model/repo.py	Tue Mar 26 01:23:35 2013 +0100
+++ b/rhodecode/model/repo.py	Tue Mar 26 15:53:11 2013 +0100
@@ -240,7 +240,7 @@
             return None
 
         defaults = repo_info.get_dict()
-        group, repo_name = repo_info.groups_and_repo
+        group, repo_name, repo_name_full = repo_info.groups_and_repo
         defaults['repo_name'] = repo_name
         defaults['repo_group'] = getattr(group[-1] if group else None,
                                          'group_id', None)
--- a/rhodecode/templates/base/base.html	Tue Mar 26 01:23:35 2013 +0100
+++ b/rhodecode/templates/base/base.html	Tue Mar 26 15:53:11 2013 +0100
@@ -106,7 +106,7 @@
     <div id="context-top">
       <div id="breadcrumbs">
         ${h.link_to(_(u'Repositories'),h.url('home'))}
-        ยป
+        &raquo;
         ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
       </div>
       ## TODO: this check feels wrong, it would be better to have a check for permissions