From e80a43193f210eb6fdcfe29b8761869cd416acc2 Mon Sep 17 00:00:00 2001 From: Sli Date: Wed, 9 Sep 2026 14:35:44 +0200 Subject: [PATCH] Fix ue comment view permission Alternative queryset --- pedagogy/models.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pedagogy/models.py b/pedagogy/models.py index 84f6bab4..bfbdb43c 100644 --- a/pedagogy/models.py +++ b/pedagogy/models.py @@ -26,6 +26,7 @@ from django.conf import settings from django.core import validators from django.db import models from django.db.models import Exists, OuterRef +from django.db.models.query_utils import Q from django.urls import reverse from django.utils import timezone from django.utils.functional import cached_property @@ -159,7 +160,14 @@ class UECommentQuerySet(models.QuerySet): # so he can view non-moderated comments return self if user.has_perm("pedagogy.view_uecomment"): - return self.filter(reports=None) + return self.filter( + Q(author=user) + | ~Exists( + UECommentReport.objects.filter( + ~Q(reporter=user), comment=OuterRef("pk") + ) + ) + ).distinct() return self.filter(author=user) def annotate_is_reported(self) -> Self: @@ -261,7 +269,7 @@ class UEResult(models.Model): class UECommentReport(models.Model): - """Report an inapropriate comment.""" + """Report an inappropriate comment.""" comment = models.ForeignKey( UEComment,