Mercurial > kallithea
comparison pylons_app/lib/base.py @ 185:3380ca40cdba
added version generation to pylons_app and showed it into template. Propagated baseController with some data for acces into each controller. Fixed simplehg middleware to get proper name of application
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 22 May 2010 00:51:49 +0200 |
parents | 8e01265fb586 |
children | 568f95056716 |
comparison
equal
deleted
inserted
replaced
184:2fc206a32ef0 | 185:3380ca40cdba |
---|---|
1 """The base Controller API | 1 """The base Controller API |
2 | 2 |
3 Provides the BaseController class for subclassing. | 3 Provides the BaseController class for subclassing. |
4 """ | 4 """ |
5 from beaker.cache import cache_region | |
6 from pylons import config, tmpl_context as c, request, session | |
5 from pylons.controllers import WSGIController | 7 from pylons.controllers import WSGIController |
6 from pylons.templating import render_mako as render | 8 from pylons.templating import render_mako as render |
9 from pylons_app.lib.auth import LoginRequired, AuthUser | |
10 from pylons_app.lib.utils import get_repo_slug | |
7 from pylons_app.model import meta | 11 from pylons_app.model import meta |
8 from beaker.cache import cache_region | |
9 from pylons import tmpl_context as c | |
10 from pylons_app.model.hg_model import HgModel | 12 from pylons_app.model.hg_model import HgModel |
13 from pylons_app import get_version | |
11 | 14 |
12 @cache_region('long_term', 'cached_repo_list') | 15 @cache_region('long_term', 'cached_repo_list') |
13 def _get_repos_cached(): | 16 def _get_repos_cached(): |
14 return [rep for rep in HgModel().get_repos()] | 17 return [rep for rep in HgModel().get_repos()] |
15 | 18 |
16 class BaseController(WSGIController): | 19 class BaseController(WSGIController): |
17 | 20 |
21 def __before__(self): | |
22 c.hg_app_version = get_version() | |
23 c.repos_prefix = config['hg_app_name'] | |
24 c.repo_name = get_repo_slug(request) | |
25 c.hg_app_user = session.get('hg_app_user', AuthUser()) | |
26 c.cached_repo_list = _get_repos_cached() | |
27 self.sa = meta.Session | |
28 | |
18 def __call__(self, environ, start_response): | 29 def __call__(self, environ, start_response): |
19 """Invoke the Controller""" | 30 """Invoke the Controller""" |
20 # WSGIController.__call__ dispatches to the Controller method | 31 # WSGIController.__call__ dispatches to the Controller method |
21 # the request is routed to. This routing information is | 32 # the request is routed to. This routing information is |
22 # available in environ['pylons.routes_dict'] | 33 # available in environ['pylons.routes_dict'] |
23 c.cached_repo_list = _get_repos_cached() | |
24 self.sa = meta.Session | |
25 try: | 34 try: |
26 return WSGIController.__call__(self, environ, start_response) | 35 return WSGIController.__call__(self, environ, start_response) |
27 finally: | 36 finally: |
28 meta.Session.remove() | 37 meta.Session.remove() |