Rewrite Event and JobAd get_queryset
This commit is contained in:
+23
-35
@@ -95,13 +95,8 @@ class EventViewSet(ModelViewSet):
|
||||
search_fields = ("id", "tags", "isPublished", "signupForm")
|
||||
|
||||
def get_queryset(self):
|
||||
|
||||
# TODO: For create and update, this return old data in signupForm field (prefetched)...
|
||||
if (
|
||||
self.request.user.is_authenticated
|
||||
or self.request.method == "POST"
|
||||
or self.request.method == "PUT"
|
||||
):
|
||||
# TODO: For create and update, this returns old data in signupForm field (prefetched at the start of request)...
|
||||
if self.request.user.is_authenticated:
|
||||
return Event.objects.filter(deleted=False).prefetch_related(
|
||||
Prefetch(
|
||||
"signupForm",
|
||||
@@ -110,32 +105,23 @@ class EventViewSet(ModelViewSet):
|
||||
)
|
||||
)
|
||||
|
||||
# Hide deleted and unpublished objects...
|
||||
query = Q(deleted=False, isPublished=True)
|
||||
# and hide objects that are automatically unpublished
|
||||
hideQuery = Q(autoUnpublish=False) | Q(unpublishAt__gt=timezone.now())
|
||||
query.add(hideQuery, Q.AND)
|
||||
|
||||
since = self.request.query_params.get("since", None)
|
||||
if since:
|
||||
return (
|
||||
Event.objects.filter(
|
||||
deleted=False, isPublished=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(
|
||||
deleted=False, isPublished=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",
|
||||
)
|
||||
query.add(Q(end_time__gt=since), Q.AND)
|
||||
else:
|
||||
query.add(Q(end_time__gt=timezone.now()), Q.AND)
|
||||
|
||||
return Event.objects.filter(query).prefetch_related(
|
||||
Prefetch(
|
||||
"signupForm",
|
||||
queryset=SignupForm.objects.filter(deleted=False, visible=True),
|
||||
to_attr="filtered_signup_forms",
|
||||
)
|
||||
)
|
||||
|
||||
@@ -170,10 +156,12 @@ class JobAdViewSet(ModelViewSet):
|
||||
|
||||
def get_queryset(self):
|
||||
if self.request.user.is_authenticated:
|
||||
return JobAd.objects.filter(deleted=False)
|
||||
return JobAd.objects.filter(
|
||||
deleted=False, isPublished=True, unpublishAt__gt=timezone.now()
|
||||
)
|
||||
return JobAd.objects.filter(deleted=False).order_by("-publishAt")
|
||||
|
||||
query = Q(deleted=False, isPublished=True)
|
||||
hideQuery = Q(autoUnpublish=False) | Q(unpublishAt__gt=timezone.now())
|
||||
query.add(hideQuery, Q.AND)
|
||||
return JobAd.objects.filter(query).order_by("-publishAt")
|
||||
|
||||
def destroy(self, request, pk=None, *args, **kwargs):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user