From dc9ecbad36153af00773b4951120b4697b33193e Mon Sep 17 00:00:00 2001 From: Eevee Date: Thu, 22 Oct 2009 19:27:57 -0700 Subject: [PATCH] Added parent property/links for comments, and a Return link on comment threads. --- floof/model/comments.py | 15 +++++++++++++++ floof/templates/comments/lib.mako | 12 +++++++++++- floof/templates/comments/thread.mako | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/floof/model/comments.py b/floof/model/comments.py index bcfee9f..5e57c14 100644 --- a/floof/model/comments.py +++ b/floof/model/comments.py @@ -12,6 +12,8 @@ def indent_comments(comments): The first comment's indent level is 0. The comments must be a complete subtree, ordered by their `left` property. + + This function will also cache the `parent` property for each comment. """ last_comment = None @@ -103,3 +105,16 @@ class Comment(Entity): self.left = max_right + 1 self.right = max_right + 2 + @property + def parent(self): + """Returns this comment's parent. This is cached, hence its being a + property and not a method. + """ + if not hasattr(self, '_parent'): + self._parent = Comment.query \ + .filter(Comment.discussion_id == self.discussion_id) \ + .filter(Comment.left < self.left) \ + .filter(Comment.right > self.right) \ + .order_by(Comment.left.desc()) \ + .first() + return self._parent diff --git a/floof/templates/comments/lib.mako b/floof/templates/comments/lib.mako index 0c8ebfb..e822a17 100644 --- a/floof/templates/comments/lib.mako +++ b/floof/templates/comments/lib.mako @@ -13,11 +13,21 @@ ${single_comment(comment)} <%def name="single_comment(comment)"> +% if hasattr(comment, 'indent'):
+% else: +
+% endif
${comment.user.name}
${comment.time}
- +

${comment.text}

diff --git a/floof/templates/comments/thread.mako b/floof/templates/comments/thread.mako index 359c296..947c500 100644 --- a/floof/templates/comments/thread.mako +++ b/floof/templates/comments/thread.mako @@ -1,6 +1,8 @@ <%inherit file="/base.mako" /> <%namespace name="comments" file="/comments/lib.mako" /> +

« Return

+ % if c.root_comment: ${comments.single_comment(c.root_comment)} % endif -- 2.7.4