Show only public comments to non-staff.
[matthijs/projects/xerxes.git] / influences / views.py
index 85124e4c0c6c98b5377f6b21ef3b2315b980fd22..2dbd5c990ec692fa3ccf99b454f74fbab3d32492 100644 (file)
@@ -7,9 +7,11 @@ from django.contrib.auth.models import User
 from django.core.urlresolvers import reverse
 from django.http import HttpResponseRedirect, HttpResponseForbidden
 from django.views.generic.list_detail import object_detail, object_list
-from ee.influences.models import Character
-from ee.influences.models import Influence
-from ee.tools.forms import ContextModelForm
+from threadedcomments.models import ThreadedComment
+from threadedcomments.forms import ThreadedCommentForm
+from xerxes.influences.models import Character
+from xerxes.influences.models import Influence
+from xerxes.tools.forms import ContextModelForm
 
 
 
@@ -24,7 +26,7 @@ class CharacterForm(ContextModelForm):
         fields = ('name')
 
 @login_required
-def add(request, character_id=None):
+def add_influence(request, character_id=None):
     initial = {}
     # Get the current user's characters
     chars = request.user.character_set.all()
@@ -50,10 +52,10 @@ def add(request, character_id=None):
         # Redirect to the just saved influence
         return HttpResponseRedirect(reverse('influences_influence_detail', args=[influence.id]))
 
-    return render_to_response('influences/add.html', {'form' : f}, RequestContext(request))
+    return render_to_response('influences/add_influence.html', {'form' : f}, RequestContext(request))
 
 @login_required
-def addCharacter(request):
+def add_character(request):
     f = CharacterForm(request=request)
     if (f.is_valid()):
         character = f.save(commit=False)
@@ -103,6 +105,19 @@ def influence_detail(request, object_id):
     # Don't show other player's influences
     if (o.character.player != request.user):
         return HttpResponseForbidden("Forbidden -- Trying to view influences of somebody else's character")
-    return render_to_response('influences/influence_detail.html', {'object' : o}, RequestContext(request))
+
+    # 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)
+    
+    context  = {
+        'object' : o,
+        'comments' : comments,
+        'comment_form' : ThreadedCommentForm(),
+    }
+    return render_to_response('influences/influence_detail.html', context, RequestContext(request))
 
 # vim: set sts=4 sw=4 expandtab: