##// END OF EJS Templates
mysql indexed keys cannot be larger thatn 256 chars, but 250 is enough for this purpose
mysql indexed keys cannot be larger thatn 256 chars, but 250 is enough for this purpose

File last commit:

r3098:a5f0bc86 merge rhodecode-0.0.1.5.0 default
r3361:14556b46 beta
Show More
shortlog.py
107 lines | 4.1 KiB | text/x-python | PythonLexer
updated docs on every controller
r861 # -*- coding: utf-8 -*-
"""
rhodecode.controllers.shortlog
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Shortlog controller for rhodecode
source code cleanup: remove trailing white space, normalize file endings
r1203
updated docs on every controller
r861 :created_on: Apr 18, 2010
:author: marcink
2012 copyrights
r1824 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com>
updated docs on every controller
r861 :license: GPLv3, see COPYING for more details.
"""
fixed license issue #149
r1206 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
renamed project to rhodecode
r547 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
renamed project to rhodecode
r547 # You should have received a copy of the GNU General Public License
fixed license issue #149
r1206 # along with this program. If not, see <http://www.gnu.org/licenses/>.
updated docs on every controller
r861
import logging
fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
r1249 from pylons import tmpl_context as c, request, url
Implemented file history page for showing detailed changelog for a given file...
r3039 from pylons.i18n.translation import _
updated docs on every controller
r861
Implemented file history page for showing detailed changelog for a given file...
r3039 from rhodecode.lib import helpers as h
renamed project to rhodecode
r547 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
another major codes rewrite:...
r1045 from rhodecode.lib.base import BaseRepoController, render
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
r1098 from rhodecode.lib.helpers import RepoPage
added quickstart page for new repos
r1736 from pylons.controllers.util import redirect
failsafe the GET `page` argument
r2845 from rhodecode.lib.utils2 import safe_int
Implemented file history page for showing detailed changelog for a given file...
r3039 from rhodecode.lib.vcs.exceptions import NodeDoesNotExistError, ChangesetError,\
RepositoryError
updated docs on every controller
r861
renamed project to rhodecode
r547 log = logging.getLogger(__name__)
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
r1098
another major codes rewrite:...
r1045 class ShortlogController(BaseRepoController):
updated docs on every controller
r861
renamed project to rhodecode
r547 @LoginRequired()
@HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
updated docs on every controller
r861 'repository.admin')
renamed project to rhodecode
r547 def __before__(self):
super(ShortlogController, self).__before__()
updated docs on every controller
r861
Implemented file history page for showing detailed changelog for a given file...
r3039 def __get_cs_or_redirect(self, rev, repo_name, redirect_after=True):
"""
Safe way to get changeset if error occur it redirects to tip with
proper message
:param rev: revision to fetch
:param repo_name: repo name to redirect after
"""
try:
return c.rhodecode_repo.get_changeset(rev)
except RepositoryError, e:
h.flash(str(e), category='warning')
redirect(h.url('shortlog_home', repo_name=repo_name))
def index(self, repo_name, revision=None, f_path=None):
failsafe the GET `page` argument
r2845 p = safe_int(request.params.get('page', 1), 1)
size = safe_int(request.params.get('size', 20), 20)
fixed pager link for file history page
r3041 collection = c.rhodecode_repo
c.file_history = f_path
fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
r1249
def url_generator(**kw):
fixed pager link for file history page
r3041 if f_path:
return url('shortlog_file_home', repo_name=repo_name,
revision=revision, f_path=f_path, size=size, **kw)
fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
r1249 return url('shortlog_home', repo_name=repo_name, size=size, **kw)
fix shortlog status generation, just fetch for page, not whole set !
r3042
Implemented file history page for showing detailed changelog for a given file...
r3039 if f_path:
fix shortlog status generation, just fetch for page, not whole set !
r3042 log.debug('generating shortlog for path %s' % f_path)
Implemented file history page for showing detailed changelog for a given file...
r3039 # get the history for the file !
tip_cs = c.rhodecode_repo.get_changeset()
try:
collection = tip_cs.get_file_history(f_path)
except (NodeDoesNotExistError, ChangesetError):
#this node is not present at tip !
try:
cs = self.__get_cs_or_redirect(revision, repo_name)
collection = cs.get_file_history(f_path)
except RepositoryError, e:
h.flash(str(e), category='warning')
redirect(h.url('shortlog_home', repo_name=repo_name))
collection = list(reversed(collection))
c.repo_changesets = RepoPage(collection, page=p,
fix shortlog status generation, just fetch for page, not whole set !
r3042 items_per_page=size, url=url_generator)
page_revisions = [x.raw_id for x in list(c.repo_changesets)]
#574 Show pull request status also in shortlog (if any)
r2884 c.statuses = c.rhodecode_db_repo.statuses(page_revisions)
added quickstart page for new repos
r1736
if not c.repo_changesets:
Implemented file history page for showing detailed changelog for a given file...
r3039 h.flash(_('There are no changesets yet'), category='warning')
added quickstart page for new repos
r1736 return redirect(url('summary_home', repo_name=repo_name))
renamed project to rhodecode
r547 c.shortlog_data = render('shortlog/shortlog_data.html')
Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
r1421 if request.environ.get('HTTP_X_PARTIAL_XHR'):
renamed project to rhodecode
r547 return c.shortlog_data
r = render('shortlog/shortlog.html')
return r