Populate those empty "activity" and "volume" columns. Show last posts. #315
[zzz-spline-forum.git] / splinext / forum / __init__.py
index 55ffaa2..974e29e 100644 (file)
@@ -1,20 +1,22 @@
 from pkg_resources import resource_filename
 
 from pkg_resources import resource_filename
 
-from pylons import c, session
+from pylons import session, tmpl_context as c
 
 from spline.lib.plugin import PluginBase
 from spline.lib.plugin import PluginBase, PluginLink, Priority
 
 from spline.lib.plugin import PluginBase
 from spline.lib.plugin import PluginBase, PluginLink, Priority
-import spline.model as model
-import spline.model.meta as meta
 
 import splinext.forum.controllers.forum
 
 import splinext.forum.controllers.forum
-import splinext.forum.model
 
 def add_routes_hook(map, *args, **kwargs):
     """Hook to inject some of our behavior into the routes configuration."""
 
 def add_routes_hook(map, *args, **kwargs):
     """Hook to inject some of our behavior into the routes configuration."""
+    require_POST = dict(conditions=dict(method=['POST']))
+
     map.connect('/forums', controller='forum', action='forums')
     map.connect('/forums', controller='forum', action='forums')
-    map.connect('/forums/{forum_id}', controller='forum', action='threads')
-    map.connect('/forums/{forum_id}/threads/{thread_id}', controller='forum', action='posts')
+    map.connect(r'/forums/{forum_id:\d+}', controller='forum', action='threads')
+    map.connect(r'/forums/{forum_id:\d+}/threads/{thread_id:\d+}', controller='forum', action='posts')
+
+    map.connect(r'/forums/{forum_id:\d+}/write', controller='forum', action='write_thread')
+    map.connect(r'/forums/{forum_id:\d+}/threads/{thread_id:\d+}/write', controller='forum', action='write')
 
 
 class ForumPlugin(PluginBase):
 
 
 class ForumPlugin(PluginBase):
@@ -23,19 +25,17 @@ class ForumPlugin(PluginBase):
             forum = splinext.forum.controllers.forum.ForumController,
         )
 
             forum = splinext.forum.controllers.forum.ForumController,
         )
 
-    def model(self):
-        return [
-            model.Forum,
-            model.Thread,
-            model.Post,
-        ]
-
-    def template_dirs(self):
-        return [
-            (resource_filename(__name__, 'templates'), Priority.NORMAL)
-        ]
-
     def hooks(self):
     def hooks(self):
-        return [
+        hooks = [
             ('routes_mapping',    Priority.NORMAL,      add_routes_hook),
         ]
             ('routes_mapping',    Priority.NORMAL,      add_routes_hook),
         ]
+
+        # frontpage plugin may or may not be installed
+        try:
+            from splinext.forum.frontpage_sources import ForumSource
+            hooks.append(
+                ('frontpage_updates_forum', Priority.NORMAL, ForumSource))
+        except ImportError:
+            pass
+
+        return hooks