diff --git a/app/templates/app/detail_materi.html b/app/templates/app/detail_materi.html index e15f5f9fa4cda0a0c915adec2200c784710696fb..ea90e05ae662f5ced33ca0683aa5c7d9843c1359 100644 --- a/app/templates/app/detail_materi.html +++ b/app/templates/app/detail_materi.html @@ -260,6 +260,7 @@ </div> {% if materi_data.status == "APPROVE" %} <div id="komentar" class="container-fluid comments-wrapper p-0"> + {% if is_authenticated %} <div class="add-comments col col-8 bg-white shadow-sm rounded p-3 mb-3"> <form method="POST"> {% csrf_token %} @@ -272,6 +273,9 @@ </div> </form> </div> + {% else %} + <h3>Login terlebih dahulu untuk berkomentar</h3> + {% endif %} {% for comment in comment_data %} <div class="col col-8 comment shadow-sm p-3 mb-1 bg-white rounded"> <div class="d-flex bd-highlight mb-3 align-items-center user"> diff --git a/app/tests.py b/app/tests.py index e9bbc7169a370c0fcfe1180f5ed1a5553d1dd3f9..2792ff33a88e19f22a98b6280affd6443ba5e6c8 100644 --- a/app/tests.py +++ b/app/tests.py @@ -323,10 +323,17 @@ class DetailMateriTest(TestCase): self.assertContains(response, "Anonymous") def test_detail_materi_contains_form_comment(self): + self.client.login(**self.contributor_credential) response = self.client.get(self.url) self.assertContains(response, "Beri komentar...") + def test_detail_materi_not_contains_form_comment(self): + response = self.client.get(self.url) + self.assertNotContains(response, "Beri komentar...") + self.assertContains(response, "Login terlebih dahulu untuk berkomentar") + def test_delete_comments_by_admin(self): + self.client.login(**self.contributor_credential) url = self.url self.client.post(url, {"comment": "This is new comment by Anonymous"}) deleteURL = ( diff --git a/app/views.py b/app/views.py index 4f582eab8d7781c15239b589e6d2c350d9fc72e5..fffc13952ef3ca6771afcff2a567cdd4eda66aa0 100644 --- a/app/views.py +++ b/app/views.py @@ -157,7 +157,9 @@ class DetailMateri(TemplateView): if self.request.user.is_authenticated: materi_rating = Rating.objects.filter(materi=materi, user=self.request.user).first() if materi_rating is not None: - context["materi_rating_score"] = materi_rating.score + context['materi_rating_score'] = materi_rating.score + + context['is_authenticated'] = self.request.user.is_authenticated return context @@ -189,10 +191,11 @@ class DetailMateri(TemplateView): materi = get_object_or_404(Materi, pk=kwargs["pk"]) user_obj = request.user if request.user.is_authenticated else None - comment = Comment.objects.create( - comment=commentText, username=self.get_user_name(request), materi=materi, user=user_obj - ) - comment.save() + if user_obj: + comment = Comment.objects.create( + comment=commentText, username=self.get_user_name(request), materi=materi, user=user_obj + ) + comment.save() return HttpResponseRedirect(request.path)