diff options
author | Aaron Bentley <abentley@panoramicfeedback.com> | 2006-04-04 09:52:50 -0400 |
---|---|---|
committer | Aaron Bentley <abentley@panoramicfeedback.com> | 2006-04-04 09:52:50 -0400 |
commit | c1f60d534fbc5496a0e3df2cb7c0d053e5fa40a8 (patch) | |
tree | e4a53de725cb4c4a2b95695412631862777e7591 | |
parent | 971bea53d6b5cf8ad35a978f4025fe0ac9ea3350 (diff) | |
download | bugseverywhere-c1f60d534fbc5496a0e3df2cb7c0d053e5fa40a8.tar.gz |
Added support for threaded comments
-rw-r--r-- | beweb/beweb/controllers.py | 16 | ||||
-rw-r--r-- | beweb/beweb/templates/edit_bug.kid | 17 |
2 files changed, 28 insertions, 5 deletions
diff --git a/beweb/beweb/controllers.py b/beweb/beweb/controllers.py index 6c43ecb..74c6a7d 100644 --- a/beweb/beweb/controllers.py +++ b/beweb/beweb/controllers.py @@ -13,9 +13,9 @@ def project_tree(project): except KeyError: raise Exception("Unknown project %s" % project) -def comment_url(project, bug, comment): +def comment_url(project, bug, comment, **kwargs): return turbogears.url("/project/%s/bug/%s/comment/%s" % - (project, bug, comment)) + (project, bug, comment), kwargs) class Comment(PrestHandler): @provide_action("action", "New comment") @@ -27,6 +27,18 @@ class Comment(PrestHandler): raise cherrypy.HTTPRedirect(comment_url(comment=comment.uuid, **comment_data)) + @provide_action("action", "Reply") + def reply_comment(self, comment_data, comment, *args, **kwargs): + bug_tree = project_tree(comment_data['project']) + bug = bug_tree.get_bug(comment_data['bug']) + reply_comment = new_comment(bug, "") + reply_comment.in_reply_to = comment.uuid + reply_comment.save() + reply_data = dict(comment_data) + del reply_data["comment"] + raise cherrypy.HTTPRedirect(comment_url(comment=reply_comment.uuid, + **reply_data)) + @provide_action("action", "Update") def update(self, comment_data, comment, comment_body, *args, **kwargs): comment.body = comment_body diff --git a/beweb/beweb/templates/edit_bug.kid b/beweb/beweb/templates/edit_bug.kid index 774334e..960866d 100644 --- a/beweb/beweb/templates/edit_bug.kid +++ b/beweb/beweb/templates/edit_bug.kid @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <?python -from libbe.bugdir import severity_levels, active_status, inactive_status +from libbe.bugdir import severity_levels, active_status, inactive_status, thread_comments from libbe.utility import time_to_str from beweb.controllers import bug_list_url, comment_url from beweb.config import people @@ -67,13 +67,13 @@ def soft_pre(text): <body> <h1>Edit bug</h1> -<form method="post"> +<form method="post" action="."> <table> <tr><td>Status</td><td>Severity</td><td>Assigned To</td><td>Summary</td></tr> <tr><td>${select_among("status", active_status+inactive_status, bug.status)}</td><td>${select_among("severity", severity_levels, bug.severity)}</td> <td>${select_among("assigned", people.keys()+[None], bug.assigned, people)}</td><td><input name="summary" value="${bug.summary}" size="80" /></td></tr> </table> -<div py:for="comment in bug.list_comments()" class="comment"> +<div py:def="show_comment(comment, children)" class="comment"> <insetbox> <table> <tr><td>From</td><td>${comment.From}</td></tr> @@ -81,7 +81,18 @@ def soft_pre(text): </table> <div py:content="soft_pre(comment.body)" py:strip="True"></div> <a href="${comment_url(project_id, bug.uuid, comment.uuid)}">Edit</a> + <a href="${comment_url(project_id, bug.uuid, comment.uuid, + action='Reply')}">Reply</a> </insetbox> + <div style="margin-left:20px;"> + <div py:for="child, grandchildren in children" py:strip="True"> + ${show_comment(child, grandchildren)} + </div> + </div> +</div> +<div py:for="comment, children in thread_comments(bug.list_comments())" + py:strip="True"> + ${show_comment(comment, children)} </div> <p><input type="submit" name="action" value="Update"/></p> <p><input type="submit" name="action" value="New comment"/></p> |