@@ -78,18 +78,18 @@ class LearningResourceFilter(FilterSet):
7878 topic = CharInFilter (
7979 label = "Topics covered by the resources. Load the '/api/v1/topics' endpoint "
8080 "for a list of topics" ,
81- method = "filter_topic " ,
81+ field_name = "topics__name__iexact " ,
8282 )
8383
8484 course_feature = CharInFilter (
8585 label = "Content feature for the resources. Load the 'api/v1/course_features' "
8686 "endpoint for a list of course features" ,
87- method = "filter_course_feature " ,
87+ field_name = "content_tags__name__iexact " ,
8888 )
8989
9090 readable_id = CharInFilter (
9191 label = "A unique text identifier for the resources" ,
92- method = "filter_readable_id " ,
92+ field_name = "readable_id " ,
9393 )
9494
9595 sortby = ChoiceFilter (
@@ -159,23 +159,11 @@ def filter_resource_category(self, queryset, _, value):
159159 )
160160 return queryset .filter (query_or_filters )
161161
162- def filter_readable_id (self , queryset , _ , value ):
163- """Readable id filter for leaarning resources"""
164- return multi_or_filter (queryset , "readable_id" , value )
165-
166162 def filter_level (self , queryset , _ , value ):
167163 """Level Filter for learning resources"""
168164 values = [[LevelType [val ].name ] for val in value ]
169165 return multi_or_filter (queryset , "runs__level__contains" , values )
170166
171- def filter_topic (self , queryset , _ , value ):
172- """Topic Filter for learning resources"""
173- return multi_or_filter (queryset , "topics__name__iexact" , value )
174-
175- def filter_course_feature (self , queryset , _ , value ):
176- """Course Filter for learning resources"""
177- return multi_or_filter (queryset , "content_tags__name__iexact" , value )
178-
179167 def filter_sortby (self , queryset , _ , value ):
180168 """Sort the queryset in the order specified by the value"""
181169 sort_param = LEARNING_RESOURCE_SORTBY_OPTIONS [value ]["sort" ]
@@ -201,23 +189,23 @@ class ContentFileFilter(FilterSet):
201189
202190 run_id = NumberInFilter (
203191 label = "The id of the learning resource run the content file belongs to" ,
204- method = "filter_run_id " ,
192+ field_name = "run_id " ,
205193 )
206194
207195 resource_id = NumberInFilter (
208196 label = "The id of the learning resource the content file belongs to" ,
209- method = "filter_resource_id " ,
197+ field_name = "run__learning_resource__id " ,
210198 )
211199
212200 content_feature_type = CharInFilter (
213201 label = "Content feature type for the content file. Load the "
214202 "'api/v1/course_features' endpoint for a list of course features" ,
215- method = "filter_content_feature_type " ,
203+ field_name = "content_tags__name__iexact " ,
216204 )
217205
218206 edx_module_id = CharInFilter (
219207 label = "The edx module id of the content file" ,
220- method = "filter_edx_module_id " ,
208+ field_name = "edx_module_id__iexact " ,
221209 )
222210
223211 offered_by = MultipleChoiceFilter (
@@ -236,30 +224,6 @@ class ContentFileFilter(FilterSet):
236224 choices = ([(platform .name , platform .value ) for platform in PlatformType ]),
237225 )
238226
239- def filter_run_id (self , queryset , _ , value ):
240- """Run ID Filter for contentfiles"""
241- return multi_or_filter (queryset , "run_id" , value )
242-
243- def filter_resource_id (self , queryset , _ , value ):
244- """Resource ID Filter for contentfiles"""
245- return multi_or_filter (queryset , "run__learning_resource__id" , value )
246-
247- def filter_run_readable_id (self , queryset , _ , value ):
248- """Run Readable ID Filter for contentfiles"""
249- return multi_or_filter (queryset , "run__run_id" , value )
250-
251- def filter_resource_readable_id (self , queryset , _ , value ):
252- """Resource Readable ID Filter for contentfiles"""
253- return multi_or_filter (queryset , "run__learning_resource__readable_id" , value )
254-
255- def filter_content_feature_type (self , queryset , _ , value ):
256- """Content feature type filter for contentfiles"""
257- return multi_or_filter (queryset , "content_tags__name__iexact" , value )
258-
259- def filter_edx_module_id (self , queryset , _ , value ):
260- """Edx module id Filter for contentfiles"""
261- return multi_or_filter (queryset , "edx_module_id__iexact" , value )
262-
263227 class Meta :
264228 model = ContentFile
265229 fields = []
@@ -270,25 +234,17 @@ class TopicFilter(FilterSet):
270234
271235 name = CharInFilter (
272236 label = "Topic name" ,
273- method = "filter_name " ,
237+ field_name = "name__iexact " ,
274238 )
275239 parent_topic_id = NumberInFilter (
276240 label = "Parent topic ID" ,
277- method = "filter_parent_topic_id " ,
241+ field_name = "parent_id " ,
278242 )
279243 is_toplevel = BooleanFilter (
280244 label = "Filter top-level topics" ,
281245 method = "filter_toplevel" ,
282246 )
283247
284- def filter_name (self , queryset , _ , values ):
285- """Filter by topic name"""
286- return multi_or_filter (queryset , "name__iexact" , values )
287-
288248 def filter_toplevel (self , queryset , _ , value ):
289249 """Filter by top-level (parent == null)"""
290250 return queryset .filter (parent__isnull = value )
291-
292- def filter_parent_topic_id (self , queryset , _ , values ):
293- """Get direct children of a topic"""
294- return queryset .filter (parent_id__in = values )
0 commit comments