More thorough support for comment threading.
[zzz-floof.git] / floof / templates / comments / lib.mako
index 38e6534..0c8ebfb 100644 (file)
@@ -1,17 +1,24 @@
 <%def name="comment_block(comments)">
 <h1>${len(comments)} comments</h1>
-## XXX make sure these do the right thing when this is a subtree
 <p><a href="${url(controller='comments', action='thread', owner_url=h.get_comment_owner_url(**c.route))}">View all</a></p>
 <p><a href="${url(controller='comments', action='reply', owner_url=h.get_comment_owner_url(**c.route))}">Reply</a></p>
 ${comment_thread(comments)}
 </%def>
 
 <%def name="comment_thread(comments)">
-% for comment in comments:
-<div class="comment">
-    <div class="user">${comment.user.name}</div>
-    <div class="time">${comment.time}</div>
+<%! from floof.model.comments import indent_comments %>\
+% for comment in indent_comments(comments):
+${single_comment(comment)}
+% endfor
+</%def>
+
+<%def name="single_comment(comment)">
+<div class="comment" style="margin-left: ${comment.indent}em;">
+    <div class="header">
+        <div class="user">${comment.user.name}</div>
+        <div class="time">${comment.time}</div>
+        <div class="link"><a href="${url(controller='comments', action='thread', id=comment.id, owner_url=h.get_comment_owner_url(**c.route))}">Link</a></div>
+    </div>
     <p>${comment.text}</p>
 </div>
-% endfor
 </%def>