aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2010-06-13 23:56:16 +0200
committerMarcin Kuzminski <marcin@python-works.com>2010-06-13 23:56:16 +0200
commit07999835ff728b78ff093be7977265ee9f9d2128 (patch)
tree081f042eba365901cea5732785f28f9d8594eb99
parent94b2f9cb30af2b986ef8662ce1bd2aefc74507a5 (diff)
switched filters into webhelpers for easy of usage.
Rewrite of html to use predefined templates from branches shortlog tags, for DRY usage. Added info messages about empty branches/tags etc.
-rw-r--r--pylons_app/controllers/changelog.py5
-rw-r--r--pylons_app/controllers/graph.py6
-rw-r--r--pylons_app/controllers/summary.py5
-rw-r--r--pylons_app/lib/filters.py41
-rw-r--r--pylons_app/lib/helpers.py26
-rw-r--r--pylons_app/templates/branches/branches.html30
-rw-r--r--pylons_app/templates/branches/branches_data.html30
-rw-r--r--pylons_app/templates/changelog/changelog.html12
-rw-r--r--pylons_app/templates/changeset/changeset.html3
-rw-r--r--pylons_app/templates/errors/error_404.html3
-rw-r--r--pylons_app/templates/index.html7
-rw-r--r--pylons_app/templates/login.html3
-rw-r--r--pylons_app/templates/shortlog/shortlog_data.html14
-rw-r--r--pylons_app/templates/summary/summary.html101
-rw-r--r--pylons_app/templates/tags/tags.html29
-rw-r--r--pylons_app/templates/tags/tags_data.html29
16 files changed, 119 insertions, 225 deletions
diff --git a/pylons_app/controllers/changelog.py b/pylons_app/controllers/changelog.py
index 48618930..d562ac2c 100644
--- a/pylons_app/controllers/changelog.py
+++ b/pylons_app/controllers/changelog.py
@@ -49,12 +49,13 @@ class ChangelogController(BaseController):
session['changelog_size'] = c.size
session.save()
else:
- c.size = session.get('changelog_size', default)
+ c.size = int(session.get('changelog_size', default))
changesets = HgModel().get_repo(c.repo_name)
p = int(request.params.get('page', 1))
- c.pagination = Page(changesets, page=p, item_count=len(changesets),
+ c.total_cs = len(changesets)
+ c.pagination = Page(changesets, page=p, item_count=c.total_cs,
items_per_page=c.size)
#self._graph(c.repo, c.size,p)
diff --git a/pylons_app/controllers/graph.py b/pylons_app/controllers/graph.py
index 6489b3a3..b48f3a3b 100644
--- a/pylons_app/controllers/graph.py
+++ b/pylons_app/controllers/graph.py
@@ -25,9 +25,9 @@ graph controller for pylons
from mercurial.graphmod import revisions as graph_rev, colored, CHANGESET
from mercurial.node import short
from pylons import request, tmpl_context as c
+import pylons_app.lib.helpers as h
from pylons_app.lib.auth import LoginRequired
from pylons_app.lib.base import BaseController, render
-from pylons_app.lib.filters import age as _age, person
from pylons_app.model.hg_model import HgModel
from simplejson import dumps
from webhelpers.paginate import Page
@@ -74,9 +74,9 @@ class GraphController(BaseController):
if type != CHANGESET:
continue
node = short(ctx.node())
- age = _age(ctx.date())
+ age = h.age(ctx.date())
desc = ctx.description()
- user = person(ctx.user())
+ user = h.person(ctx.user())
branch = ctx.branch()
branch = branch, repo.repo.branchtags().get(branch) == ctx.node()
data.append((node, vtx, edges, desc, user, age, branch, ctx.tags()))
diff --git a/pylons_app/controllers/summary.py b/pylons_app/controllers/summary.py
index 76ad0031..ed830fe5 100644
--- a/pylons_app/controllers/summary.py
+++ b/pylons_app/controllers/summary.py
@@ -25,7 +25,8 @@ summary controller for pylons
from pylons import tmpl_context as c, request
from pylons_app.lib.auth import LoginRequired
from pylons_app.lib.base import BaseController, render
-from pylons_app.model.hg_model import HgModel, _full_changelog_cached
+from pylons_app.model.hg_model import HgModel
+from webhelpers.paginate import Page
import logging
log = logging.getLogger(__name__)
@@ -39,7 +40,7 @@ class SummaryController(BaseController):
def index(self):
hg_model = HgModel()
c.repo_info = hg_model.get_repo(c.repo_name)
- c.repo_changesets = _full_changelog_cached(c.repo_name)[:10]
+ c.repo_changesets = Page(list(c.repo_info[:10]), page=1, items_per_page=20)
e = request.environ
uri = u'%(protocol)s://%(user)s@%(host)s/%(repo_name)s' % {
'protocol': e.get('wsgi.url_scheme'),
diff --git a/pylons_app/lib/filters.py b/pylons_app/lib/filters.py
deleted file mode 100644
index 64c5750c..00000000
--- a/pylons_app/lib/filters.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env python
-# encoding: utf-8
-# simple filters for hg apps html templates
-# Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
-
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; version 2
-# of the License or (at your opinion) any later version of the license.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-
-"""
-Created on April 12, 2010
-simple filters for hg apps html templates
-@author: marcink
-"""
-
-from mercurial import util
-from mercurial.templatefilters import age as _age, person as _person
-
-age = lambda x:_age(x)
-capitalize = lambda x: x.capitalize()
-date = lambda x: util.datestr(x)
-email = util.email
-person = lambda x: _person(x)
-hgdate = lambda x: "%d %d" % x
-isodate = lambda x: util.datestr(x, '%Y-%m-%d %H:%M %1%2')
-isodatesec = lambda x: util.datestr(x, '%Y-%m-%d %H:%M:%S %1%2')
-localdate = lambda x: (x[0], util.makedate()[1])
-rfc822date = lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S %1%2")
-rfc3339date = lambda x: util.datestr(x, "%Y-%m-%dT%H:%M:%S%1:%2")
-time_ago = lambda x: util.datestr(_age(x), "%a, %d %b %Y %H:%M:%S %1%2")
diff --git a/pylons_app/lib/helpers.py b/pylons_app/lib/helpers.py
index dfba55db..f6e36348 100644
--- a/pylons_app/lib/helpers.py
+++ b/pylons_app/lib/helpers.py
@@ -203,3 +203,29 @@ def repo_name_slug(value):
return slug
flash = _Flash()
+
+
+#===============================================================================
+# MERCURIAL FILTERS available via h.
+#===============================================================================
+
+
+from mercurial import util
+from mercurial.templatefilters import age as _age, person as _person
+
+age = lambda x:_age(x)
+capitalize = lambda x: x.capitalize()
+date = lambda x: util.datestr(x)
+email = util.email
+person = lambda x: _person(x)
+hgdate = lambda x: "%d %d" % x
+isodate = lambda x: util.datestr(x, '%Y-%m-%d %H:%M %1%2')
+isodatesec = lambda x: util.datestr(x, '%Y-%m-%d %H:%M:%S %1%2')
+localdate = lambda x: (x[0], util.makedate()[1])
+rfc822date = lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S %1%2")
+rfc3339date = lambda x: util.datestr(x, "%Y-%m-%dT%H:%M:%S%1:%2")
+time_ago = lambda x: util.datestr(_age(x), "%a, %d %b %Y %H:%M:%S %1%2")
+
+
+
+
diff --git a/pylons_app/templates/branches/branches.html b/pylons_app/templates/branches/branches.html
index 3ed67aa0..024bd0b0 100644
--- a/pylons_app/templates/branches/branches.html
+++ b/pylons_app/templates/branches/branches.html
@@ -1,5 +1,4 @@
<%inherit file="/base/base.html"/>
-<%! from pylons_app.lib import filters %>
<%def name="title()">
${_('Branches')}
</%def>
@@ -14,33 +13,6 @@
${self.menu('branches')}
</%def>
<%def name="main()">
-
<h2 class="no-link no-border">${_('Branches')}</h2>
-
- <table class="table_disp">
- <tr class="header">
- <td>${_('date')}</td>
- <td>${_('revision')}</td>
- <td>${_('name')}</td>
- <td>${_('links')}</td>
- </tr>
- %for cnt,branch in enumerate(c.repo_branches.items()):
- <tr class="parity${cnt%2}">
- <td>${branch[1]._ctx.date()|n,filters.age}</td>
- <td>r${branch[1].revision}:${branch[1].raw_id}</td>
- <td>
- <span class="logtags">
- <span class="branchtag">${h.link_to(branch[0],
- h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
- </span>
- </td>
- <td class="nowrap">
- ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
- |
- ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
- </td>
- </tr>
- %endfor
- </table>
-
+ <%include file='branches_data.html'/>
</%def> \ No newline at end of file
diff --git a/pylons_app/templates/branches/branches_data.html b/pylons_app/templates/branches/branches_data.html
new file mode 100644
index 00000000..b2932b5c
--- /dev/null
+++ b/pylons_app/templates/branches/branches_data.html
@@ -0,0 +1,30 @@
+% if c.repo_branches:
+ <table class="table_disp">
+ <tr class="header">
+ <td>${_('date')}</td>
+ <td>${_('revision')}</td>
+ <td>${_('name')}</td>
+ <td>${_('links')}</td>
+ </tr>
+ %for cnt,branch in enumerate(c.repo_branches.items()):
+ <tr class="parity${cnt%2}">
+ <td>${h.age(branch[1]._ctx.date())}</td>
+ <td>r${branch[1].revision}:${branch[1].raw_id}</td>
+ <td>
+ <span class="logtags">
+ <span class="branchtag">${h.link_to(branch[0],
+ h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
+ </span>
+ </td>
+ <td class="nowrap">
+ ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
+ |
+ ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
+ </td>
+ </tr>
+ %endfor
+ </table>
+%else:
+ ${_('There are no branches yet')}
+%endif
+
diff --git a/pylons_app/templates/changelog/changelog.html b/pylons_app/templates/changelog/changelog.html
index c6f5ea6c..69337829 100644
--- a/pylons_app/templates/changelog/changelog.html
+++ b/pylons_app/templates/changelog/changelog.html
@@ -1,6 +1,3 @@
-<%!
-from pylons_app.lib import filters
-%>
<%inherit file="/base/base.html"/>
<%def name="title()">
@@ -19,8 +16,12 @@ from pylons_app.lib import filters
<%def name="main()">
- <h2 class="no-link no-border">${_('Changelog')} - ${_('showing last ')} ${c.size} ${_('revisions')}</h2>
+ <h2 class="no-link no-border">${_('Changelog')} - ${_('showing ')}
+ ${c.size if c.size <= c.total_cs else c.total_cs}
+ ${_('out of')} ${c.total_cs} ${_('revisions')}
+ </h2>
<noscript>${_('The revision graph only works with JavaScript-enabled browsers.')}</noscript>
+% if c.pagination:
<div id="graph">
##<div id="graph_nodes" style="height:1000px">
@@ -89,4 +90,7 @@ from pylons_app.lib import filters
<div>
<h2>${c.pagination.pager('$link_previous ~2~ $link_next')}</h2>
</div>
+%else:
+ ${_('There are no changes yet')}
+%endif
</%def> \ No newline at end of file
diff --git a/pylons_app/templates/changeset/changeset.html b/pylons_app/templates/changeset/changeset.html
index fd705a63..01042947 100644
--- a/pylons_app/templates/changeset/changeset.html
+++ b/pylons_app/templates/changeset/changeset.html
@@ -1,6 +1,3 @@
-<%!
-from pylons_app.lib import filters
-%>
<%inherit file="/base/base.html"/>
<%def name="title()">
diff --git a/pylons_app/templates/errors/error_404.html b/pylons_app/templates/errors/error_404.html
index 15498cc3..852b0fea 100644
--- a/pylons_app/templates/errors/error_404.html
+++ b/pylons_app/templates/errors/error_404.html
@@ -1,7 +1,4 @@
## -*- coding: utf-8 -*-
-<%!
-from pylons_app.lib import filters
-%>
<%inherit file="./../base/base.html"/>
<%def name="title()">
diff --git a/pylons_app/templates/index.html b/pylons_app/templates/index.html
index 9f4b829b..b34d03ba 100644
--- a/pylons_app/templates/index.html
+++ b/pylons_app/templates/index.html
@@ -1,7 +1,4 @@
## -*- coding: utf-8 -*-
-<%!
-from pylons_app.lib import filters
-%>
<%inherit file="base/base.html"/>
<%def name="title()">
${c.repos_prefix} Mercurial Repositories
@@ -38,12 +35,12 @@ from pylons_app.lib import filters
<td>${h.link_to(repo['name'],
h.url('summary_home',repo_name=repo['name']))}</td>
<td title="${repo['description']}">${h.truncate(repo['description'],60)}</td>
- <td>${repo['last_change']|n,filters.age}</td>
+ <td>${h.age(repo['last_change'])}</td>
<td>${h.link_to('r%s:%s' % (repo['rev'],repo['tip']),
h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
class_="tooltip",
tooltip_title=h.tooltip(repo['last_msg']))}</td>
- <td title="${repo['contact']}">${repo['contact']|n,filters.person}</td>
+ <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
<td>
<a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_logo" href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
</td>
diff --git a/pylons_app/templates/login.html b/pylons_app/templates/login.html
index 518bf734..89eaf49d 100644
--- a/pylons_app/templates/login.html
+++ b/pylons_app/templates/login.html
@@ -1,7 +1,4 @@
## -*- coding: utf-8 -*-
-<%!
-from pylons_app.lib import filters
-%>
<%inherit file="base/base.html"/>
<%def name="title()">
${c.repos_prefix} Mercurial Repositories
diff --git a/pylons_app/templates/shortlog/shortlog_data.html b/pylons_app/templates/shortlog/shortlog_data.html
index e68437ba..9b231f19 100644
--- a/pylons_app/templates/shortlog/shortlog_data.html
+++ b/pylons_app/templates/shortlog/shortlog_data.html
@@ -1,7 +1,6 @@
## -*- coding: utf-8 -*-
-<%!
-from pylons_app.lib import filters
-%>
+% if c.repo_changesets:
+
<table class="table_disp">
<tr class="header">
<td>${_('date')}</td>
@@ -15,8 +14,8 @@ from pylons_app.lib import filters
</tr>
%for cnt,cs in enumerate(c.repo_changesets):
<tr class="parity${cnt%2}">
- <td>${cs._ctx.date()|n,filters.age}</td>
- <td title="${cs.author}">${cs.author|n,filters.person}</td>
+ <td>${h.age(cs._ctx.date())}</td>
+ <td title="${cs.author}">${h.person(cs.author)}</td>
<td>r${cs.revision}:${cs.raw_id}</td>
<td>
${h.link_to(h.truncate(cs.message,60),
@@ -59,4 +58,7 @@ from pylons_app.lib import filters
YAHOO.util.Dom.setStyle(data_div,'opacity','0.3');});
YAHOO.util.Dom.setStyle(data_div,'opacity','1');}},null); return false;""")}
</h2>
- </div> \ No newline at end of file
+ </div>
+%else:
+ ${_('There are no commits yet')}
+%endif \ No newline at end of file
diff --git a/pylons_app/templates/summary/summary.html b/pylons_app/templates/summary/summary.html
index 208e9cb6..9c9f957a 100644
--- a/pylons_app/templates/summary/summary.html
+++ b/pylons_app/templates/summary/summary.html
@@ -1,7 +1,4 @@
<%inherit file="/base/base.html"/>
-<%!
-from pylons_app.lib import filters
-%>
<%def name="title()">
${_('Repository managment')}
</%def>
@@ -41,7 +38,7 @@ E.onDOMReady(function(e){
<dt>${_('contact')}</dt>
<dd>${c.repo_info.contact}</dd>
<dt>${_('last change')}</dt>
- <dd>${c.repo_info.last_change|n,filters.age} - ${c.repo_info.last_change|n,filters.rfc822date}</dd>
+ <dd>${h.age(c.repo_info.last_change)} - ${h.rfc822date(c.repo_info.last_change)}</dd>
<dt>${_('clone url')}</dt>
<dd><input type="text" id="clone_url" readonly="readonly" value="hg clone ${c.clone_repo_url}" size="70"/></dd>
<dt>${_('download')}</dt>
@@ -63,100 +60,12 @@ E.onDOMReady(function(e){
</dl>
<h2>${h.link_to(_('Last ten changes'),h.url('changelog_home',repo_name=c.repo_name))}</h2>
-<table class="table_disp">
- <tr class="header">
- <td>${_('date')}</td>
- <td>${_('author')}</td>
- <td>${_('revision')}</td>
- <td>${_('commit message')}</td>
- <td>${_('branch')}</td>
- <td>${_('tags')}</td>
- <td>${_('links')}</td>
-
- </tr>
- %for cnt,cs in enumerate(c.repo_changesets):
- <tr class="parity${cnt%2}">
- <td>${cs._ctx.date()|n,filters.age}</td>
- <td>${cs.author|n,filters.person}</td>
- <td>r${cs.revision}:${cs.raw_id}</td>
- <td>
- ${h.link_to(h.truncate(cs.message,60),
- h.url('changeset_home',repo_name=c.repo_name,revision=cs._short),
- title=cs.message)}
- </td>
- <td>
- <span class="logtags">
- <span class="branchtag">${cs.branch}</span>
- </span>
- </td>
- <td>
- <span class="logtags">
- %for tag in cs.tags:
- <span class="tagtag">${tag}</span>
- %endfor
- </span>
- </td>
- <td class="nowrap">
- ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=cs._short))}
- |
- ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=cs._short))}
- </td>
- </tr>
- %endfor
- </table>
+ <%include file='../shortlog/shortlog_data.html'/>
<h2>${h.link_to(_('Last ten tags'),h.url('tags_home',repo_name=c.repo_name))}</h2>
- <table class="table_disp">
- <tr class="header">
- <td>${_('date')}</td>
- <td>${_('revision')}</td>
- <td>${_('name')}</td>
- <td>${_('links')}</td>
- </tr>
- %for cnt,tag in enumerate(c.repo_tags.items()):
- <tr class="parity${cnt%2}">
- <td>${tag[1]._ctx.date()|n,filters.age}</td>
- <td>r${tag[1].revision}:${tag[1].raw_id}</td>
- <td>
- <span class="logtags">
- <span class="tagtag">${h.link_to(tag[0],
- h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}</span>
- </span>
- </td>
- <td class="nowrap">
- ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}
- |
- ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=tag[1].raw_id))}
- </td>
- </tr>
- %endfor
- </table>
-
+ <%include file='../tags/tags_data.html'/>
+
<h2>${h.link_to(_('Last ten branches'),h.url('branches_home',repo_name=c.repo_name))}</h2>
- <table class="table_disp">
- <tr class="header">
- <td>${_('date')}</td>
- <td>${_('revision')}</td>
- <td>${_('name')}</td>
- <td>${_('links')}</td>
- </tr>
- %for cnt,branch in enumerate(c.repo_branches.items()):
- <tr class="parity${cnt%2}">
- <td>${branch[1]._ctx.date()|n,filters.age}</td>
- <td>r${branch[1].revision}:${branch[1].raw_id}</td>
- <td>
- <span class="logtags">
- <span class="branchtag">${h.link_to(branch[0],
- h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
- </span>
- </td>
- <td class="nowrap">
- ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
- |
- ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
- </td>
- </tr>
- %endfor
- </table>
+ <%include file='../branches/branches_data.html'/>
</%def> \ No newline at end of file
diff --git a/pylons_app/templates/tags/tags.html b/pylons_app/templates/tags/tags.html
index 07a7ec25..2a47573d 100644
--- a/pylons_app/templates/tags/tags.html
+++ b/pylons_app/templates/tags/tags.html
@@ -1,7 +1,4 @@
<%inherit file="/base/base.html"/>
-<%!
-from pylons_app.lib import filters
-%>
<%def name="title()">
${_('Tags')}
</%def>
@@ -18,30 +15,6 @@ from pylons_app.lib import filters
<%def name="main()">
<h2 class="no-link no-border">${_('Tags')}</h2>
- <table class="table_disp">
- <tr class="header">
- <td>${_('date')}</td>
- <td>${_('revision')}</td>
- <td>${_('name')}</td>
- <td>${_('links')}</td>
- </tr>
- %for cnt,tag in enumerate(c.repo_tags.items()):
- <tr class="parity${cnt%2}">
- <td>${tag[1]._ctx.date()|n,filters.age}</td>
- <td>r${tag[1].revision}:${tag[1].raw_id}</td>
- <td>
- <span class="logtags">
- <span class="tagtag">${h.link_to(tag[0],
- h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}</span>
- </span>
- </td>
- <td class="nowrap">
- ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}
- |
- ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=tag[1].raw_id))}
- </td>
- </tr>
- %endfor
- </table>
+ <%include file='tags_data.html'/>
</%def> \ No newline at end of file
diff --git a/pylons_app/templates/tags/tags_data.html b/pylons_app/templates/tags/tags_data.html
new file mode 100644
index 00000000..7850f1b1
--- /dev/null
+++ b/pylons_app/templates/tags/tags_data.html
@@ -0,0 +1,29 @@
+%if c.repo_tags:
+ <table class="table_disp">
+ <tr class="header">
+ <td>${_('date')}</td>
+ <td>${_('revision')}</td>
+ <td>${_('name')}</td>
+ <td>${_('links')}</td>
+ </tr>
+ %for cnt,tag in enumerate(c.repo_tags.items()):
+ <tr class="parity${cnt%2}">
+ <td>${h.age(tag[1]._ctx.date())}</td>
+ <td>r${tag[1].revision}:${tag[1].raw_id}</td>
+ <td>
+ <span class="logtags">
+ <span class="tagtag">${h.link_to(tag[0],
+ h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}</span>
+ </span>
+ </td>
+ <td class="nowrap">
+ ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=tag[1].raw_id))}
+ |
+ ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=tag[1].raw_id))}
+ </td>
+ </tr>
+ %endfor
+ </table>
+%else:
+ ${_('There are no tags yet')}
+%endif \ No newline at end of file