]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blobdiff - webapp/handlers.py
netboot: Allow booting multiple architectures
[people/shoehn/ipfire.org.git] / webapp / handlers.py
index 33804ac3ee708a9bb209c23e06e3baf3bcb7d330..8a2ca66f028fbb77697d04f369617ae0603a3509 100644 (file)
@@ -3,6 +3,7 @@
 #import httplib
 #import logging
 #import markdown2
+import operator
 import os
 #import random
 #import re
@@ -15,17 +16,19 @@ import tornado.web
 
 import backend
 
+from handlers_accounts import *
 from handlers_admin import *
 from handlers_base import *
 from handlers_boot import *
 from handlers_download import *
+from handlers_fireinfo import *
 from handlers_iuse import *
 from handlers_mirrors import *
 from handlers_news import *
 from handlers_nopaste import *
 from handlers_planet import *
 from handlers_rss import *
-from handlers_stasy import *
+from handlers_talk import *
 from handlers_tracker import *
 from handlers_wishlist import *
 
@@ -56,21 +59,30 @@ class IndexHandler(BaseHandler):
                This handler displays the welcome page.
        """
        def get(self):
-               # Get a list of the most recent news items and put them on the page.            
-               latest_news = self.news.get_latest(limit=3, locale=self.locale)
-
-               # Get a list of the most recent planet posts.
-               planet_posts = self.planet.get_entries(limit=3)
-
                # Get the latest release.
                latest_release = self.releases.get_latest()
 
+               # Get a list of the most recent news items and put them on the page.            
+               latest_news = self.get_latest_news()
+
                # Interesting items from the wishlist.
-               wishlist_items = self.wishlist.get_hot_wishes()
+               hottest_wish = self.wishlist.get_hottest_wish()
 
                return self.render("index.html", latest_news=latest_news,
-                       planet_posts=planet_posts, latest_release=latest_release,
-                       wishlist_items=wishlist_items)
+                       latest_release=latest_release, hottest_wish=hottest_wish)
+
+       def get_latest_news(self, count=5):
+               latest_news = []
+
+               for news in self.news.get_latest(limit=count):
+                       latest_news.append(("news", news))
+
+               for post in self.planet.get_entries(limit=count):
+                       latest_news.append(("planet", post))
+
+               latest_news.sort(key=operator.itemgetter(1), reverse=True)
+
+               return latest_news[:count]
 
 
 class StaticHandler(BaseHandler):
@@ -97,3 +109,42 @@ class StaticHandler(BaseHandler):
                        raise tornado.web.HTTPError(404)
 
                self.render("static/%s" % name, lang=self.locale.code[:2])
+
+
+class GeoIPHandler(BaseHandler):
+       def get_address(self):
+               addr = self.get_argument("addr", None)
+
+               if not addr:
+                       addr = self.get_remote_ip()
+
+               return addr
+
+       def get(self):
+               addr = self.get_address()
+
+               peer = self.geoip.get_all(addr)
+               if peer:
+                       peer["country_name"] = self.geoip.get_country_name(peer.country)
+
+               mirrors = self.mirrors.get_for_location(peer)
+
+               self.render("geoip/index.html", addr=addr, peer=peer, mirrors=mirrors)
+
+
+class DonateHandler(BaseHandler):
+       def get(self):
+               reason_for_transfer = self.get_argument("reason_for_transfer", None)
+
+               # Interesting items from the wishlist.
+               wishlist_items = self.wishlist.get_hot_wishes()
+
+               self.render("donate.html", wishlist_items=wishlist_items,
+                       reason_for_transfer=reason_for_transfer)
+
+
+class DownloadHandler(BaseHandler):
+       def get(self):
+               release = self.releases.get_latest()
+
+               self.render("download.html", release=release)