changeset 4020:218ed589e44a

branch selectors: show closed branches too It would be even better if they were fetched dynamically somehow and perhaps placed in a sub sub menu ... but showing them in the list is often better than not showing them at all.
author Mads Kiilerich <madski@unity3d.com>
date Tue, 04 Jun 2013 13:26:41 +0200
parents 18121c5425b8
children b619842f173d
files rhodecode/controllers/changelog.py rhodecode/lib/vcs/backends/git/repository.py rhodecode/lib/vcs/backends/hg/repository.py rhodecode/templates/switch_to_list.html
diffstat 4 files changed, 27 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/changelog.py	Tue Jun 18 21:54:28 2013 +0200
+++ b/rhodecode/controllers/changelog.py	Tue Jun 04 13:26:41 2013 +0200
@@ -176,6 +176,10 @@
         c.branch_name = branch_name
         c.branch_filters = [('', _('All Branches'))] + \
             [(k, k) for k in c.rhodecode_repo.branches.keys()]
+        if c.rhodecode_repo.closed_branches:
+            prefix = _('(closed)') + ' '
+            c.branch_filters += [('-', '-')] + \
+                [(k, prefix + k) for k in c.rhodecode_repo.closed_branches.keys()]
         _revs = []
         if not f_path:
             _revs = [x.revision for x in c.pagination]
--- a/rhodecode/lib/vcs/backends/git/repository.py	Tue Jun 18 21:54:28 2013 +0200
+++ b/rhodecode/lib/vcs/backends/git/repository.py	Tue Jun 04 13:26:41 2013 +0200
@@ -371,6 +371,10 @@
         return OrderedDict(sorted(_branches, key=sortkey, reverse=False))
 
     @LazyProperty
+    def closed_branches(self):
+        return {}
+
+    @LazyProperty
     def tags(self):
         return self._get_tags()
 
--- a/rhodecode/lib/vcs/backends/hg/repository.py	Tue Jun 18 21:54:28 2013 +0200
+++ b/rhodecode/lib/vcs/backends/hg/repository.py	Tue Jun 04 13:26:41 2013 +0200
@@ -101,18 +101,23 @@
         return self._get_branches()
 
     @LazyProperty
+    def closed_branches(self):
+        return self._get_branches(normal=False, closed=True)
+
+    @LazyProperty
     def allbranches(self):
         """
         List all branches, including closed branches.
         """
         return self._get_branches(closed=True)
 
-    def _get_branches(self, closed=False):
+    def _get_branches(self, normal=True, closed=False):
         """
         Get's branches for this repository
         Returns only not closed branches by default
 
         :param closed: return also closed branches for mercurial
+        :param normal: return also normal branches
         """
 
         if self._empty:
@@ -135,6 +140,8 @@
                 else:
                     bt[bn] = tip
 
+            if not normal:
+                return bt_closed
             if closed:
                 bt.update(bt_closed)
             return bt
--- a/rhodecode/templates/switch_to_list.html	Tue Jun 18 21:54:28 2013 +0200
+++ b/rhodecode/templates/switch_to_list.html	Tue Jun 04 13:26:41 2013 +0200
@@ -11,6 +11,17 @@
     %endif
     </ul>
 </li>
+%if c.rhodecode_repo.closed_branches.values():
+<li>
+    ${h.link_to('%s (%s)' % (_('Closed Branches'),len(c.rhodecode_repo.closed_branches.values()),),h.url('branches_home',repo_name=c.repo_name),class_='branches childs')}
+    <ul>
+        <li><a>-</a></li>
+        %for cnt,branch in enumerate(c.rhodecode_repo.closed_branches.items()):
+            <li><div><pre>${h.link_to('%s - %s' % (branch[0],h.short_id(branch[1])),h.url('files_home',repo_name=c.repo_name,revision=(branch[0] if '/' not in branch[0] else branch[1]), at=branch[0]))}</pre></div></li>
+        %endfor
+    </ul>
+</li>
+%endif
 <li>
     ${h.link_to('%s (%s)' % (_('Tags'),len(c.rhodecode_repo.tags.values()),),h.url('tags_home',repo_name=c.repo_name),class_='tags childs')}
     <ul>