]> git.ipfire.org Git - ipfire.org.git/blob - www/webapp/handlers.py
Add netboot feature.
[ipfire.org.git] / www / webapp / handlers.py
1 #!/usr/bin/python
2
3 #import httplib
4 #import logging
5 #import markdown2
6 import os
7 #import random
8 #import re
9 #import socket
10 #import time
11 #import tornado.database
12 #import tornado.locale
13 import tornado.web
14 #import unicodedata
15
16 import backend
17
18 from handlers_admin import *
19 from handlers_base import *
20 from handlers_download import *
21 from handlers_mirrors import *
22 from handlers_news import *
23 from handlers_planet import *
24 from handlers_stasy import *
25 from handlers_tracker import *
26
27
28 class RootHandler(BaseHandler):
29 """
30 This handler redirects any request directly to /.
31
32 It can be used to be compatible with some ancient index urls.
33 """
34 def get(self, *args):
35 self.redirect("/")
36
37
38 class LangCompatHandler(BaseHandler):
39 """
40 Redirect links in the old format to current site:
41
42 E.g. /en/index -> /index
43 """
44 def get(self, lang, page):
45 self.redirect("/%s" % page)
46
47
48 class IndexHandler(BaseHandler):
49 """
50 This handler displays the welcome page.
51 """
52 def get(self):
53 # Get a list of the most recent news items and put them on the page.
54 latest_news = self.news.get_latest(limit=1, locale=self.locale)
55 recent_news = self.news.get_latest(limit=2, locale=self.locale, offset=1)
56
57 return self.render("index.html",
58 latest_news=latest_news, recent_news=recent_news)
59
60
61 class StaticHandler(BaseHandler):
62 """
63 This handler shows the files that are in plain html format.
64 """
65 @property
66 def static_path(self):
67 return os.path.join(self.application.settings["template_path"], "static")
68
69 @property
70 def static_files(self):
71 ret = []
72 for filename in os.listdir(self.static_path):
73 if filename.endswith(".html"):
74 ret.append(filename)
75 return ret
76
77 def get(self, name=None):
78 name = "%s.html" % name
79
80 if not name in self.static_files:
81 raise tornado.web.HTTPError(404)
82
83 self.render("static/%s" % name, lang=self.locale.code[:2])
84
85