from threadedcomments.models import ThreadedComment
from django.utils.safestring import mark_safe
-from views import get_influence_comment_form, quote_reply
-
class CharacterAdmin(admin.ModelAdmin):
list_filter=('status', 'player')
search_fields=('name',)
opts = model._meta
obj = get_object_or_404(model, pk=object_id)
- comments = ThreadedComment.objects.get_tree(obj)
- # Annotate each comment with a proper reply form
- for comment in comments:
- initial = { 'comment' : quote_reply(comment) }
- comment.reply_form = get_influence_comment_form(request.user.is_staff, comment)(initial=initial)
+ comments = obj.get_comments(private=True)
context = {
'root_path' : self.admin_site.root_path,
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):
def __str__(self):
return self.summary
+ def get_comments(self, private):
+ 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) }
+ comment.reply_form = get_influence_comment_form(private, comment)(initial=initial)
+
+ return comments
+
class Meta:
verbose_name = _("Influence")
verbose_name_plural = _("Influences")
os = Influence.objects.filter(character__player=request.user)
return render_to_response('influences/influence_list.html', {'object_list' : os}, RequestContext(request))
-def quote_reply(comment):
- return "\n".join(["> " + l for l in comment.comment.split("\n")])
-
@login_required
def influence_detail(request, object_id):
# Show all comments to staff, but only public comments to other
# users
- if request.user.is_staff:
- comments = ThreadedComment.objects.get_tree(o)
- else:
- comments = ThreadedComment.public.get_tree(o)
-
- # Annotate each comment with a proper reply form
- for comment in comments:
- initial = { 'comment' : quote_reply(comment) }
- comment.reply_form = get_influence_comment_form(request.user.is_staff, comment)(initial=initial)
+ comments = o.get_comments(private=request.user.is_staff)
context = {
'object' : o,