From 5dfd3c16b080feb5e2d420b723ea646535e4092c Mon Sep 17 00:00:00 2001 From: Eevee Date: Wed, 14 Jul 2010 22:59:35 -0700 Subject: [PATCH 1/1] Added front page support. --- splinext/forum/__init__.py | 23 +++++++++++++++++++++++ splinext/forum/templates/forum/front_page.mako | 25 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 splinext/forum/templates/forum/front_page.mako diff --git a/splinext/forum/__init__.py b/splinext/forum/__init__.py index e234c14..0c8edd3 100644 --- a/splinext/forum/__init__.py +++ b/splinext/forum/__init__.py @@ -4,8 +4,10 @@ from pylons import c, session from spline.lib.plugin import PluginBase from spline.lib.plugin import PluginBase, PluginLink, Priority +from spline.model import meta import splinext.forum.controllers.forum +from splinext.forum import model as forum_model def add_routes_hook(map, *args, **kwargs): """Hook to inject some of our behavior into the routes configuration.""" @@ -18,6 +20,26 @@ def add_routes_hook(map, *args, **kwargs): map.connect('/forums/{forum_id}/write', controller='forum', action='write_thread') map.connect('/forums/{forum_id}/threads/{thread_id}/write', controller='forum', action='write') +class FrontPageNewsPost(object): + pass + +def frontpage_hook(limit): + """Hook to return recent news for the front page.""" + threads = meta.Session.query(forum_model.Thread) \ + .join(forum_model.Thread.first_post) \ + .order_by(forum_model.Post.posted_time.desc()) \ + [:limit] + + updates = [] + for thread in threads: + update = FrontPageNewsPost() + update.time = thread.first_post.posted_time + update.template = '/forum/front_page.mako' + update.post = thread.first_post + updates.append(update) + + return updates + class ForumPlugin(PluginBase): def controllers(self): @@ -28,4 +50,5 @@ class ForumPlugin(PluginBase): def hooks(self): return [ ('routes_mapping', Priority.NORMAL, add_routes_hook), + ('frontpage_updates', Priority.NORMAL, frontpage_hook), ] diff --git a/splinext/forum/templates/forum/front_page.mako b/splinext/forum/templates/forum/front_page.mako new file mode 100644 index 0000000..b967763 --- /dev/null +++ b/splinext/forum/templates/forum/front_page.mako @@ -0,0 +1,25 @@ +<%page args="update" /> +<%namespace name="userlib" file="/users/lib.mako" /> + +
+
+
${config['spline.site_title']} news:
+ +
${update.post.posted_time}
+
+ +
${update.post.content}
+ +
-- 2.7.4