Mercurial > public > src > rhodecode
comparison pylons_app/controllers/hg.py @ 56:bf1b64046c79
Added last change translation to 'time ago', added generation of enabled zip archives
author | Marcin Kuzminski <marcin@python-blog.com> |
---|---|
date | Fri, 09 Apr 2010 00:30:42 +0200 |
parents | e00dccb6f211 |
children | e96bc5a01490 |
comparison
equal
deleted
inserted
replaced
55:e00dccb6f211 | 56:bf1b64046c79 |
---|---|
12 from vcs.backends.hg import get_repositories | 12 from vcs.backends.hg import get_repositories |
13 except ImportError: | 13 except ImportError: |
14 print 'You have to import vcs module' | 14 print 'You have to import vcs module' |
15 from mercurial.util import matchdate, Abort, makedate | 15 from mercurial.util import matchdate, Abort, makedate |
16 from mercurial.hgweb.common import get_contact | 16 from mercurial.hgweb.common import get_contact |
17 | 17 from mercurial.templatefilters import age |
18 log = logging.getLogger(__name__) | 18 log = logging.getLogger(__name__) |
19 | 19 |
20 class HgController(BaseController): | 20 class HgController(BaseController): |
21 | 21 |
22 def __before__(self): | 22 def __before__(self): |
30 cl_path = os.path.join(spath, "00changelog.i") | 30 cl_path = os.path.join(spath, "00changelog.i") |
31 if os.path.exists(cl_path): | 31 if os.path.exists(cl_path): |
32 return os.stat(cl_path).st_mtime | 32 return os.stat(cl_path).st_mtime |
33 else: | 33 else: |
34 return os.stat(spath).st_mtime | 34 return os.stat(spath).st_mtime |
35 | 35 |
36 def archivelist(ui, nodeid, url): | |
37 allowed = g.baseui.configlist("web", "allow_archive", untrusted=True) | |
38 for i in [('zip', '.zip'), ('gz', '.tar.gz'), ('bz2', '.tar.bz2')]: | |
39 if i[0] in allowed or ui.configbool("web", "allow" + i[0], | |
40 untrusted=True): | |
41 yield {"type" : i[0], "extension": i[1], | |
42 "node": nodeid, "url": url} | |
43 | |
36 for name, r in get_repositories(g.paths[0][0], g.paths[0][1]).items(): | 44 for name, r in get_repositories(g.paths[0][0], g.paths[0][1]).items(): |
37 last_change = (get_mtime(r.spath), makedate()[1]) | 45 last_change = (get_mtime(r.spath), makedate()[1]) |
38 tmp = {} | |
39 tmp['name'] = name | |
40 tmp['desc'] = r.ui.config('web', 'description', 'Unknown', untrusted=True) | |
41 tmp['last_change'] = last_change, | |
42 tip = r.changectx('tip') | 46 tip = r.changectx('tip') |
43 tmp['tip'] = tip.__str__(), | 47 tmp_d = {} |
44 tmp['rev'] = tip.rev() | 48 tmp_d['name'] = name |
45 tmp['contact'] = get_contact(r.ui.config) | 49 tmp_d['desc'] = r.ui.config('web', 'description', 'Unknown', untrusted=True) |
46 c.repos_list.append(tmp) | 50 tmp_d['last_change'] = age(last_change) |
51 tmp_d['tip'] = str(tip) | |
52 tmp_d['rev'] = tip.rev() | |
53 tmp_d['contact'] = get_contact(r.ui.config) | |
54 tmp_d['repo_archives'] = archivelist(r.ui, "tip", 'sa') | |
55 | |
56 c.repos_list.append(tmp_d) | |
47 return render('/index.html') | 57 return render('/index.html') |
48 | 58 |
49 def view(self, *args, **kwargs): | 59 def view(self, *args, **kwargs): |
50 #TODO: reimplement this not tu use hgwebdir | 60 #TODO: reimplement this not tu use hgwebdir |
51 response = g.hgapp(request.environ, self.start_response) | 61 response = g.hgapp(request.environ, self.start_response) |