Coverage for apps/organizations/filters.py: 88%

12 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-09-08 12:47 -0600

1import django_filters 

2 

3from base.utils import get_subclass_as_dict 

4 

5from .models import OrganizationUpload 

6 

7 

8class OrganizationUploadFilter(django_filters.rest_framework.FilterSet): 

9 ctype_dict = get_subclass_as_dict(OrganizationUpload) 

10 

11 organization_upload_type = django_filters.ChoiceFilter( 

12 method="organization_upload_type_filter", 

13 choices=list(ctype_dict.items()), 

14 ) 

15 

16 def organization_upload_type_filter(self, queryset, name, value): 

17 selected_organization_upload_type = self.ctype_dict[value] if value in self.ctype_dict.keys() else None 

18 return queryset.instance_of(selected_organization_upload_type) 

19 

20 class Meta: 

21 model = OrganizationUpload 

22 fields = ["organization_upload_type"]