X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=influences%2Fmodels.py;h=fcd1f51aa86f9e835dd230ad95d01c6eb682e7e4;hb=10c0b5f57ee0c82993c04714c93ccf556ea9079d;hp=6094181ae66ccd332ad971ad30b07a0838baa3d8;hpb=1e49a91ca729ea0596d07f47b917149c230e9614;p=matthijs%2Fprojects%2Fxerxes.git diff --git a/influences/models.py b/influences/models.py index 6094181..fcd1f51 100644 --- a/influences/models.py +++ b/influences/models.py @@ -1,6 +1,7 @@ from django.db import models from django.contrib.auth.models import User from django.utils.translation import ugettext_lazy as _ +from threadedcomments.models import ThreadedComment # Create your models here. class Character(models.Model): @@ -17,9 +18,6 @@ class Character(models.Model): def __str__(self): return self.name - class Admin: - pass - class Meta: verbose_name = _("Character") verbose_name_plural = _("Characters") @@ -46,12 +44,37 @@ class Influence(models.Model): def __str__(self): return self.summary - 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 class Meta: verbose_name = _("Influence") verbose_name_plural = _("Influences") +# vim: set sts=4 sw=4 expandtab: