Mercurial > kallithea
diff pylons_app/controllers/changelog.py @ 288:ab1afe7444f3
Initial graph release.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 23 Jun 2010 00:18:10 +0200 |
parents | 237470e64bb8 |
children | a61b19036de0 |
line wrap: on
line diff
--- a/pylons_app/controllers/changelog.py Tue Jun 22 22:32:19 2010 +0200 +++ b/pylons_app/controllers/changelog.py Wed Jun 23 00:18:10 2010 +0200 @@ -2,6 +2,17 @@ # encoding: utf-8 # changelog controller for pylons # Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com> +from json import dumps +from mercurial.graphmod import colored, CHANGESET +from mercurial.node import short +from mercurial.templatefilters import person +from pylons import request, session, tmpl_context as c +from pylons_app.lib.auth import LoginRequired +from pylons_app.lib.base import BaseController, render +from pylons_app.model.hg_model import HgModel +from webhelpers.paginate import Page +import logging +from mercurial.graphmod import revisions as graph_rev # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -22,12 +33,6 @@ changelog controller for pylons @author: marcink """ -from pylons import request, session, tmpl_context as c -from pylons_app.lib.auth import LoginRequired -from pylons_app.lib.base import BaseController, render -from pylons_app.model.hg_model import HgModel -from webhelpers.paginate import Page -import logging log = logging.getLogger(__name__) class ChangelogController(BaseController): @@ -58,39 +63,35 @@ c.pagination = Page(changesets, page=p, item_count=c.total_cs, items_per_page=c.size) - #self._graph(c.repo, c.size,p) + self._graph(changesets, c.size, p) return render('changelog/changelog.html') def _graph(self, repo, size, p): - pass -# revcount = size -# if not repo.revisions:return dumps([]), 0 -# -# max_rev = repo.revisions[-1] -# offset = 1 if p == 1 else ((p - 1) * revcount) -# rev_start = repo.revisions[(-1 * offset)] -# c.bg_height = 120 -# -# revcount = min(max_rev, revcount) -# rev_end = max(0, rev_start - revcount) -# dag = graph_rev(repo.repo, rev_start, rev_end) -# -# c.dag = tree = list(colored(dag)) -# canvasheight = (len(tree) + 1) * c.bg_height - 27 -# data = [] -# for (id, type, ctx, vtx, edges) in tree: -# if type != CHANGESET: -# continue -# node = short(ctx.node()) -# age = _age(ctx.date()) -# desc = ctx.description() -# user = 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())) -# -# c.jsdata = dumps(data) -# c.canvasheight = canvasheight + revcount = size + if not repo.revisions:return dumps([]), 0 + + max_rev = repo.revisions[-1] + offset = 1 if p == 1 else ((p - 1) * revcount) + rev_start = repo.revisions[(-1 * offset)] + + revcount = min(max_rev, revcount) + rev_end = max(0, rev_start - revcount) + dag = graph_rev(repo.repo, rev_start, rev_end) + + c.dag = tree = list(colored(dag)) + data = [] + for (id, type, ctx, vtx, edges) in tree: + if type != CHANGESET: + continue + node = short(ctx.node()) + age = ctx.date() + desc = ctx.description() + user = 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())) + + c.jsdata = dumps(data)