Fix queryset filtering on new soft deletes

This commit is contained in:
Aarni Halinen
2021-01-15 00:27:41 +02:00
parent c96ff2f112
commit 0a31492733
+9 -9
View File
@@ -53,16 +53,16 @@ class EventViewSet(ModelViewSet):
if self.request.user.is_authenticated or \
self.request.method == 'POST' or \
self.request.method == 'PUT':
return Event.objects.all().prefetch_related(
return Event.objects.filter(deleted=False).prefetch_related(
Prefetch('signupForm', queryset=SignupForm.objects.filter(deleted=False), to_attr='filtered_signup_forms')
)
since = self.request.query_params.get('since', None)
if since:
return Event.objects.filter(visible=True, end_time__gt=since).order_by('start_time').prefetch_related(
return Event.objects.filter(deleted=False, visible=True, end_time__gt=since).order_by('start_time').prefetch_related(
Prefetch('signupForm', queryset=SignupForm.objects.filter(deleted=False, visible=True), to_attr='filtered_signup_forms')
)
return Event.objects.filter(visible=True, end_time__gt=timezone.now()).order_by('start_time').prefetch_related(
return Event.objects.filter(deleted=False, visible=True, end_time__gt=timezone.now()).order_by('start_time').prefetch_related(
Prefetch('signupForm', queryset=SignupForm.objects.filter(deleted=False, visible=True), to_attr='filtered_signup_forms')
)
@@ -112,8 +112,8 @@ class SignupFormViewSet(ModelViewSet):
def get_queryset(self):
if self.request.user.is_authenticated:
return SignupForm.objects.all().order_by('start_time')
return SignupForm.objects.filter(visible=True, end_time__gt=timezone.now()).order_by('start_time')
return SignupForm.objects.filter(deleted=False).order_by('start_time')
return SignupForm.objects.filter(deleted=False, visible=True, end_time__gt=timezone.now()).order_by('start_time')
def destroy(self, request, pk=None, *args, **kwargs):
try:
@@ -230,9 +230,9 @@ class FeedViewSet(ModelViewSet):
def get_queryset(self):
if self.request.user.is_authenticated:
return Feed.objects.all().order_by('publish_time')
return Feed.objects.filter(deleted=False).order_by('publish_time')
else:
objs = Feed.objects.filter(visible=True).order_by('publish_time')
objs = Feed.objects.filter(deleted=False, visible=True).order_by('publish_time')
# TODO: Bad filtering. Rewrite!
result_ids = []
@@ -268,8 +268,8 @@ class JobAdViewSet(ModelViewSet):
def get_queryset(self):
if self.request.user.is_authenticated:
return JobAd.objects.all()
return JobAd.objects.filter(visible=True, autohide_at__gt=timezone.now())
return JobAd.objects.filter(deleted=False)
return JobAd.objects.filter(deleted=False, visible=True, autohide_at__gt=timezone.now())
def destroy(self, request, pk=None, *args, **kwargs):
try: