diff --git a/watchlist/models.py b/watchlist/models.py index 01e8e8a..85d72e7 100644 --- a/watchlist/models.py +++ b/watchlist/models.py @@ -29,11 +29,11 @@ class Movie(models.Model): @property def score(self): - return reduce(lambda result,v: result+v.vote, self.movievote_set.all(), 0) + return reduce(lambda result,v: result+v.vote, self.movievote_set.filter(user__is_active=True).all(), 0) @property def seen_score(self): - return reduce(lambda result,v: result+int(v.seen), self.movievote_set.all(), 0) + return reduce(lambda result,v: result+int(v.seen), self.movievote_set.filter(user__is_active=True).all(), 0) def __str__(self): return self.name diff --git a/watchlist/views.py b/watchlist/views.py index 36c36eb..08c2a91 100644 --- a/watchlist/views.py +++ b/watchlist/views.py @@ -1,3 +1,4 @@ +from django.db.models import Q from django.http import HttpResponseRedirect, HttpResponseBadRequest, HttpResponseForbidden from django.views import generic from django.views.decorators.http import require_http_methods, require_safe, require_POST @@ -36,7 +37,7 @@ class DetailView(generic.DetailView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - votes = self.object.movievote_set.all() + votes = self.object.movievote_set.filter(user__is_active=True).all() user_vote = None if self.request.user.is_authenticated: user_vote = votes.filter(user=self.request.user).first() @@ -70,7 +71,7 @@ class EditView(generic.DetailView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - context["users"] = User.objects.all() if self.request.user.has_perm("watchlist.moderate_movies") else None + context["users"] = User.objects.filter(Q(is_active=True) | Q(id=self.object.suggested_by.id)).all() if self.request.user.has_perm("watchlist.moderate_movies") else None context["error"] = self.request.GET.get("error", None) return context