Files
@ da59b7e07e3c
Branch filter:
Location: kallithea/pylons_app/controllers/changelog.py - annotation
da59b7e07e3c
2.5 KiB
text/x-python
Changed import to base. Removed action logging from auth to simplehg.
Splited loggin and invalidation action to private methods inside simplehg.
Splited loggin and invalidation action to private methods inside simplehg.
f191f99f59c9 f191f99f59c9 f191f99f59c9 f7218849798a f7218849798a aec4c0071cb3 f191f99f59c9 568f95056716 f191f99f59c9 aec4c0071cb3 aec4c0071cb3 f191f99f59c9 f191f99f59c9 f191f99f59c9 568f95056716 aec4c0071cb3 aec4c0071cb3 f191f99f59c9 f191f99f59c9 aec4c0071cb3 f191f99f59c9 f191f99f59c9 aec4c0071cb3 f191f99f59c9 f191f99f59c9 f191f99f59c9 f191f99f59c9 f7218849798a f191f99f59c9 f191f99f59c9 f191f99f59c9 f191f99f59c9 f191f99f59c9 f191f99f59c9 f191f99f59c9 f191f99f59c9 f191f99f59c9 f7218849798a f7218849798a f7218849798a f7218849798a f191f99f59c9 f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f191f99f59c9 f7218849798a f7218849798a f7218849798a f7218849798a f191f99f59c9 f191f99f59c9 f191f99f59c9 f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f7218849798a f191f99f59c9 f191f99f59c9 f7218849798a | from beaker.cache import cache_region
from mercurial.graphmod import revisions as graph_rev, colored, CHANGESET
from mercurial.node import short
from pylons import request, response, session, tmpl_context as c, url, config, \
app_globals as g
from pylons.controllers.util import abort, redirect
from pylons_app.lib.auth import LoginRequired
from pylons_app.lib.base import BaseController, render, _full_changelog_cached
from pylons_app.lib.filters import age as _age, person
from pylons_app.lib.utils import get_repo_slug
from pylons_app.model.hg_model import HgModel
from simplejson import dumps
from webhelpers.paginate import Page
import logging
log = logging.getLogger(__name__)
class ChangelogController(BaseController):
@LoginRequired()
def __before__(self):
super(ChangelogController, self).__before__()
def index(self):
if request.params.get('size'):
c.size = int(request.params['size'])
session['changelog_size'] = c.size
session.save()
else:
c.size = session.get('changelog_size', 20)
changesets = _full_changelog_cached(c.repo_name)
p = int(request.params.get('page', 1))
c.pagination = Page(changesets, page=p, item_count=len(changesets),
items_per_page=c.size)
#self._graph(c.repo, c.size,p)
return render('changelog/changelog.html')
def _graph(self, repo, size, p):
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
|