@@ -6,26 +6,8 @@ class NestedFilterExtension(DjangoFilterExtension):
6
6
target_class = "openarchiefbeheer.destruction.api.backends.NestedFilterBackend"
7
7
priority = 1
8
8
9
- def get_nested_filters (self , auto_schema ):
10
- nested_filterset_class = self .target .get_nested_filterset_class (
11
- auto_schema .view
12
- )
13
- model = nested_filterset_class ._meta .model
14
-
15
- result = []
16
- with add_trace_message (nested_filterset_class ):
17
- for field_name , filter_field in nested_filterset_class .base_filters .items ():
18
- result += self .resolve_filter_field (
19
- auto_schema , model , nested_filterset_class , field_name , filter_field
20
- )
21
- return result
22
-
23
- def get_main_filters (self , auto_schema ):
24
- # We need to override the parent `get_schema_operation_parameters`
25
- # because it does not support using the prefix in the field name
26
- filterset_class = self .target .get_filterset_class (auto_schema .view )
9
+ def _get_filters (self , auto_schema , filterset_class , prefix = "" ):
27
10
model = filterset_class ._meta .model
28
- prefix = auto_schema .view .filterset_kwargs .get ("prefix" , "" )
29
11
30
12
result = []
31
13
with add_trace_message (filterset_class ):
@@ -34,11 +16,25 @@ def get_main_filters(self, auto_schema):
34
16
auto_schema ,
35
17
model ,
36
18
filterset_class ,
37
- f"{ prefix } -{ field_name } " ,
19
+ f"{ prefix } -{ field_name } " if prefix else field_name ,
38
20
filter_field ,
39
21
)
40
22
return result
41
23
24
+ def get_nested_filters (self , auto_schema ):
25
+ nested_filterset_class = self .target .get_nested_filterset_class (
26
+ auto_schema .view
27
+ )
28
+ return self ._get_filters (auto_schema , nested_filterset_class )
29
+
30
+ def get_main_filters (self , auto_schema ):
31
+ # We need to override the parent `get_schema_operation_parameters`
32
+ # because it does not support using the prefix in the field name
33
+ filterset_class = self .target .get_filterset_class (auto_schema .view )
34
+ prefix = auto_schema .view .filterset_kwargs .get ("prefix" , "" )
35
+
36
+ return self ._get_filters (auto_schema , filterset_class , prefix )
37
+
42
38
def get_schema_operation_parameters (self , auto_schema , * args , ** kwargs ) -> list :
43
39
main_filters = self .get_main_filters (auto_schema )
44
40
nested_filters = self .get_nested_filters (auto_schema )
0 commit comments