def schools(request, school_slug, max_count=24): school = get_object_or_404(School, slug=school_slug) projects = get_listed_courses() form = _language_prefs(request) context = { 'schools': School.objects.all(), 'popular_tags': get_popular_tags(), 'form': form, 'load_more_url': reverse('learn_schools', kwargs={"school_slug": school_slug}), 'infinite_scroll': request.GET.get('infinite_scroll', False), 'learn_school': school, } #projects = projects.filter(school=school) projects = get_courses_by_list(school_slug, projects) return _filter_and_return(request, context, projects, max_count)
def test_get_listed_courses(self): deleted_project = Project(deleted=True, test=False) deleted_project.save() not_listed_project = Project(not_listed=True, test=False) not_listed_project.save() under_dev_project = Project(name="under_dev:default", test=False) under_dev_project.save() archived_project = Project(under_development=False, archived=True) archived_project.save() test_project = Project(under_development=False, test=True) test_project.save() project = Project(name="listed", under_development=False, test=False) project.save() listed_projects = get_listed_courses() self.assertFalse(deleted_project in listed_projects) self.assertFalse(not_listed_project in listed_projects) self.assertFalse(under_dev_project in listed_projects) self.assertFalse(test_project in listed_projects)
def fresh(request, max_count=24): context = { "learn_fresh": True, 'schools': School.objects.all() } projects = get_listed_courses()[:24] return _filter_and_return(request, context, projects, max_count)
def learn(request, max_count=24): projects = get_listed_courses().order_by('-created_on') get_params = request.GET.copy() if not 'language' in get_params: language = request.session.get('search_language') or 'all' get_params['language'] = language form = project_forms.ProjectsFilterForm(get_params) context = { 'schools': School.objects.all(), 'popular_tags': get_popular_tags(), 'form': form, 'learn_url': reverse('learn_all'), 'infinite_scroll': request.GET.get('infinite_scroll', False), } if form.is_valid(): language = form.cleaned_data['language'] request.session['search_language'] = language if language != 'all': projects = projects.filter(language__startswith=language) reviewed = form.cleaned_data['reviewed'] if reviewed: accepted_reviews = Review.objects.filter( accepted=True).values('project_id') projects = projects.filter(id__in=accepted_reviews) return _filter_and_return(request, context, projects, max_count)
def schools(request, school_slug, max_count=24): school = get_object_or_404(School, slug=school_slug) projects = get_listed_courses().order_by('-created_on') get_params = request.GET.copy() if not 'language' in get_params: language = request.session.get('search_language') or 'all' get_params['language'] = language form = project_forms.ProjectsFilterForm(get_params) context = { 'schools': School.objects.all(), 'popular_tags': get_popular_tags(), 'form': form, 'learn_url': reverse('learn_all'), 'infinite_scroll': request.GET.get('infinite_scroll', False), 'learn_school': school, } projects = projects.filter(school=school) if form.is_valid(): language = form.cleaned_data['language'] request.session['search_language'] = language if language != 'all': projects = projects.filter(language__startswith=language) return _filter_and_return(request, context, projects, max_count)
def test_remove_course(self): """ test that courses are removed from the course list """ add_course_listing(**self.test_course) remove_course_listing(self.test_course['course_url']) listed_courses = get_listed_courses() self.assertTrue(len(listed_courses) == 0)
def test_add_course_listing(self): """ test that courses are added to the course list """ add_course_listing(**self.test_course) listed_courses = get_listed_courses() self.assertTrue(len(listed_courses) == 1) self.assertTrue(self.test_course['course_url'] == listed_courses[0].url)
def test_add_course_listing(self): """ test that courses are added to the course list """ add_course_listing(**self.test_course) listed_courses = get_listed_courses() self.assertTrue(len(listed_courses) == 1) self.assertTrue( self.test_course['course_url'] == listed_courses[0].url)
def test_remove_course(self): """ test that courses are removed from the course list """ self.assertEquals(CourseTags.objects.count(), 0) add_course_listing(**self.test_course) self.assertEquals(CourseTags.objects.count(), 3) remove_course_listing(self.test_course['course_url']) listed_courses = get_listed_courses() self.assertEquals(len(listed_courses), 0) self.assertEquals(CourseTags.objects.count(), 0)
def list(request, list_name, max_count=24): projects = get_listed_courses() get_params = request.GET.copy() form = _language_prefs(request) context = { 'schools': School.objects.all(), 'popular_tags': get_popular_tags(), 'form': form, 'load_more_url': reverse('learn_list', kwargs={"list_name": list_name}), 'infinite_scroll': request.GET.get('infinite_scroll', False), } projects = get_courses_by_list(list_name, projects) context['learn_{0}'.format(list_name)] = True return _filter_and_return(request, context, projects, max_count)
def test_update_course(self): """ test that course data gets updated """ add_course_listing(**self.test_course) updated_course = { "title": 'New Title', "description": "New description", "data_url": "http://example.com", "language": "es", "thumbnail_url": "http://p2pu.org/media/new_image.png" } update_course_listing(self.test_course['course_url'] ,**updated_course) listed_courses = get_listed_courses() self.assertTrue(len(listed_courses) == 1) self.assertTrue(listed_courses[0].title == updated_course['title']) self.assertTrue(listed_courses[0].description == updated_course['description']) self.assertTrue(listed_courses[0].data_url == updated_course['data_url']) self.assertTrue(listed_courses[0].language == updated_course['language']) self.assertTrue(listed_courses[0].thumbnail_url == updated_course['thumbnail_url'])
def test_course_language(self): """ test that course languages are handled correctly """ add_course_listing(**self.test_course) es_course = { "course_url": "http://p2pu.org/courses/2/", "title": "Course title", "description": "Short description", "data_url": "", "language": "es", "thumbnail_url": "http://p2pu.org/media/image.png", "tags": ["tag1", "tag2", "tag3"] } add_course_listing(**es_course) es_course['course_url'] = "http://p2pu.org/courses/3/" add_course_listing(**es_course) nl_course = { "course_url": "http://p2pu.org/courses/4/", "title": "Course title", "description": "Short description", "data_url": "", "language": "nl", "thumbnail_url": "http://p2pu.org/media/image.png", "tags": ["tag1", "tag2", "tag3"] } add_course_listing(**nl_course) course_list = get_listed_courses() self.assertTrue(len(course_list) == 4) languages = get_active_languages() self.assertTrue(len(languages) == 3) spanish_courses = get_courses_by_language("es") self.assertTrue(len(spanish_courses) == 2)
def test_update_course(self): """ test that course data gets updated """ add_course_listing(**self.test_course) updated_course = { "title": 'New Title', "description": "New description", "data_url": "http://example.com", "language": "es", "thumbnail_url": "http://p2pu.org/media/new_image.png" } update_course_listing(self.test_course['course_url'], **updated_course) listed_courses = get_listed_courses() self.assertTrue(len(listed_courses) == 1) self.assertTrue(listed_courses[0].title == updated_course['title']) self.assertTrue( listed_courses[0].description == updated_course['description']) self.assertTrue( listed_courses[0].data_url == updated_course['data_url']) self.assertTrue( listed_courses[0].language == updated_course['language']) self.assertTrue( listed_courses[0].thumbnail_url == updated_course['thumbnail_url'])
def fresh(request, max_count=24): context = {"learn_fresh": True, 'schools': School.objects.all()} projects = get_listed_courses()[:24] return _filter_and_return(request, context, projects, max_count)