def courses(request): all_courses = Course.get_courses() filters_active = [] sort_active = '' if request.method == "GET": form = FilterAndSortForm(request.GET) if form.is_valid(): filters = form.cleaned_data.get('filter_by') sort_val = form.cleaned_data.get('sort_by') sort_result = Course.get_sorted_courses(all_courses, sort_val) filter_result = Course.get_filtered_courses(sort_result['result'], filters) all_courses = filter_result['result'] filters_active = filter_result['active'] sort_active = sort_result['active'] else: form = FilterAndSortForm() context = {'all_courses': all_courses, 'filters': filters_active, 'sort': sort_active} context['form'] = form return render(request, 'homepage/courses/courses.html', context)
def test_get_filtered_courses_active_filters(all_courses, filters_to_active): for key, val in filters_to_active.items(): assert Course.get_filtered_courses(all_courses, [key])['active'][0] == val
def test_get_filtered_courses_result(all_courses, filters_to_results): for key, val in filters_to_results.items(): assert list(Course.get_filtered_courses(all_courses, [key])['result']) == list(val)