43edcaeb30ed2301db9860685bc18124aee277e9
[debianmemberportfolio.git] / debianmemberportfolio / lib / base.py
1 # -*- python -*-
2 # -*- coding: utf-8 -*-
3 #
4 # DDPortfolio service base controller
5 # Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
6 #
7 # This file is part of DDPortfolio service.
8 #
9 # DDPortfolio service is free software: you can redistribute it and/or
10 # modify it under the terms of the GNU Affero General Public License
11 # as published by the Free Software Foundation, either version 3 of
12 # the License, or (at your option) any later version.
13 #
14 # DDPortfolio service is distributed in the hope that it will be
15 # useful, but WITHOUT ANY WARRANTY; without even the implied warranty
16 # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 # Affero General Public License for more details.
18 #
19 # You should have received a copy of the GNU Affero General Public
20 # License along with this program.  If not, see
21 # <http://www.gnu.org/licenses/>.
22 #
23 """The base Controller API
24
25 Provides the BaseController class for subclassing.
26 """
27 from pylons import tmpl_context as c, request
28 from pylons.controllers import WSGIController
29 from pylons.i18n import add_fallback
30 from pylons.templating import render_mako as render
31
32
33 class BaseController(WSGIController):
34
35     def __call__(self, environ, start_response):
36         """Invoke the Controller"""
37         # WSGIController.__call__ dispatches to the Controller method
38         # the request is routed to. This routing information is
39         # available in environ['pylons.routes_dict']
40         # set language environment
41         for lang in request.languages:
42             try:
43                 add_fallback(lang.replace('-', '_'))
44             except:
45                 pass
46         c.messages = {'errors': [], 'messages': []}
47         return WSGIController.__call__(self, environ, start_response)