mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	More API filters for the wei app
This commit is contained in:
		@@ -1,7 +1,8 @@
 | 
				
			|||||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
 | 
					# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
 | 
				
			||||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django_filters.rest_framework import DjangoFilterBackend
 | 
					from django_filters.rest_framework import DjangoFilterBackend
 | 
				
			||||||
from rest_framework.filters import SearchFilter
 | 
					from rest_framework.filters import OrderingFilter, SearchFilter
 | 
				
			||||||
from api.viewsets import ReadProtectedModelViewSet
 | 
					from api.viewsets import ReadProtectedModelViewSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .serializers import WEIClubSerializer, BusSerializer, BusTeamSerializer, WEIRoleSerializer, \
 | 
					from .serializers import WEIClubSerializer, BusSerializer, BusTeamSerializer, WEIRoleSerializer, \
 | 
				
			||||||
@@ -17,9 +18,12 @@ class WEIClubViewSet(ReadProtectedModelViewSet):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    queryset = WEIClub.objects.all()
 | 
					    queryset = WEIClub.objects.all()
 | 
				
			||||||
    serializer_class = WEIClubSerializer
 | 
					    serializer_class = WEIClubSerializer
 | 
				
			||||||
    filter_backends = [SearchFilter, DjangoFilterBackend]
 | 
					    filter_backends = [DjangoFilterBackend, SearchFilter]
 | 
				
			||||||
    search_fields = ['$name', ]
 | 
					    filterset_fields = ['name', 'year', 'date_start', 'date_end', 'email', 'note__alias__name',
 | 
				
			||||||
    filterset_fields = ['name', 'year', ]
 | 
					                        'note__alias__normalized_name', 'parent_club', 'parent_club__name', 'require_memberships',
 | 
				
			||||||
 | 
					                        'membership_fee_paid', 'membership_fee_unpaid', 'membership_duration', 'membership_start',
 | 
				
			||||||
 | 
					                        'membership_end', ]
 | 
				
			||||||
 | 
					    search_fields = ['$name', '$email', '$note__alias__name', '$note__alias__normalized_name', ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BusViewSet(ReadProtectedModelViewSet):
 | 
					class BusViewSet(ReadProtectedModelViewSet):
 | 
				
			||||||
@@ -30,9 +34,9 @@ class BusViewSet(ReadProtectedModelViewSet):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    queryset = Bus.objects
 | 
					    queryset = Bus.objects
 | 
				
			||||||
    serializer_class = BusSerializer
 | 
					    serializer_class = BusSerializer
 | 
				
			||||||
    filter_backends = [SearchFilter, DjangoFilterBackend]
 | 
					    filter_backends = [DjangoFilterBackend, SearchFilter]
 | 
				
			||||||
    search_fields = ['$name', ]
 | 
					    filterset_fields = ['name', 'wei', 'description', ]
 | 
				
			||||||
    filterset_fields = ['name', 'wei', ]
 | 
					    search_fields = ['$name', '$wei__name', '$description', ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BusTeamViewSet(ReadProtectedModelViewSet):
 | 
					class BusTeamViewSet(ReadProtectedModelViewSet):
 | 
				
			||||||
@@ -43,9 +47,9 @@ class BusTeamViewSet(ReadProtectedModelViewSet):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    queryset = BusTeam.objects
 | 
					    queryset = BusTeam.objects
 | 
				
			||||||
    serializer_class = BusTeamSerializer
 | 
					    serializer_class = BusTeamSerializer
 | 
				
			||||||
    filter_backends = [SearchFilter, DjangoFilterBackend]
 | 
					    filter_backends = [DjangoFilterBackend, SearchFilter]
 | 
				
			||||||
    search_fields = ['$name', ]
 | 
					    filterset_fields = ['name', 'bus', 'color', 'description', 'bus__wei', ]
 | 
				
			||||||
    filterset_fields = ['name', 'bus', 'bus__wei', ]
 | 
					    search_fields = ['$name', '$bus__name', '$bus__wei__name', '$description', ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class WEIRoleViewSet(ReadProtectedModelViewSet):
 | 
					class WEIRoleViewSet(ReadProtectedModelViewSet):
 | 
				
			||||||
@@ -56,8 +60,9 @@ class WEIRoleViewSet(ReadProtectedModelViewSet):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    queryset = WEIRole.objects
 | 
					    queryset = WEIRole.objects
 | 
				
			||||||
    serializer_class = WEIRoleSerializer
 | 
					    serializer_class = WEIRoleSerializer
 | 
				
			||||||
    filter_backends = [SearchFilter]
 | 
					    filter_backends = [DjangoFilterBackend, SearchFilter]
 | 
				
			||||||
    search_fields = ['$name', ]
 | 
					    filterset_fields = ['name', 'permissions', 'for_club', 'membership_set__user', ]
 | 
				
			||||||
 | 
					    SearchFilter = ['$name', '$for_club__name', ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class WEIRegistrationViewSet(ReadProtectedModelViewSet):
 | 
					class WEIRegistrationViewSet(ReadProtectedModelViewSet):
 | 
				
			||||||
@@ -68,9 +73,16 @@ class WEIRegistrationViewSet(ReadProtectedModelViewSet):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    queryset = WEIRegistration.objects
 | 
					    queryset = WEIRegistration.objects
 | 
				
			||||||
    serializer_class = WEIRegistrationSerializer
 | 
					    serializer_class = WEIRegistrationSerializer
 | 
				
			||||||
    filter_backends = [SearchFilter, DjangoFilterBackend]
 | 
					    filter_backends = [DjangoFilterBackend, SearchFilter]
 | 
				
			||||||
    search_fields = ['$user__username', ]
 | 
					    filterset_fields = ['user', 'user__username', 'user__first_name', 'user__last_name', 'user__email',
 | 
				
			||||||
    filterset_fields = ['user', 'wei', ]
 | 
					                        'user__note__alias__name', 'user__note__alias__normalized_name', 'wei', 'wei__name',
 | 
				
			||||||
 | 
					                        'wei__email', 'wei__note__alias__name', 'wei__note__alias__normalized_name', 'wei__year',
 | 
				
			||||||
 | 
					                        'soge_credit', 'caution_check', 'birth_date', 'gender', 'clothing_cut', 'clothing_size',
 | 
				
			||||||
 | 
					                        'first_year', 'emergency_contact_name', 'emergency_contact_phone', ]
 | 
				
			||||||
 | 
					    search_fields = ['$user__username', '$user__first_name', '$user__last_name', '$user__email',
 | 
				
			||||||
 | 
					                     '$user__note__alias__name', '$user__note__alias__normalized_name', '$wei__name',
 | 
				
			||||||
 | 
					                     '$wei__email', '$wei__note__alias__name', '$wei__note__alias__normalized_name',
 | 
				
			||||||
 | 
					                     '$health_issues', '$emergency_contact_name', '$emergency_contact_phone', ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class WEIMembershipViewSet(ReadProtectedModelViewSet):
 | 
					class WEIMembershipViewSet(ReadProtectedModelViewSet):
 | 
				
			||||||
@@ -81,6 +93,13 @@ class WEIMembershipViewSet(ReadProtectedModelViewSet):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    queryset = WEIMembership.objects
 | 
					    queryset = WEIMembership.objects
 | 
				
			||||||
    serializer_class = WEIMembershipSerializer
 | 
					    serializer_class = WEIMembershipSerializer
 | 
				
			||||||
    filter_backends = [SearchFilter, DjangoFilterBackend]
 | 
					    filter_backends = [DjangoFilterBackend, OrderingFilter, SearchFilter]
 | 
				
			||||||
    search_fields = ['$user__username', '$bus__name', '$team__name', ]
 | 
					    filterset_fields = ['club__name', 'club__email', 'club__note__alias__name', 'club__note__alias__normalized_name',
 | 
				
			||||||
    filterset_fields = ['user', 'club', 'bus', 'team', ]
 | 
					                        'user__username', 'user__last_name', 'user__first_name', 'user__email',
 | 
				
			||||||
 | 
					                        'user__note__alias__name', 'user__note__alias__normalized_name', 'date_start', 'date_end',
 | 
				
			||||||
 | 
					                        'fee', 'roles', 'bus', 'bus__name', 'team', 'team__name', 'registration', ]
 | 
				
			||||||
 | 
					    ordering_fields = ['id', 'date_start', 'date_end', ]
 | 
				
			||||||
 | 
					    search_fields = ['$club__name', '$club__email', '$club__note__alias__name', '$club__note__alias__normalized_name',
 | 
				
			||||||
 | 
					                     '$user__username', '$user__last_name', '$user__first_name', '$user__email',
 | 
				
			||||||
 | 
					                     '$user__note__alias__name', '$user__note__alias__normalized_name', '$roles__name',
 | 
				
			||||||
 | 
					                     '$bus__name', '$team__name', ]
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user