Mercurial > public > src > rhodecode
changeset 74:cdf4fda66dd9
Started summary page. Added filters to templates. used by n,self.f.filtername prefixed by n to disable other filters. Few other fixes found
author | Marcin Kuzminski <marcin@python-blog.com> |
---|---|
date | Mon, 12 Apr 2010 10:29:18 +0200 |
parents | 55d7f2502dfb |
children | 99afa4d28e2b |
files | pylons_app/config/routing.py pylons_app/controllers/hg.py pylons_app/lib/filters.py pylons_app/model/hg_model.py pylons_app/templates/base/base.html pylons_app/templates/summary.html |
diffstat | 6 files changed, 123 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/pylons_app/config/routing.py Sun Apr 11 22:57:16 2010 +0200 +++ b/pylons_app/config/routing.py Mon Apr 12 10:29:18 2010 +0200 @@ -28,7 +28,9 @@ with map.submapper(path_prefix='/_admin', controller='admin') as m: m.connect('admin_home', '/', action='index')#main page m.connect('admin_add_repo', '/add_repo/{new_repo:[a-z0-9\. _-]*}', action='add_repo') - + + + map.connect('summary_home', '/{repo_name}/_summary', controller='hg', action='view') map.connect('hg', '/{path_info:.*}', controller='hg', action="view", path_info='/')
--- a/pylons_app/controllers/hg.py Sun Apr 11 22:57:16 2010 +0200 +++ b/pylons_app/controllers/hg.py Mon Apr 12 10:29:18 2010 +0200 @@ -39,6 +39,10 @@ def view(self, *args, **kwargs): #TODO: reimplement this not tu use hgwebdir + + vcs_impl = self._get_vcs_impl(request.environ) + if vcs_impl: + return vcs_impl response = g.hgapp(request.environ, self.start_response) http_accept = request.environ.get('HTTP_ACCEPT', False) @@ -63,3 +67,18 @@ return template.render(g=g, c=c, session=session, h=h) + + + + + def _get_vcs_impl(self, environ): + path_info = environ['PATH_INFO'] + c.repo_name = path_info.split('/')[-2] + action = path_info.split('/')[-1] + if not action.startswith('_'): + return False + else: + hg_model = HgModel() + c.repo_info = hg_model.get_repo(c.repo_name) + c.repo_changesets = c.repo_info.get_changesets(10) + return render('/summary.html')
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pylons_app/lib/filters.py Mon Apr 12 10:29:18 2010 +0200 @@ -0,0 +1,11 @@ +from mercurial import util + +capitalize = lambda x: x.capitalize() +date = lambda x: util.datestr(x) +email = util.email +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 context, 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")
--- a/pylons_app/model/hg_model.py Sun Apr 11 22:57:16 2010 +0200 +++ b/pylons_app/model/hg_model.py Mon Apr 12 10:29:18 2010 +0200 @@ -12,7 +12,7 @@ from pylons import tmpl_context as c, app_globals as g, session, request, config from pylons.controllers.util import abort try: - from vcs.backends.hg import get_repositories + from vcs.backends.hg import get_repositories, MercurialRepository except ImportError: print 'You have to import vcs module' from mercurial.templatefilters import age @@ -53,3 +53,8 @@ tmp_d['repo_archives'] = mercurial_repo._get_archive_list() yield tmp_d + + def get_repo(self, repo_name): + path = g.paths[0][1] + repo = MercurialRepository(os.path.join(path, repo_name), g.baseui) + return repo
--- a/pylons_app/templates/base/base.html Sun Apr 11 22:57:16 2010 +0200 +++ b/pylons_app/templates/base/base.html Mon Apr 12 10:29:18 2010 +0200 @@ -1,4 +1,7 @@ ## -*- coding: utf-8 -*- +##filters definition +<%namespace name="f" module="pylons_app.lib.filters" inheritable="True"/> + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pylons_app/templates/summary.html Mon Apr 12 10:29:18 2010 +0200 @@ -0,0 +1,81 @@ +<%inherit file="base/base.html"/> + +<%def name="title()"> + ${_('Repository managment')} +</%def> +<%def name="breadcrumbs()"> + ${h.link_to(u'Home',h.url('/'))} + / + ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))} + / + ${_('summary')} +</%def> +<%def name="page_nav()"> + <form action="{url}log"> + {sessionvars%hiddenformentry} + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + <ul class="page-nav"> + <li class="current">summary</li> + <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li> + <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li> + <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li> + <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li> + </ul> +</%def> +<%def name="main()"> + + <h2 class="no-link no-border">${_('Mercurial Repository Overview')}</h2> + <dl class="overview"> + <dt>name</dt> + <dd>${c.repo_info.name}</dd> + <dt>description</dt> + <dd>${c.repo_info.description}</dd> + <dt>contact</dt> + <dd>${c.repo_info.contact}</dd> + <dt>last change</dt> + <dd>${c.repo_info.last_change|n,self.f.rfc822date}</dd> + </dl> + + <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2> + <table> + %for cnt,cs in enumerate(c.repo_changesets): + <tr class="parity${cnt%2}"> + <td>${cs.date}</td> + <td>${cs.author}</td> + <td>${cs.message}</td> + <td class="nowrap"> + ${h.link_to(u'changset')} + | + ${h.link_to(u'files')} + </td> + </tr> + %endfor + <tr class="light"> + <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td> + </tr> + </table> + + <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2> + <table> +{tags} + <tr class="light"> + <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td> + </tr> + </table> + + <h2 class="no-link">Branches</h2> + <table> + {branches%branchentry} + <tr class="light"> + <td colspan="4"><a class="list" href="#">...</a></td> + </tr> + </table> + +</%def> \ No newline at end of file