]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blobdiff - www/webapp/ui_modules.py
Add planet functionality.
[people/shoehn/ipfire.org.git] / www / webapp / ui_modules.py
index aa89f805a71c8fddb3c8322530f5054bf8074861..e601051f6fd19e5a536a590eb93c4355047ad677 100644 (file)
@@ -2,6 +2,7 @@
 
 import tornado.web
 
+import markdown
 import menu
 import releases
 
@@ -14,6 +15,10 @@ class UIModule(tornado.web.UIModule):
                })
                return tornado.web.UIModule.render_string(self, *args, **kwargs)
 
+       @property
+       def user_db(self):
+               return self.handler.application.user_db
+
 
 class MenuItemModule(UIModule):
        def render(self, item):
@@ -33,7 +38,10 @@ class MenuModule(UIModule):
        def render(self, menuclass=None):
                if not menuclass:
                        menuclass = menu.Menu("menu.json")
-               return self.render_string("modules/menu.html", menuitems=menuclass.items)
+
+               host = self.request.host.lower().split(':')[0]
+
+               return self.render_string("modules/menu.html", menuitems=menuclass.get(host))
 
 
 class NewsItemModule(UIModule):
@@ -78,3 +86,15 @@ class SidebarBannerModule(UIModule):
 class BuildModule(UIModule):
        def render(self, build):
                return self.render_string("modules/builds.html", build=build)
+
+
+class PlanetEntryModule(UIModule):
+       def render(self, entry):
+               if not getattr(entry, "author", None):
+                       entry.author = self.user_db.get_user_by_id(entry.author_id)
+
+               entry.markup = markdown.markdown(entry.text)
+               entry.published = entry.published.strftime("%Y-%m-%d")
+               entry.updated = entry.updated.strftime("%Y-%m-%d %H:%M")
+
+               return self.render_string("modules/planet-entry.html", entry=entry)