summaryrefslogtreecommitdiff
path: root/sphinx/websupport/storage/sqlalchemystorage.py
diff options
context:
space:
mode:
authorJacob Mason <jacoblmason@gmail.com>2010-08-09 15:22:52 -0500
committerJacob Mason <jacoblmason@gmail.com>2010-08-09 15:22:52 -0500
commit3b3e001eb970846e4711e9a0b93d2296c6a2e29b (patch)
tree2e143366b87cdd9d6724377e732ad3064bb6c1be /sphinx/websupport/storage/sqlalchemystorage.py
parent3f29ff6204501bc9ff3f1c763c5c90148bd333ca (diff)
downloadsphinx-git-3b3e001eb970846e4711e9a0b93d2296c6a2e29b.tar.gz
added more comments/docstrings
Diffstat (limited to 'sphinx/websupport/storage/sqlalchemystorage.py')
-rw-r--r--sphinx/websupport/storage/sqlalchemystorage.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/sphinx/websupport/storage/sqlalchemystorage.py b/sphinx/websupport/storage/sqlalchemystorage.py
index 7a906dcba..553450d32 100644
--- a/sphinx/websupport/storage/sqlalchemystorage.py
+++ b/sphinx/websupport/storage/sqlalchemystorage.py
@@ -18,6 +18,9 @@ from sphinx.websupport.storage.db import Base, Node, Comment, CommentVote,\
from sphinx.websupport.storage.differ import CombinedHtmlDiff
class SQLAlchemyStorage(StorageBackend):
+ """A :class:`~sphinx.websupport.storage.StorageBackend` using
+ SQLAlchemy.
+ """
def __init__(self, engine):
self.engine = engine
Base.metadata.bind = engine
@@ -40,7 +43,8 @@ class SQLAlchemyStorage(StorageBackend):
def add_comment(self, text, displayed, username, time,
proposal, node_id, parent_id, moderator):
session = Session()
-
+ proposal_diff = None
+
if node_id and proposal:
node = session.query(Node).filter(Node.id == node_id).one()
differ = CombinedHtmlDiff()
@@ -51,19 +55,18 @@ class SQLAlchemyStorage(StorageBackend):
if not parent.displayed:
raise CommentNotAllowedError(
"Can't add child to a parent that is not displayed")
- proposal_diff = None
- else:
- proposal_diff = None
comment = Comment(text, displayed, username, 0,
time or datetime.now(), proposal, proposal_diff)
session.add(comment)
session.flush()
+ # We have to flush the session before setting the path so the
+ # Comment has an id.
comment.set_path(node_id, parent_id)
session.commit()
- comment = comment.serializable()
+ d = comment.serializable()
session.close()
- return comment
+ return d
def delete_comment(self, comment_id, username, moderator):
session = Session()
@@ -72,6 +75,7 @@ class SQLAlchemyStorage(StorageBackend):
if moderator or comment.username == username:
comment.username = '[deleted]'
comment.text = '[deleted]'
+ comment.proposal = ''
session.commit()
session.close()
else: