]>
git.ipfire.org Git - ipfire.org.git/blob - www/webapp/handlers_base.py
10 class BaseHandler(tornado
.web
.RequestHandler
):
13 def get_account(self
, uid
):
14 # Find the name of the author
15 return self
.accounts
.find(uid
)
17 def get_user_locale(self
):
18 DEFAULT_LOCALE
= tornado
.locale
.get("en_US")
20 [tornado
.locale
.get(l
) for l
in tornado
.locale
.get_supported_locales(None)]
22 # One can append "?locale=de" to mostly and URI on the site and
23 # another output that guessed.
24 locale
= self
.get_argument("locale", None)
26 for l
in ALLOWED_LOCALES
:
27 if not l
.code
.startswith(locale
):
32 # If no locale was provided we guess what the browser sends us
33 locale
= self
.get_browser_locale()
34 if locale
in ALLOWED_LOCALES
:
37 # If no one of the cases above worked we use our default locale
41 def render_args(self
):
43 "hostname" : self
.request
.host
,
44 "lang" : self
.locale
.code
[:2],
45 "rss_url" : self
.rss_url
,
46 "year" : time
.strftime("%Y"),
49 def render(self
, *args
, **_kwargs
):
50 kwargs
= self
.render_args
51 kwargs
.update(_kwargs
)
52 tornado
.web
.RequestHandler
.render(self
, *args
, **kwargs
)
54 def render_string(self
, *args
, **_kwargs
):
55 kwargs
= self
.render_args
56 kwargs
.update(_kwargs
)
57 return tornado
.web
.RequestHandler
.render_string(self
, *args
, **kwargs
)
59 def get_error_html(self
, status_code
, **kwargs
):
60 if status_code
in (404, 500):
63 "exception" : kwargs
.get("exception", None),
64 "message" : httplib
.responses
[status_code
],
66 return self
.render_string("error-%s.html" % status_code
, **render_args
)
68 return tornado
.web
.RequestHandler
.get_error_html(self
, status_code
, **kwargs
)
72 return backend
.Accounts()
76 return backend
.Banners()
80 return backend
.Memcached()
84 return backend
.Mirrors()
92 return backend
.Config()
96 return backend
.Releases()
100 return backend
.Banners()
104 return backend
.GeoIP()
108 return backend
.Tracker()
112 return backend
.Planet()