Switch to side-by-side view

--- a/ForgeWiki/forgewiki/model/wiki.py
+++ b/ForgeWiki/forgewiki/model/wiki.py
@@ -1,6 +1,7 @@
 from time import sleep
 from datetime import datetime
 
+import tg
 from pylons import g #g is a namespace for globally accessable app helpers
 from pylons import c as context
 
@@ -11,8 +12,10 @@
 from ming.orm.mapped_class import MappedClass
 from ming.orm.property import FieldProperty, ForeignIdProperty, RelationProperty
 
-from pyforge.model import VersionedArtifact, Snapshot, Message, File, Feed
+from pyforge.model import VersionedArtifact, Snapshot, Message, File, Feed, Thread, Post
 from pyforge.lib import helpers as h
+
+common_suffix = tg.config.get('forgemail.domain', '.sourceforge.net')
 
 class PageHistory(Snapshot):
     class __mongometa__:
@@ -70,6 +73,11 @@
             description = self.text
         Feed.post(self, description)
 
+    @property
+    def email_address(self):
+        domain = '.'.join(reversed(self.app.url[1:-1].split('/')))
+        return '%s@%s%s' % (self.title.replace('/', '.'), domain, common_suffix)
+
     def url(self):
         return self.app_config.url() + self.title + '/'
 
@@ -88,7 +96,7 @@
     @property
     def attachments(self):
         return Attachment.by_metadata(page_id=self._id)
-    
+
     @classmethod
     def upsert(cls, title, version=None):
         """Update page with `title` or insert new page with that name"""
@@ -105,6 +113,9 @@
                     title=title,
                     app_config_id=context.app.config._id,
                     )
+                t = Thread(discussion_id=obj.app_config.discussion_id,
+                           artifact_id=obj._id,
+                           subject='Discussion for %s page' % title)
             return obj
         else:
             pg = cls.upsert(title)
@@ -114,7 +125,13 @@
 
     def reply(self, text):
         Feed.post(self, text)
-        return Comment(page_id=self._id, text=text)
+        # Get thread
+        thread = Thread.query.get(artifact_id=self._id)
+        return Post(
+            discussion_id=thread.discussion_id,
+            thread_id=thread._id,
+            text=text)
+    # return Comment(page_id=self._id, text=text)
 
     @property
     def html_text(self):