diff --git a/development.ini b/development.ini --- a/development.ini +++ b/development.ini @@ -29,7 +29,7 @@ full_stack = true static_files = true lang=en cache_dir = %(here)s/data -repos_name = etelko +repos_name = Etelko #################################### ### BEAKER CACHE #### diff --git a/production.ini b/production.ini --- a/production.ini +++ b/production.ini @@ -29,7 +29,7 @@ full_stack = true static_files = true lang=en cache_dir = %(here)s/data -repos_name = etelko +repos_name = Etelko #################################### ### BEAKER CACHE #### diff --git a/pylons_app/controllers/hg.py b/pylons_app/controllers/hg.py --- a/pylons_app/controllers/hg.py +++ b/pylons_app/controllers/hg.py @@ -14,7 +14,7 @@ except ImportError: print 'You have to import vcs module' from mercurial.util import matchdate, Abort, makedate from mercurial.hgweb.common import get_contact - +from mercurial.templatefilters import age log = logging.getLogger(__name__) class HgController(BaseController): @@ -32,18 +32,28 @@ class HgController(BaseController): return os.stat(cl_path).st_mtime else: return os.stat(spath).st_mtime - + + def archivelist(ui, nodeid, url): + allowed = g.baseui.configlist("web", "allow_archive", untrusted=True) + for i in [('zip', '.zip'), ('gz', '.tar.gz'), ('bz2', '.tar.bz2')]: + if i[0] in allowed or ui.configbool("web", "allow" + i[0], + untrusted=True): + yield {"type" : i[0], "extension": i[1], + "node": nodeid, "url": url} + for name, r in get_repositories(g.paths[0][0], g.paths[0][1]).items(): last_change = (get_mtime(r.spath), makedate()[1]) - tmp = {} - tmp['name'] = name - tmp['desc'] = r.ui.config('web', 'description', 'Unknown', untrusted=True) - tmp['last_change'] = last_change, tip = r.changectx('tip') - tmp['tip'] = tip.__str__(), - tmp['rev'] = tip.rev() - tmp['contact'] = get_contact(r.ui.config) - c.repos_list.append(tmp) + tmp_d = {} + tmp_d['name'] = name + tmp_d['desc'] = r.ui.config('web', 'description', 'Unknown', untrusted=True) + tmp_d['last_change'] = age(last_change) + tmp_d['tip'] = str(tip) + tmp_d['rev'] = tip.rev() + tmp_d['contact'] = get_contact(r.ui.config) + tmp_d['repo_archives'] = archivelist(r.ui, "tip", 'sa') + + c.repos_list.append(tmp_d) return render('/index.html') def view(self, *args, **kwargs): diff --git a/pylons_app/lib/app_globals.py b/pylons_app/lib/app_globals.py --- a/pylons_app/lib/app_globals.py +++ b/pylons_app/lib/app_globals.py @@ -43,7 +43,7 @@ class Globals(object): baseui.setconfig('web', k, v) #magic trick to make our custom template dir working templater.path.append(cfg.get('web', 'templates', None)) - + self.baseui = baseui #baseui.setconfig('web', 'description', '') #baseui.setconfig('web', 'name', '') #baseui.setconfig('web', 'contact', '') diff --git a/pylons_app/templates/index.html b/pylons_app/templates/index.html --- a/pylons_app/templates/index.html +++ b/pylons_app/templates/index.html @@ -13,7 +13,11 @@ <%def name="main()"> <%def name="get_sort(name)"> - ${name} + <%name_slug = name.lower().replace(' ','-') %> + %if not name_slug.startswith('-') and c.current_sort: + <%name_slug = '-'+name_slug%> + %endif + ${name} @@ -28,12 +32,12 @@ - +
${repo['name']} ${repo['desc']} ${repo['last_change']}r${repo['rev']}:${repo['tip']}r${repo['rev']}:${repo['tip']} ${repo['contact']}