@@ -22,13 +22,13 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging
from pylons import tmpl_context as c, request
from pylons import tmpl_context as c, request, url
from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
from rhodecode.lib.base import BaseRepoController, render
from rhodecode.lib.helpers import RepoPage
log = logging.getLogger(__name__)
@@ -39,15 +39,21 @@ class ShortlogController(BaseRepoControl
@LoginRequired()
@HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
'repository.admin')
def __before__(self):
super(ShortlogController, self).__before__()
def index(self):
def index(self, repo_name):
p = int(request.params.get('page', 1))
size = int(request.params.get('size', 20))
def url_generator(**kw):
return url('shortlog_home', repo_name=repo_name, size=size, **kw)
c.repo_changesets = RepoPage(c.rhodecode_repo, page=p,
items_per_page=20)
items_per_page=size,
url=url_generator)
c.shortlog_data = render('shortlog/shortlog_data.html')
if request.params.get('partial'):
return c.shortlog_data
r = render('shortlog/shortlog.html')
return r
@@ -67,32 +67,37 @@ class SummaryController(BaseRepoControll
c.dbrepo = dbrepo = Repository.by_repo_name(repo_name)
c.following = self.scm_model.is_following_repo(repo_name,
self.rhodecode_user.user_id)
return url('shortlog_home', repo_name=repo_name, **kw)
return url('shortlog_home', repo_name=repo_name, size=10, **kw)
c.repo_changesets = RepoPage(c.rhodecode_repo, page=1,
items_per_page=10, url=url_generator)
if self.rhodecode_user.username == 'default':
#for default(anonymous) user we don't need to pass credentials
username = ''
password = ''
else:
username = str(self.rhodecode_user.username)
password = '@'
uri = u'%(proto)s://%(user)s%(pass)s%(host)s%(prefix)s/%(repo_name)s' \
% {'proto': e.get('wsgi.url_scheme'),
'user': username,
'pass': password,
'host': e.get('HTTP_HOST'),
'prefix': e.get('SCRIPT_NAME'),
'repo_name': repo_name, }
if e.get('wsgi.url_scheme') == 'https':
split_s = 'https://'
split_s = 'http://'
qualified_uri = [split_s] + [url.current(qualified=True)\
.split(split_s)[-1]]
uri = u'%(proto)s%(user)s%(pass)s%(rest)s' \
% {'user': username,
'proto': qualified_uri[0],
'rest': qualified_uri[1]}
c.clone_repo_url = uri
c.repo_tags = OrderedDict()
for name, hash in c.rhodecode_repo.tags.items()[:10]:
try:
c.repo_tags[name] = c.rhodecode_repo.get_changeset(hash)
except ChangesetError:
@@ -130,14 +135,14 @@ class SummaryController(BaseRepoControll
if stats and stats.languages:
c.no_data = False is dbrepo.enable_statistics
lang_stats = json.loads(stats.languages)
c.commit_data = stats.commit_activity
c.overview_data = stats.commit_activity_combined
lang_stats = [(x, {"count":y,
"desc":LANGUAGES_EXTENSIONS_MAP.get(x)})
lang_stats = [(x, {"count": y,
"desc": LANGUAGES_EXTENSIONS_MAP.get(x)})
for x, y in lang_stats.items()]
print lang_stats
c.trending_languages = json.dumps(OrderedDict(
sorted(lang_stats, reverse=True,
key=lambda k: k[1])[:10]
Status change: