From aceb77ffb9405326c304c19806e428df740a8a61 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Tue, 22 Dec 2020 03:18:43 +0100 Subject: [PATCH] More API filters for the activity app --- apps/activity/api/views.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/apps/activity/api/views.py b/apps/activity/api/views.py index 8d555b3b..16ca9054 100644 --- a/apps/activity/api/views.py +++ b/apps/activity/api/views.py @@ -18,7 +18,7 @@ class ActivityTypeViewSet(ReadProtectedModelViewSet): queryset = ActivityType.objects.all() serializer_class = ActivityTypeSerializer filter_backends = [DjangoFilterBackend] - filterset_fields = ['name', 'can_invite', ] + filterset_fields = ['name', 'manage_entries', 'can_invite', 'guest_entry_fee', ] class ActivityViewSet(ReadProtectedModelViewSet): @@ -29,8 +29,14 @@ class ActivityViewSet(ReadProtectedModelViewSet): """ queryset = Activity.objects.all() serializer_class = ActivitySerializer - filter_backends = [DjangoFilterBackend] - filterset_fields = ['name', 'description', 'activity_type', ] + filter_backends = [DjangoFilterBackend, SearchFilter] + filterset_fields = ['name', 'description', 'activity_type', 'location', 'creater', 'organizer', 'attendees_club', + 'date_start', 'date_end', 'valid', 'open', ] + search_fields = ['$name', '$description', '$location', '$creater__last_name', '$creater__first_name', + '$creater__email', '$creater__note__alias__name', '$creater__note__alias__normalized_name', + '$organizer__name', '$organizer__email', '$organizer__note__alias__name', + '$organizer__note__alias__normalized_name', '$attendees_club__name', '$attendees_club__email', + '$attendees_club__note__alias__name', '$attendees_club__note__alias__normalized_name', ] class GuestViewSet(ReadProtectedModelViewSet): @@ -41,8 +47,11 @@ class GuestViewSet(ReadProtectedModelViewSet): """ queryset = Guest.objects.all() serializer_class = GuestSerializer - filter_backends = [SearchFilter] - search_fields = ['$last_name', '$first_name', '$inviter__alias__name', '$inviter__alias__normalized_name', ] + filter_backends = [DjangoFilterBackend, SearchFilter] + filterset_fields = ['activity', 'activity__name', 'last_name', 'first_name', 'inviter', 'inviter__alias__name', + 'inviter__alias__normalized_name', ] + search_fields = ['$activity__name', '$last_name', '$first_name', '$inviter__user__email', '$inviter__alias__name', + '$inviter__alias__normalized_name', ] class EntryViewSet(ReadProtectedModelViewSet): @@ -53,5 +62,7 @@ class EntryViewSet(ReadProtectedModelViewSet): """ queryset = Entry.objects.all() serializer_class = EntrySerializer - filter_backends = [SearchFilter] - search_fields = ['$last_name', '$first_name', '$inviter__alias__name', '$inviter__alias__normalized_name', ] + filter_backends = [DjangoFilterBackend, SearchFilter] + filterset_fields = ['activity', 'time', 'note', 'guest', ] + search_fields = ['$activity__name', '$note__user__email', '$note__alias__name', '$note__alias__normalized_name', + '$guest__last_name', '$guest__first_name', ]