Example #1
0
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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
    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)
Example #8
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)
Example #9
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)
Example #10
0
    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)
Example #11
0
    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)
Example #12
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)
Example #13
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)
Example #14
0
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)
Example #15
0
    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'])
Example #16
0
    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)
Example #17
0
    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)
Example #18
0
    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'])
Example #19
0
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)