annotate pylons_app/controllers/hg.py @ 115:8c038e588a42

Removed unneeded action from controller. That was a part of old hg implementation
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 28 Apr 2010 22:09:01 +0200
parents 8b06c420491d
children 28f28d423268
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1 #!/usr/bin/python
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2 # -*- coding: utf-8 -*-
93
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
3 from mako.template import Template
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
4 from mercurial.hg import repository
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
5 from mercurial.hgweb import hgweb
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
6 from mercurial.hgweb.request import wsgiapplication
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
7 from mercurial.localrepo import localrepository
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
8 from operator import itemgetter
41
71ffa932799d Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents: 37
diff changeset
9 from pylons import tmpl_context as c, app_globals as g, session, request, config
93
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
10 from pylons.controllers.util import abort
22
3142616771cd Removed default contact name
Marcin Kuzminski
parents: 21
diff changeset
11 from pylons_app.lib import helpers as h
76
71401840ed86 refactoring update
Marcin Kuzminski <marcin@python-blog.com>
parents: 74
diff changeset
12 from pylons_app.lib.base import BaseController, render
82
670713507d03 Moved summary to seperate controller,
Marcin Kuzminski <marcin@python-blog.com>
parents: 80
diff changeset
13 from pylons_app.lib.utils import get_repo_slug
58
8fb1abd4178a Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
Marcin Kuzminski <marcin@python-blog.com>
parents: 57
diff changeset
14 from pylons_app.model.hg_model import HgModel
93
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
15 import logging
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
16 import os
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
17 from beaker.cache import cache_region
10
525ed90e4577 major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents: 8
diff changeset
18 log = logging.getLogger(__name__)
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
19
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
20 class HgController(BaseController):
21
fac1f62a1d71 Wrapped into mako templates,
Marcin Kuzminski
parents: 20
diff changeset
21
fac1f62a1d71 Wrapped into mako templates,
Marcin Kuzminski
parents: 20
diff changeset
22 def __before__(self):
41
71ffa932799d Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents: 37
diff changeset
23 c.repos_prefix = config['repos_name']
82
670713507d03 Moved summary to seperate controller,
Marcin Kuzminski <marcin@python-blog.com>
parents: 80
diff changeset
24 c.repo_name = get_repo_slug(request)
670713507d03 Moved summary to seperate controller,
Marcin Kuzminski <marcin@python-blog.com>
parents: 80
diff changeset
25
55
e00dccb6f211 Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
26 def index(self):
93
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
27
58
8fb1abd4178a Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
Marcin Kuzminski <marcin@python-blog.com>
parents: 57
diff changeset
28 hg_model = HgModel()
93
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
29 @cache_region('short_term', 'repo_list')
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
30 def _list():
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
31 return list(hg_model.get_repos())
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
32
aec4c0071cb3 added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents: 82
diff changeset
33 c.repos_list = _list()
57
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
34 c.current_sort = request.GET.get('sort', 'name')
55
e00dccb6f211 Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
35
57
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
36 cs = c.current_sort
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
37 c.cs_slug = cs.replace('-', '')
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
38 sortables = ['name', 'description', 'last_change', 'tip', 'contact']
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
39
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
40 if cs and c.cs_slug in sortables:
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
41 sort_key = c.cs_slug + '_sort'
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
42 if cs.startswith('-'):
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
43 c.repos_list.sort(key=itemgetter(sort_key), reverse=True)
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
44 else:
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
45 c.repos_list.sort(key=itemgetter(sort_key), reverse=False)
e96bc5a01490 Implemented main page sorting
Marcin Kuzminski <marcin@python-blog.com>
parents: 56
diff changeset
46
55
e00dccb6f211 Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
47 return render('/index.html')