##// END OF EJS Templates
old style: navigation divs on file view are better inline
old style: navigation divs on file view are better inline

File last commit:

r4116:ffd45b18 rhodecode-2.2.5-gpl
r4156:555a351a rhodecode-2.2.5-gpl
Show More
home.py
146 lines | 5.1 KiB | text/x-python | PythonLexer
updated docs on every controller
r861 # -*- coding: utf-8 -*-
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 #
Fixes for raw_id, needed for git...
r636 # 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 #
Fixes for raw_id, needed for git...
r636 # 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/>.
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 """
rhodecode.controllers.home
~~~~~~~~~~~~~~~~~~~~~~~~~~
Home controller for Rhodecode
:created_on: Feb 18, 2010
:author: marcink
:copyright: (c) 2013 RhodeCode GmbH.
:license: GPLv3, see LICENSE for more details.
"""
updated docs on every controller
r861
import logging
Fixes for raw_id, needed for git...
r636 from pylons import tmpl_context as c, request
Added lightweight dashboard option. ref #500
r2936 from pylons.i18n.translation import _
Use webob exception as often as possible
r2242 from webob.exc import HTTPBadRequest
Use common function for generation of grid data...
r3154 from sqlalchemy.sql.expression import func
updated docs on every controller
r861
Added lightweight dashboard option. ref #500
r2936 import rhodecode
from rhodecode.lib import helpers as h
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 from rhodecode.lib.utils import jsonify, conditional_cache
always use json from compat module
r3705 from rhodecode.lib.compat import json
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
Fixes for raw_id, needed for git...
r636 from rhodecode.lib.base import BaseController, render
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 from rhodecode.model.db import Repository, RepoGroup
Use common function for generation of grid data...
r3154 from rhodecode.model.repo import RepoModel
implemented repo switcher list as dynamically loaded by xhr requestt....
r1158
Fixes for raw_id, needed for git...
r636 log = logging.getLogger(__name__)
pep8ify
r1212
Fixes for raw_id, needed for git...
r636 class HomeController(BaseController):
def __before__(self):
super(HomeController, self).__before__()
auth decorators are not used anymore on __before__...
r3749 @LoginRequired()
Fixes for raw_id, needed for git...
r636 def index(self):
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 c.groups = self.scm_model.get_repo_groups()
#401 repository group is automatically pre-selected when adding repos inside a repository group
r2130 c.group = None
Added lightweight dashboard option. ref #500
r2936
Mads Kiilerich
index: always use lightweight - there shouldn't be any reason not to
r3752 c.repos_list = Repository.query()\
.filter(Repository.group_id == None)\
.order_by(func.lower(Repository.repo_name))\
.all()
Added lightweight dashboard option. ref #500
r2936
Mads Kiilerich
index: always use lightweight - there shouldn't be any reason not to
r3752 repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
admin=False)
#json used to render the grid
c.data = json.dumps(repos_data)
Added lightweight dashboard option. ref #500
r2936
Fixes for raw_id, needed for git...
r636 return render('/index.html')
implemented repo switcher list as dynamically loaded by xhr requestt....
r1158
auth decorators are not used anymore on __before__...
r3749 @LoginRequired()
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 @jsonify
def repo_switcher_data(self):
#wrapper for conditional cache
def _c():
log.debug('generating switcher repo/groups list')
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 all_repos = Repository.query().order_by(Repository.repo_name).all()
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 repo_iter = self.scm_model.get_repos(all_repos, simple=True)
all_groups = RepoGroup.query().order_by(RepoGroup.group_name).all()
repo_groups_iter = self.scm_model.get_repo_groups(all_groups)
res = [{
'text': _('Groups'),
'children': [
{'id': obj.group_name, 'text': obj.group_name,
'type': 'group', 'obj': {}} for obj in repo_groups_iter]
}, {
'text': _('Repositories'),
'children': [
{'id': obj['name'], 'text': obj['name'],
'type': 'repo', 'obj': obj['dbrepo']} for obj in repo_iter]
}]
data = {
'more': False,
'results': res
}
return data
if request.is_xhr:
condition = False
compute = conditional_cache('short_term', 'cache_desc',
condition=condition, func=_c)
return compute()
implemented repo switcher list as dynamically loaded by xhr requestt....
r1158 else:
fixed badRequest on views decorated by @jsonify
r2970 raise HTTPBadRequest()
lazy load of branches and tags menu...
r1608
auth decorators are not used anymore on __before__...
r3749 @LoginRequired()
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
'repository.admin')
lazy load of branches and tags menu...
r1608 def branch_tag_switcher(self, repo_name):
if request.is_xhr:
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 c.rhodecode_db_repo = Repository.get_by_repo_name(repo_name)
Mads Kiilerich
home: don't crash in branch_tag_switcher when an invalid repo name is given
r3437 if c.rhodecode_db_repo:
c.rhodecode_repo = c.rhodecode_db_repo.scm_instance
return render('/switch_to_list.html')
raise HTTPBadRequest()
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116
@LoginRequired()
@HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
'repository.admin')
@jsonify
def repo_refs_data(self, repo_name):
repo = Repository.get_by_repo_name(repo_name).scm_instance
res = []
_branches = repo.branches.items()
if _branches:
res.append({
'text': _('Branch'),
'children': [{'id': rev, 'text': name, 'type': 'branch'} for name, rev in _branches]
})
_tags = repo.tags.items()
if _tags:
res.append({
'text': _('Tag'),
'children': [{'id': rev, 'text': name, 'type': 'tag'} for name, rev in _tags]
})
_bookmarks = repo.bookmarks.items()
if _bookmarks:
res.append({
'text': _('Bookmark'),
'children': [{'id': rev, 'text': name, 'type': 'book'} for name, rev in _bookmarks]
})
data = {
'more': False,
'results': res
}
return data