- class Admin:
- list_filter=('character', 'status', 'longterm')
- search_fields=('character', 'description', 'contact')
- list_display=('character', 'contact', 'summary', 'longterm', 'status')
+ def get_comments(self, private):
+ """
+ Gets the comments that have been made on this Influence. Each
+ comment gets its reply_form attribute set to a Form appropriate
+ for replying to the comment.
+
+ If private is True, private comments are included in this list.
+ """
+ def quote_reply(comment):
+ return "\n".join(["> " + l for l in comment.comment.split("\n")])
+
+ # Import here to prevent dependency loop, since forms depends on
+ # models as well
+ from forms import get_influence_comment_form
+
+ if private:
+ comments = ThreadedComment.objects.get_tree(self)
+ else:
+ comments = ThreadedComment.public.get_tree(self)
+
+ # Annotate each comment with a proper reply form
+ for comment in comments:
+ initial = { 'comment' : quote_reply(comment) }
+ prefix = "reply-to-%s" % (comment.pk)
+ FormClass = get_influence_comment_form(private, comment)
+ comment.reply_form = FormClass(initial=initial,
+ prefix=prefix)
+ return comments