hg.py
39 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
|
r0 | #!/usr/bin/python | ||
# -*- coding: utf-8 -*- | ||||
r135 | import logging | |||
r93 | from operator import itemgetter | |||
r135 | from pylons import tmpl_context as c, request, config | |||
|
r76 | from pylons_app.lib.base import BaseController, render | ||
|
r82 | from pylons_app.lib.utils import get_repo_slug | ||
|
r58 | from pylons_app.model.hg_model import HgModel | ||
r93 | from beaker.cache import cache_region | |||
|
r10 | log = logging.getLogger(__name__) | ||
|
r0 | |||
class HgController(BaseController): | ||||
|
r21 | |||
def __before__(self): | ||||
|
r41 | c.repos_prefix = config['repos_name'] | ||
|
r82 | c.repo_name = get_repo_slug(request) | ||
|
r55 | def index(self): | ||
r93 | ||||
|
r58 | hg_model = HgModel() | ||
r93 | @cache_region('short_term', 'repo_list') | |||
def _list(): | ||||
return list(hg_model.get_repos()) | ||||
c.repos_list = _list() | ||||
|
r57 | c.current_sort = request.GET.get('sort', 'name') | ||
|
r55 | |||
|
r57 | cs = c.current_sort | ||
c.cs_slug = cs.replace('-', '') | ||||
sortables = ['name', 'description', 'last_change', 'tip', 'contact'] | ||||
if cs and c.cs_slug in sortables: | ||||
sort_key = c.cs_slug + '_sort' | ||||
if cs.startswith('-'): | ||||
c.repos_list.sort(key=itemgetter(sort_key), reverse=True) | ||||
else: | ||||
c.repos_list.sort(key=itemgetter(sort_key), reverse=False) | ||||
|
r55 | return render('/index.html') | ||