예제 #1
0
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)
예제 #2
0
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
예제 #3
0
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)