Mercurial > public > src > rhodecode
comparison pylons_app/controllers/graph.py @ 137:cf32c4cc26e8
fixed graph when repository is empty moved imports to top and removed some lfet over prints
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 09 May 2010 14:46:54 +0200 |
parents | a86c8de926b4 |
children | b68b2246e5a6 |
comparison
equal
deleted
inserted
replaced
136:36102488d634 | 137:cf32c4cc26e8 |
---|---|
1 import logging | |
1 from pylons import request, response, session, tmpl_context as c, url, config, \ | 2 from pylons import request, response, session, tmpl_context as c, url, config, \ |
2 app_globals as g | 3 app_globals as g |
3 from pylons.controllers.util import abort, redirect | 4 from pylons.controllers.util import abort, redirect |
4 from pylons_app.lib.base import BaseController, render | 5 from pylons_app.lib.base import BaseController, render |
5 from pylons_app.lib.utils import get_repo_slug | 6 from pylons_app.lib.utils import get_repo_slug |
6 from pylons_app.model.hg_model import HgModel | 7 from pylons_app.model.hg_model import HgModel |
7 import logging | |
8 | 8 |
9 from mercurial.graphmod import revisions as graph_rev, colored, CHANGESET | |
10 from pylons_app.lib.filters import age as _age, person | |
11 from simplejson import dumps | |
12 from mercurial.node import short | |
13 from webhelpers.paginate import Page | |
14 | |
15 | |
9 | 16 |
10 log = logging.getLogger(__name__) | 17 log = logging.getLogger(__name__) |
11 | 18 |
12 class GraphController(BaseController): | 19 class GraphController(BaseController): |
13 def __before__(self): | 20 def __before__(self): |
25 | 32 |
26 return render('/graph.html') | 33 return render('/graph.html') |
27 | 34 |
28 | 35 |
29 def graph(self, repo, size): | 36 def graph(self, repo, size): |
30 from mercurial.graphmod import revisions as graph_rev, colored, CHANGESET | |
31 from pylons_app.lib.filters import age as _age, person | |
32 from simplejson import dumps | |
33 from mercurial.node import short | |
34 from webhelpers.paginate import Page | |
35 revcount = size | 37 revcount = size |
36 p = int(request.params.get('page', 1)) | 38 p = int(request.params.get('page', 1)) |
37 c.pagination = Page(repo.revisions, page=p, item_count=len(repo.revisions), items_per_page=revcount) | 39 c.pagination = Page(repo.revisions, page=p, item_count=len(repo.revisions), items_per_page=revcount) |
40 if not repo.revisions:return dumps([]), 0 | |
41 | |
38 max_rev = repo.revisions[-1] | 42 max_rev = repo.revisions[-1] |
39 offset = 1 if p == 1 else ((p - 1) * revcount) | 43 offset = 1 if p == 1 else ((p - 1) * revcount) |
40 rev_start = repo.revisions[(-1 * offset)] | 44 rev_start = repo.revisions[(-1 * offset)] |
41 bg_height = 39 | 45 bg_height = 39 |
42 | 46 |
43 revcount = min(max_rev, revcount) | 47 revcount = min(max_rev, revcount) |
44 rev_end = max(0, rev_start - revcount) | 48 rev_end = max(0, rev_start - revcount) |
45 print rev_start, rev_end | |
46 print 'x' * 100 | |
47 dag = graph_rev(repo.repo, rev_start, rev_end) | 49 dag = graph_rev(repo.repo, rev_start, rev_end) |
48 tree = list(colored(dag)) | 50 tree = list(colored(dag)) |
49 canvasheight = (len(tree) + 1) * bg_height - 27 | 51 canvasheight = (len(tree) + 1) * bg_height - 27 |
50 data = [] | 52 data = [] |
51 for (id, type, ctx, vtx, edges) in tree: | 53 for (id, type, ctx, vtx, edges) in tree: |