]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blobdiff - webapp/handlers.py
adjust touch target on mobile Feature page
[people/shoehn/ipfire.org.git] / webapp / handlers.py
index 9537ace754bbdaeeb5d0a9d8d5bf8490ede942e5..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,23 +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()
-               latest_release_unstable = self.releases.get_latest_unstable()
+
+               # 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,
-                       latest_release_unstable=latest_release_unstable,
-                       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):
@@ -117,4 +127,24 @@ class GeoIPHandler(BaseHandler):
                if peer:
                        peer["country_name"] = self.geoip.get_country_name(peer.country)
 
-               self.render("geoip/index.html", addr=addr, peer=peer)
+               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)