Esempio n. 1
0
	def post_comment_view(request, item_id):
		user = request.user
		item = get_object_or_404(model, pk=item_id)
		
		if request.method != "POST":
			return HttpResponseRedirect(reverse(reverse_function_name, kwargs={'item_id':item_id,}))
		else:
			post_comment_form = PostCommentForm(request.POST)
			
			if post_comment_form.is_valid():
				comment_contents = post_comment_form.cleaned_data["comment"]
				comment = Comment(posting_user=user, parent_item=item, contents=comment_contents)
				comment.save()
				
				return HttpResponseRedirect(reverse(reverse_function_name, kwargs={'item_id':item_id,}))
			else:
				return render_to_response(render_to_response_template, {
					template_item_name: item,
					'user': user,
					'post_comment_form': post_comment_form,
				})
		
		return HttpResponseRedirect("/login/?next=%s" % request.path)
Esempio n. 2
0
File: views.py Progetto: cns-iu/nwb
 def post_comment_view(request, item_id, slug):
     user = request.user
     item = get_object_or_404(model, pk=item_id)
     
     kwargs_for_reverse_lookup = {
         ITEM_ID_KEY: item_id,
         SLUG_KEY: item.slug
     }
     
     post_comment_url = reverse(
         post_comment_function_name, kwargs=kwargs_for_reverse_lookup)
     
     if request.method != 'POST':
         return HttpResponseRedirect(post_comment_url)
     else:
         form = PostCommentForm(request.POST)
         
         if form.is_valid():
             comment_contents = form.cleaned_data[COMMENT_KEY]
             
             comment = Comment(posting_user=user,
                               parent_item=item,
                               contents=comment_contents)
             
             comment.save()
             
             return HttpResponseRedirect(post_comment_url)
         else:
             template_variables = {
                 template_item_name: item,
                 FORM_KEY: form
             }
             
             return render_to_response(
                 comment_posted_template_name,
                 template_variables,
                 context_instance=RequestContext(request))
Esempio n. 3
0
class CommentOnDataRequestTestCase(TestCase):
    fixtures = ["initial_data", "single_request"]

    def setUp(self):
        self.data_request = DataRequest.objects.all()[0]

        self.post_comment_form_data = {"comment": "abcd"}

        self.user = User.objects.get(username="******")
        self.comment = Comment(posting_user=self.user, parent_item=self.data_request, contents="abcd")

    def tearDown(self):
        pass

    def testUserViewDataRequestAndNotLoggedIn(self):
        response = self.client.get("/datarequests/1/")
        self.failUnlessEqual(response.status_code, 200, "Error displaying datarequest!")

        self.assertContains(response, "You must be logged in to comment.", 1)

    def testUserViewDataRequestAndLoggedIn(self):
        # Log the user in.
        self.client.login(username="******", password="******")

        response = self.client.get("/datarequests/1/")
        self.failUnlessEqual(response.status_code, 200, "Error displaying datarequest!")

        self.assertContains(response, '<form action="/datarequests/1/comment/" method="POST">', 1)

    def testNotLoggedInUserPostComment(self):
        post_comment_response = self.client.post("/datarequests/1/comment/", self.post_comment_form_data)

        self.assertRedirects(post_comment_response, "/login/?next=/datarequests/1/comment/")

    def testLoggedInUserPostComment(self):
        # Make sure there are no prior comments.
        Comment.objects.all().delete()

        # Log a user in so we can post a test comment.
        self.client.login(username="******", password="******")

        # Post a test comment.
        post_comment_form_data = {"comment": "abcd"}

        post_comment_response = self.client.post("/datarequests/1/comment/", post_comment_form_data)

        # The posted-to URL should have redirected back here.
        self.assertRedirects(post_comment_response, "/datarequests/1/")

        # Verify that the comment is properly in the database.
        self.failUnlessEqual(Comment.objects.all()[0].contents, "abcd")

        # Delete the test comment.
        Comment.objects.all().delete()

    def testViewDataRequestWithNoComments(self):
        # Make sure there are no comments.
        Comment.objects.all().delete()

        response = self.client.get("/datarequests/1/")
        self.failUnlessEqual(response.status_code, 200, "Error displaying datarequest!")

        self.assertContains(response, "There are no comments yet.", 1)

    def testViewDataRequestWithAComment(self):
        # Make sure there are no prior comments.
        Comment.objects.all().delete()

        # Directly put a comment on the datarequest.
        self.comment.save()

        response = self.client.get("/datarequests/1/")
        self.failUnlessEqual(response.status_code, 200, "Error displaying datarequest!")

        # Make sure the posted comment is display.
        self.assertTrue(self.comment.contents in response.content)

        # Delete the test comment.
        Comment.objects.all().delete()

    def testNotLoggedInUserAccessCommentURL(self):
        get_datarequest_comment_page_response = self.client.get("/datarequests/1/comment/")
        self.assertRedirects(get_datarequest_comment_page_response, "/login/?next=/datarequests/1/comment/")

    def testLoggedInUserAccessCommentURL(self):
        self.client.login(username="******", password="******")

        get_datarequest_comment_page_response = self.client.get("/datarequests/1/comment/")
        self.assertRedirects(get_datarequest_comment_page_response, "/datarequests/1/")