Mercurial > kallithea
diff rhodecode/controllers/home.py @ 3154:0226b6d6b2b5 beta
Use common function for generation of grid data
- admin grid now has dedicated edit button, and uses changeset_cache
- some small improvements to grid
- all other datatables use this
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 09 Jan 2013 01:59:43 +0100 |
parents | 8182ebed2922 |
children | cd50d1b5f35b deb51ab04891 |
line wrap: on
line diff
--- a/rhodecode/controllers/home.py Tue Jan 08 20:42:48 2013 +0100 +++ b/rhodecode/controllers/home.py Wed Jan 09 01:59:43 2013 +0100 @@ -28,6 +28,7 @@ from pylons import tmpl_context as c, request from pylons.i18n.translation import _ from webob.exc import HTTPBadRequest +from sqlalchemy.sql.expression import func import rhodecode from rhodecode.lib import helpers as h @@ -35,7 +36,8 @@ 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 +from rhodecode.model.repo import RepoModel + log = logging.getLogger(__name__) @@ -58,59 +60,11 @@ .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)) - tip = lambda repo_name, cs_cache: (template.get_def("revision") - .render(repo_name, - cs_cache.get('revision'), - cs_cache.get('raw_id'), - cs_cache.get('author'), - cs_cache.get('message'), _=_, 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), - "tip": tip(repo.repo_name, repo.changeset_cache), - "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 - }) + 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) return render('/index.html')