mirror of
https://github.com/ae-utbm/sith.git
synced 2026-09-14 16:29:12 +00:00
Fix review comments
This commit is contained in:
@@ -15,9 +15,9 @@
|
|||||||
{{ form.reporter }}
|
{{ form.reporter }}
|
||||||
{{ form.comment }}
|
{{ form.comment }}
|
||||||
|
|
||||||
<div class="buttons">
|
<div class="buttons row gap">
|
||||||
<button
|
<button
|
||||||
class="btn btn-red left"
|
class="btn btn-grey"
|
||||||
hx-get="{{ ue_detail_url }}"
|
hx-get="{{ ue_detail_url }}"
|
||||||
hx-target="closest form"
|
hx-target="closest form"
|
||||||
hx-swap="outerHTML"
|
hx-swap="outerHTML"
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
{% trans %}Cancel{% endtrans %}
|
{% trans %}Cancel{% endtrans %}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<input class="btn btn-green" type="submit" value="{% trans %}Report{% endtrans %}" />
|
<input class="btn btn-blue" type="submit" value="{% trans %}Report{% endtrans %}" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
+21
-14
@@ -25,6 +25,7 @@ from typing import Callable
|
|||||||
import pytest
|
import pytest
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import Permission
|
from django.contrib.auth.models import Permission
|
||||||
|
from django.db.models import Max
|
||||||
from django.test import Client, TestCase
|
from django.test import Client, TestCase
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from model_bakery import baker
|
from model_bakery import baker
|
||||||
@@ -316,10 +317,11 @@ class TestUVCommentDisplay(TestCase):
|
|||||||
)
|
)
|
||||||
cls.subscriber = subscriber_user.make()
|
cls.subscriber = subscriber_user.make()
|
||||||
comments = baker.make(UEComment, ue=cls.ue, _quantity=10)
|
comments = baker.make(UEComment, ue=cls.ue, _quantity=10)
|
||||||
|
cls.unreported, cls.reported = comments[:5], comments[5:]
|
||||||
baker.make(
|
baker.make(
|
||||||
UECommentReport,
|
UECommentReport,
|
||||||
comment=iter(comments[5:]),
|
comment=iter(cls.reported),
|
||||||
_quantity=len(comments[5:]),
|
_quantity=len(cls.reported),
|
||||||
_bulk_create=True,
|
_bulk_create=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -347,7 +349,10 @@ class TestUVCommentDisplay(TestCase):
|
|||||||
def test_access_not_found(self):
|
def test_access_not_found(self):
|
||||||
self.client.force_login(self.admin)
|
self.client.force_login(self.admin)
|
||||||
res = self.client.get(
|
res = self.client.get(
|
||||||
reverse("pedagogy:ue_detail", kwargs={"ue_id": UE.objects.last().id + 1})
|
reverse(
|
||||||
|
"pedagogy:ue_detail",
|
||||||
|
kwargs={"ue_id": UE.objects.aggregate(id=Max("id"))["id"] + 1},
|
||||||
|
)
|
||||||
)
|
)
|
||||||
assert res.status_code == 404
|
assert res.status_code == 404
|
||||||
|
|
||||||
@@ -359,22 +364,20 @@ class TestUVCommentDisplay(TestCase):
|
|||||||
|
|
||||||
self.client.force_login(self.subscriber)
|
self.client.force_login(self.subscriber)
|
||||||
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
||||||
assert len(comments) == 5
|
assert len(comments) == len(self.unreported)
|
||||||
assert all(not comment.reports.exists() for comment in comments)
|
assert set(comments) == set(self.unreported)
|
||||||
|
|
||||||
# Make user comment
|
# Make user comment
|
||||||
user_comment = baker.make(UEComment, ue=self.ue, author=self.subscriber)
|
user_comment = baker.make(UEComment, ue=self.ue, author=self.subscriber)
|
||||||
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
||||||
assert len(comments) == 6
|
assert len(comments) == len(self.unreported) + 1
|
||||||
assert all(not comment.reports.exists() for comment in comments)
|
assert set(comments) == {*self.unreported, user_comment}
|
||||||
assert user_comment in comments
|
|
||||||
|
|
||||||
# Report user comment
|
# Report user comment
|
||||||
baker.make(UECommentReport, comment=user_comment)
|
baker.make(UECommentReport, comment=user_comment)
|
||||||
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
||||||
assert len(comments) == 6
|
assert len(comments) == len(self.unreported) + 1
|
||||||
assert not all(not comment.reports.exists() for comment in comments)
|
assert set(comments) == {*self.unreported, user_comment}
|
||||||
assert user_comment in comments
|
|
||||||
|
|
||||||
# Report someone's else comment
|
# Report someone's else comment
|
||||||
comment_reported_by_user = baker.make(UEComment, ue=self.ue)
|
comment_reported_by_user = baker.make(UEComment, ue=self.ue)
|
||||||
@@ -382,8 +385,12 @@ class TestUVCommentDisplay(TestCase):
|
|||||||
UECommentReport, comment=comment_reported_by_user, reporter=self.subscriber
|
UECommentReport, comment=comment_reported_by_user, reporter=self.subscriber
|
||||||
)
|
)
|
||||||
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
comments = self.client.get(self.ue_url).context_data.get("comments", [])
|
||||||
assert len(comments) == 7
|
assert len(comments) == len(self.unreported) + 2
|
||||||
assert comment_reported_by_user in comments
|
assert set(comments) == {
|
||||||
|
*self.unreported,
|
||||||
|
user_comment,
|
||||||
|
comment_reported_by_user,
|
||||||
|
}
|
||||||
|
|
||||||
def test_comments_pedagogy_admin(self):
|
def test_comments_pedagogy_admin(self):
|
||||||
# Pedagogy admin sees everything
|
# Pedagogy admin sees everything
|
||||||
@@ -478,7 +485,7 @@ class TestUECommentCreation(TestCase):
|
|||||||
|
|
||||||
def test_create_ue_comment_ue_not_exist_fails(self):
|
def test_create_ue_comment_ue_not_exist_fails(self):
|
||||||
self.client.force_login(self.bibou)
|
self.client.force_login(self.bibou)
|
||||||
not_existing_id = UE.objects.all().last().id + 1
|
not_existing_id = UE.objects.aggregate(id=Max("id"))["id"] + 1
|
||||||
response = self.client.post(
|
response = self.client.post(
|
||||||
reverse("pedagogy:comment_create", kwargs={"ue_id": not_existing_id}),
|
reverse("pedagogy:comment_create", kwargs={"ue_id": not_existing_id}),
|
||||||
create_ue_comment_template(
|
create_ue_comment_template(
|
||||||
|
|||||||
+4
-9
@@ -106,7 +106,7 @@ class UEDetailView(
|
|||||||
.annotate_is_reported()
|
.annotate_is_reported()
|
||||||
.select_related("author")
|
.select_related("author")
|
||||||
.order_by("-publish_date")
|
.order_by("-publish_date")
|
||||||
),
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ class UECommentUpdateView(PermissionOrAuthorRequiredMixin, AllowFragment, Update
|
|||||||
}
|
}
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.object.ue.id})
|
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.object.ue_id})
|
||||||
|
|
||||||
|
|
||||||
class UECommentDeleteView(PermissionOrAuthorRequiredMixin, AllowFragment, DeleteView):
|
class UECommentDeleteView(PermissionOrAuthorRequiredMixin, AllowFragment, DeleteView):
|
||||||
@@ -147,13 +147,8 @@ class UECommentDeleteView(PermissionOrAuthorRequiredMixin, AllowFragment, Delete
|
|||||||
permission_required = "pedagogy.delete_uecomment"
|
permission_required = "pedagogy.delete_uecomment"
|
||||||
author_field = "author"
|
author_field = "author"
|
||||||
|
|
||||||
def form_valid(self, form):
|
|
||||||
response = super().form_valid(form)
|
|
||||||
response.headers["HX-Trigger"] = "CommentUpdate"
|
|
||||||
return response
|
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.object.ue.id})
|
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.object.ue_id})
|
||||||
|
|
||||||
|
|
||||||
class UEGuideView(PermissionRequiredMixin, TemplateView):
|
class UEGuideView(PermissionRequiredMixin, TemplateView):
|
||||||
@@ -177,7 +172,7 @@ class UECommentReportCreateView(PermissionRequiredMixin, AllowFragment, CreateVi
|
|||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def ue_detail_url(self):
|
def ue_detail_url(self):
|
||||||
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.ue_comment.ue.id})
|
return reverse("pedagogy:ue_detail", kwargs={"ue_id": self.ue_comment.ue_id})
|
||||||
|
|
||||||
def get_form_kwargs(self):
|
def get_form_kwargs(self):
|
||||||
kwargs = super().get_form_kwargs()
|
kwargs = super().get_form_kwargs()
|
||||||
|
|||||||
Reference in New Issue
Block a user