Switch to side-by-side view

--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -139,7 +139,8 @@
             pages = [
                 SitemapEntry(p.title, p.url())
                 for p in model.Page.query.find(dict(
-                        app_config_id=self.config._id)) ]
+                        app_config_id=self.config._id,
+                        deleted=False)) ]
             return [
                 SitemapEntry(menu_id, '.')[SitemapEntry('Pages')[pages]] ]
 
@@ -153,7 +154,7 @@
         related_pages = []
         related_urls = []
         page = request.path_info.split(self.url)[-1].split('/')[-2]
-        page = model.Page.query.find(dict(app_config_id=self.config._id,title=page)).first()
+        page = model.Page.query.find(dict(app_config_id=self.config._id, title=page, deleted=False)).first()
         links = [SitemapEntry('Create New Page', c.app.url, ui_icon='plus', className='add_wiki_page'),
 	             SitemapEntry('')]
         if page:
@@ -204,7 +205,7 @@
         self.upsert_root(root_page_name)
 
     def upsert_root(self, new_root):
-        p = model.Page.query.get(app_config_id=self.config._id, title=new_root)
+        p = model.Page.query.get(app_config_id=self.config._id, title=new_root, deleted=False)
         if p is None:
             with h.push_config(c, app=self):
                 p = model.Page.upsert(new_root)
@@ -281,7 +282,7 @@
         'list of all pages in the wiki'
         pages = []
         uv_pages = []
-        q = model.Page.query.find(dict(app_config_id=c.app.config._id))
+        q = model.Page.query.find(dict(app_config_id=c.app.config._id, deleted=False))
         if sort == 'alpha':
             q = q.sort('title')
         for page in q:
@@ -316,7 +317,7 @@
         #         if tag.tag not in page_tags:
         #             page_tags[tag.tag] = []
         #         page_tags[tag.tag].append(artifact)
-        q = model.Page.query.find(dict(app_config_id=c.app.config._id))
+        q = model.Page.query.find(dict(app_config_id=c.app.config._id, deleted=False))
         for page in q:
             if page.labels:
                 for label in page.labels:
@@ -364,8 +365,8 @@
 
 class PageController(object):
 
-    def __init__(self, title):
-        exists = model.Page.query.get(app_config_id=c.app.config._id, title=title)
+    def __init__(self, title, deleted=False):
+        exists = model.Page.query.get(app_config_id=c.app.config._id, title=title, deleted=deleted)
         self.title = title
         self.page = model.Page.upsert(title)
         self.attachment = AttachmentsController(self.page)
@@ -496,7 +497,7 @@
         else: tags = []
         name_conflict = None
         if self.page.title != title:
-            name_conflict = model.Page.query.find(dict(app_config_id=c.app.config._id, title=title)).first()
+            name_conflict = model.Page.query.find(dict(app_config_id=c.app.config._id, title=title, deleted=False)).first()
             if name_conflict:
                 flash('There is already a page named "%s".' % title, 'error')
             else:
@@ -650,7 +651,7 @@
     @expose('json:')
     def get_all(self, **kw):
         page_titles = []
-        pages = model.Page.query.find(dict(app_config_id=c.app.config._id))
+        pages = model.Page.query.find(dict(app_config_id=c.app.config._id, deleted=False))
         for page in pages:
             if has_artifact_access('read', page)():
                 page_titles.append(page.title)
@@ -658,7 +659,7 @@
 
     @expose('json:')
     def get_one(self, title, **kw):
-        page = model.Page.query.get(app_config_id=c.app.config._id, title=title)
+        page = model.Page.query.get(app_config_id=c.app.config._id, title=title, deleted=False)
         if page is None:
             raise exc.HTTPNotFound, title
         require(has_artifact_access('read', page))
@@ -667,7 +668,7 @@
     @h.vardec
     @expose()
     def post(self, title, **post_data):
-        exists = model.Page.query.find(dict(app_config_id=c.app.config._id, title=title)).first()
+        exists = model.Page.query.find(dict(app_config_id=c.app.config._id, title=title, deleted=False)).first()
         if not exists:
             require(has_artifact_access('create'))
         page = model.Page.upsert(title)