from django.db import models
+from django.core.urlresolvers import reverse
from django.contrib.auth.models import User
+from django.utils.text import normalize_newlines
from django.utils.translation import ugettext_lazy as _
from threadedcomments.models import ThreadedComment
+from xerxes.tools.text import rewrap
# Create your models here.
class Character(models.Model):
def __str__(self):
return self.name
+ def get_absolute_url(self):
+ return reverse('influences_influence_detail', kwargs={'object_id' : self.pk})
+
class Meta:
verbose_name = _("Character")
verbose_name_plural = _("Characters")
def __str__(self):
return self.summary
+ def get_absolute_url(self):
+ return reverse('influences_influence_detail', kwargs={'object_id' : self.pk})
+
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")])
+ regex = "^([ >]*)(.*)$"
+ text = rewrap(normalize_newlines(comment.comment), 72, regex)
+ return "\n".join(["> " + l for l in text.split("\n")])
# Import here to prevent dependency loop, since forms depends on
# models as well
# Annotate each comment with a proper reply form
for comment in comments:
initial = { 'comment' : quote_reply(comment) }
- comment.reply_form = get_influence_comment_form(private, comment)(initial=initial)
-
+ 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: