Mercurial > kallithea
diff rhodecode/controllers/home.py @ 3098:a5f0bc867edc rhodecode-0.0.1.5.0
merge with beta
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 13 Dec 2012 22:54:21 +0100 |
parents | 63e58ef80ef1 b13ca18ac527 |
children | cd50d1b5f35b |
line wrap: on
line diff
--- a/rhodecode/controllers/home.py Tue Oct 09 00:57:07 2012 +0200 +++ b/rhodecode/controllers/home.py Thu Dec 13 22:54:21 2012 +0100 @@ -26,11 +26,16 @@ import logging from pylons import tmpl_context as c, request +from pylons.i18n.translation import _ from webob.exc import HTTPBadRequest +import rhodecode +from rhodecode.lib import helpers as h +from rhodecode.lib.ext_json import json from rhodecode.lib.auth import LoginRequired from rhodecode.lib.base import BaseController, render from rhodecode.model.db import Repository +from sqlalchemy.sql.expression import func log = logging.getLogger(__name__) @@ -42,9 +47,63 @@ super(HomeController, self).__before__() def index(self): - c.repos_list = self.scm_model.get_repos() c.groups = self.scm_model.get_repos_groups() c.group = None + + if c.visual.lightweight_dashboard is False: + c.repos_list = self.scm_model.get_repos() + ## lightweight version of dashboard + else: + c.repos_list = Repository.query()\ + .filter(Repository.group_id == None)\ + .order_by(func.lower(Repository.repo_name))\ + .all() + repos_data = [] + total_records = len(c.repos_list) + + _tmpl_lookup = rhodecode.CONFIG['pylons.app_globals'].mako_lookup + template = _tmpl_lookup.get_template('data_table/_dt_elements.html') + + quick_menu = lambda repo_name: (template.get_def("quick_menu") + .render(repo_name, _=_, h=h, c=c)) + repo_lnk = lambda name, rtype, private, fork_of: ( + template.get_def("repo_name") + .render(name, rtype, private, fork_of, short_name=False, + admin=False, _=_, h=h, c=c)) + last_change = lambda last_change: (template.get_def("last_change") + .render(last_change, _=_, h=h, c=c)) + rss_lnk = lambda repo_name: (template.get_def("rss") + .render(repo_name, _=_, h=h, c=c)) + atom_lnk = lambda repo_name: (template.get_def("atom") + .render(repo_name, _=_, h=h, c=c)) + + def desc(desc): + if c.visual.stylify_metatags: + return h.urlify_text(h.desc_stylize(h.truncate(desc, 60))) + else: + return h.urlify_text(h.truncate(desc, 60)) + + for repo in c.repos_list: + repos_data.append({ + "menu": quick_menu(repo.repo_name), + "raw_name": repo.repo_name.lower(), + "name": repo_lnk(repo.repo_name, repo.repo_type, + repo.private, repo.fork), + "last_change": last_change(repo.last_db_change), + "desc": desc(repo.description), + "owner": h.person(repo.user.username), + "rss": rss_lnk(repo.repo_name), + "atom": atom_lnk(repo.repo_name), + }) + + c.data = json.dumps({ + "totalRecords": total_records, + "startIndex": 0, + "sort": "name", + "dir": "asc", + "records": repos_data + }) + return render('/index.html') def repo_switcher(self): @@ -55,7 +114,7 @@ simple=True) return render('/repo_switcher_list.html') else: - return HTTPBadRequest() + raise HTTPBadRequest() def branch_tag_switcher(self, repo_name): if request.is_xhr: @@ -63,4 +122,4 @@ c.rhodecode_repo = c.rhodecode_db_repo.scm_instance return render('/switch_to_list.html') else: - return HTTPBadRequest() + raise HTTPBadRequest()