##// END OF EJS Templates
bugfix
marcink -
r213:7a97f0b1 default
parent child Browse files
Show More
@@ -1,75 +1,75 b''
1 from mercurial.graphmod import revisions as graph_rev, colored, CHANGESET
1 from mercurial.graphmod import revisions as graph_rev, colored, CHANGESET
2 from mercurial.node import short
2 from mercurial.node import short
3 from pylons import request, response, session, tmpl_context as c, url, config, \
3 from pylons import request, response, session, tmpl_context as c, url, config, \
4 app_globals as g
4 app_globals as g
5 from pylons.controllers.util import abort, redirect
5 from pylons.controllers.util import abort, redirect
6 from pylons_app.lib.auth import LoginRequired
6 from pylons_app.lib.auth import LoginRequired
7 from pylons_app.lib.base import BaseController, render, _full_changelog_cached
7 from pylons_app.lib.base import BaseController, render, _full_changelog_cached
8 from pylons_app.lib.filters import age as _age, person
8 from pylons_app.lib.filters import age as _age, person
9 from simplejson import dumps
9 from simplejson import dumps
10 from webhelpers.paginate import Page
10 from webhelpers.paginate import Page
11 import logging
11 import logging
12 log = logging.getLogger(__name__)
12 log = logging.getLogger(__name__)
13
13
14 class ChangelogController(BaseController):
14 class ChangelogController(BaseController):
15
15
16 @LoginRequired()
16 @LoginRequired()
17 def __before__(self):
17 def __before__(self):
18 super(ChangelogController, self).__before__()
18 super(ChangelogController, self).__before__()
19
19
20 def index(self):
20 def index(self):
21 limit = 100
22 default = 20
21 if request.params.get('size'):
23 if request.params.get('size'):
22 limit = 100
23 default = 20
24 try:
24 try:
25 int_size = int(request.params.get('size'))
25 int_size = int(request.params.get('size'))
26 except ValueError:
26 except ValueError:
27 int_size = default
27 int_size = default
28 int_size = int_size if int_size <= limit else limit
28 int_size = int_size if int_size <= limit else limit
29 c.size = int_size
29 c.size = int_size
30 session['changelog_size'] = c.size
30 session['changelog_size'] = c.size
31 session.save()
31 session.save()
32 else:
32 else:
33 c.size = session.get('changelog_size', default)
33 c.size = session.get('changelog_size', default)
34
34
35 changesets = _full_changelog_cached(c.repo_name)
35 changesets = _full_changelog_cached(c.repo_name)
36
36
37 p = int(request.params.get('page', 1))
37 p = int(request.params.get('page', 1))
38 c.pagination = Page(changesets, page=p, item_count=len(changesets),
38 c.pagination = Page(changesets, page=p, item_count=len(changesets),
39 items_per_page=c.size)
39 items_per_page=c.size)
40
40
41 #self._graph(c.repo, c.size,p)
41 #self._graph(c.repo, c.size,p)
42
42
43 return render('changelog/changelog.html')
43 return render('changelog/changelog.html')
44
44
45
45
46 def _graph(self, repo, size, p):
46 def _graph(self, repo, size, p):
47 revcount = size
47 revcount = size
48 if not repo.revisions:return dumps([]), 0
48 if not repo.revisions:return dumps([]), 0
49
49
50 max_rev = repo.revisions[-1]
50 max_rev = repo.revisions[-1]
51 offset = 1 if p == 1 else ((p - 1) * revcount)
51 offset = 1 if p == 1 else ((p - 1) * revcount)
52 rev_start = repo.revisions[(-1 * offset)]
52 rev_start = repo.revisions[(-1 * offset)]
53 c.bg_height = 120
53 c.bg_height = 120
54
54
55 revcount = min(max_rev, revcount)
55 revcount = min(max_rev, revcount)
56 rev_end = max(0, rev_start - revcount)
56 rev_end = max(0, rev_start - revcount)
57 dag = graph_rev(repo.repo, rev_start, rev_end)
57 dag = graph_rev(repo.repo, rev_start, rev_end)
58
58
59 c.dag = tree = list(colored(dag))
59 c.dag = tree = list(colored(dag))
60 canvasheight = (len(tree) + 1) * c.bg_height - 27
60 canvasheight = (len(tree) + 1) * c.bg_height - 27
61 data = []
61 data = []
62 for (id, type, ctx, vtx, edges) in tree:
62 for (id, type, ctx, vtx, edges) in tree:
63 if type != CHANGESET:
63 if type != CHANGESET:
64 continue
64 continue
65 node = short(ctx.node())
65 node = short(ctx.node())
66 age = _age(ctx.date())
66 age = _age(ctx.date())
67 desc = ctx.description()
67 desc = ctx.description()
68 user = person(ctx.user())
68 user = person(ctx.user())
69 branch = ctx.branch()
69 branch = ctx.branch()
70 branch = branch, repo.repo.branchtags().get(branch) == ctx.node()
70 branch = branch, repo.repo.branchtags().get(branch) == ctx.node()
71 data.append((node, vtx, edges, desc, user, age, branch, ctx.tags()))
71 data.append((node, vtx, edges, desc, user, age, branch, ctx.tags()))
72
72
73 c.jsdata = dumps(data)
73 c.jsdata = dumps(data)
74 c.canvasheight = canvasheight
74 c.canvasheight = canvasheight
75
75
General Comments 0
You need to be logged in to leave comments. Login now