Exemple #1
0
    def test_course_list(self):
        """ test that course can be added to and removed from a list """

        add_course_listing(**self.test_course)
        create_list("test_list", "Test List", "")
        add_course_to_list(self.test_course["course_url"], "test_list")
        course_list = get_courses_by_list("test_list")

        self.assertTrue(len(course_list) == 1)

        remove_course_from_list(self.test_course["course_url"], "test_list")
        course_list = get_courses_by_list("test_list")

        self.assertTrue(len(course_list) == 0)
Exemple #2
0
    def test_course_list(self):
        """ test that course can be added to and removed from a list """

        add_course_listing(**self.test_course)
        create_list("test_list", "Test List", "")
        add_course_to_list(self.test_course["course_url"], "test_list")
        course_list = get_courses_by_list("test_list")

        self.assertTrue(len(course_list) == 1)

        remove_course_from_list(self.test_course["course_url"], "test_list")
        course_list = get_courses_by_list("test_list")

        self.assertTrue(len(course_list) == 0)
Exemple #3
0
def home(request, slug):
    # this is manual redirect to the new school of open page.
    # It is not ideal by any means, so if you have better way of doing it, please fix it.
    if slug == 'school-of-open':
        return redirect_to(request, 'http://schoolofopen.p2pu.org')

    school = get_object_or_404(School, slug=slug)
    user = request.user
    #featured = school.featured.filter(not_listed=False,
    #    archived=False, deleted=False)
    featured = get_courses_by_list("{0}_featured".format(slug))
    featured_project_sets = school.project_sets.filter(
        featured=True)
    if user.is_authenticated():
        profile = user.get_profile()
        is_organizer = school.organizers.filter(id=profile.id).exists()
    else:
        is_organizer = False
    context = {
        'school': school,
        'is_organizer': is_organizer,
        'featured': featured,
        'featured_project_sets': featured_project_sets,
    }
    context.update(get_google_tracking_context(school))
    return render_to_response('schools/home.html', context,
        context_instance=RequestContext(request))
Exemple #4
0
def edit_membership(request, slug):
    school = get_object_or_404(School, slug=slug)
    if request.method == 'POST':
        form = school_forms.SchoolAddCourseForm(request.POST)
        if form.is_valid():
            course_url = form.cleaned_data['course_url']
            try:
                add_course_to_list(course_url, slug)
                messages.success(request,
                    _('The course was added to this school.'))
                return http.HttpResponseRedirect(reverse('schools_edit_membership',
                    kwargs=dict(slug=school.slug)))
            except Exception as e:   
                messages.error(request, e.message)
        else:
            messages.error(request,
                _("There was an error adding %s to this school.") % slug)
    else:
        form = school_forms.SchoolAddCourseForm()
    return render_to_response('schools/school_edit_membership.html', {
        'school': school,
        'form': form,
        'courses': get_courses_by_list(slug),
        'membership_tab': True,
    }, context_instance=RequestContext(request))
Exemple #5
0
def edit_featured(request, slug):
    school = get_object_or_404(School, slug=slug)
    if request.method == 'POST':
        form = school_forms.SchoolAddCourseForm(request.POST)
        if form.is_valid():
            course_url = form.cleaned_data['course_url']
            try:
                add_course_to_list(course_url, '{0}_featured'.format(slug))
                msg = _('The course is now featured for this school.')
                messages.success(request, msg)
                return http.HttpResponseRedirect(
                    reverse('schools_edit_featured',
                            kwargs=dict(slug=school.slug)))
            except:
                pass
        msg = _("There was an error marking the course as featured.")
        messages.error(request, msg)
    else:
        form = school_forms.SchoolAddCourseForm()

    featured = get_courses_by_list("{0}_featured".format(slug))
    return render_to_response('schools/school_edit_featured.html', {
        'school': school,
        'form': form,
        'featured': featured,
        'featured_tab': True,
    },
                              context_instance=RequestContext(request))
Exemple #6
0
def edit_membership(request, slug):
    school = get_object_or_404(School, slug=slug)
    if request.method == 'POST':
        form = school_forms.SchoolAddCourseForm(request.POST)
        if form.is_valid():
            course_url = form.cleaned_data['course_url']
            try:
                add_course_to_list(course_url, slug)
                messages.success(request,
                                 _('The course was added to this school.'))
                return http.HttpResponseRedirect(
                    reverse('schools_edit_membership',
                            kwargs=dict(slug=school.slug)))
            except Exception as e:
                messages.error(request, e.message)
        else:
            messages.error(
                request,
                _("There was an error adding %s to this school.") % slug)
    else:
        form = school_forms.SchoolAddCourseForm()
    return render_to_response('schools/school_edit_membership.html', {
        'school': school,
        'form': form,
        'courses': get_courses_by_list(slug),
        'membership_tab': True,
    },
                              context_instance=RequestContext(request))
Exemple #7
0
def home(request, slug):
    # this is manual redirect to the new school of open page.
    # It is not ideal by any means, so if you have better way of doing it, please fix it.
    if slug == 'school-of-open':
        return redirect_to(request, 'http://schoolofopen.p2pu.org')

    school = get_object_or_404(School, slug=slug)
    user = request.user
    #featured = school.featured.filter(not_listed=False,
    #    archived=False, deleted=False)
    featured = get_courses_by_list("{0}_featured".format(slug))
    featured_project_sets = school.project_sets.filter(featured=True)
    if user.is_authenticated():
        profile = user.get_profile()
        is_organizer = school.organizers.filter(id=profile.id).exists()
    else:
        is_organizer = False
    context = {
        'school': school,
        'is_organizer': is_organizer,
        'featured': featured,
        'featured_project_sets': featured_project_sets,
    }
    context.update(get_google_tracking_context(school))
    return render_to_response('schools/home.html',
                              context,
                              context_instance=RequestContext(request))
Exemple #8
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)
Exemple #9
0
def edit_featured(request, slug):
    school = get_object_or_404(School, slug=slug)
    if request.method == 'POST':
        form = school_forms.SchoolAddCourseForm(request.POST)
        if form.is_valid():
            course_url = form.cleaned_data['course_url']
            try:
                add_course_to_list(course_url, '{0}_featured'.format(slug))
                msg = _('The course is now featured for this school.')
                messages.success(request, msg)
                return http.HttpResponseRedirect(reverse(
                    'schools_edit_featured', kwargs=dict(slug=school.slug)))
            except:
                pass
        msg = _("There was an error marking the course as featured.")
        messages.error(request, msg)
    else:
        form = school_forms.SchoolAddCourseForm()

    featured = get_courses_by_list("{0}_featured".format(slug))
    return render_to_response('schools/school_edit_featured.html', {
        'school': school,
        'form': form,
        'featured': featured,
        'featured_tab': True,
    }, context_instance=RequestContext(request))
Exemple #10
0
def featured(request, feature, 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),
    }

    projects = get_courses_by_list(feature, projects)
    context['learn_{0}'.format(feature)] = True

    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)
Exemple #11
0
def home(request):
    feed_entries = get_blog_feed()
    courses = _pick_n(get_courses_by_list("community"), 3)
    badges = _pick_n(get_featured_badges(), 3)

    return render_to_response('homepage/home.html', {
        'feed_entries':  feed_entries,
        'courses': courses,
        'badges': badges,
    }, context_instance=RequestContext(request))
Exemple #12
0
def learn(request, max_count=24):
    projects = get_courses_by_list('listed')
    
    form = _language_prefs(request)

    context = {
        'schools': School.objects.all(),
        'popular_tags': get_popular_tags(),
        'form': form,
        'load_more_url': reverse('learn_all'),
        'infinite_scroll': request.GET.get('infinite_scroll', False),
    }

    return _filter_and_return(request, context, projects, max_count)
Exemple #13
0
def learn(request, max_count=24):
    projects = get_courses_by_list('listed')

    form = _language_prefs(request)

    context = {
        'schools': School.objects.all(),
        'popular_tags': get_popular_tags(),
        'form': form,
        'load_more_url': reverse('learn_all'),
        'infinite_scroll': request.GET.get('infinite_scroll', False),
    }

    return _filter_and_return(request, context, projects, max_count)
Exemple #14
0
def splash(request):
    """Splash page we show to users who are not authenticated."""
    courses = get_courses_by_list("community")
    featured_count = min(4, len(courses))
    courses = random.sample(courses, featured_count)
    activities = Activity.objects.public()
    feed_entries = FeedEntry.objects.filter(page="splash").order_by("-created_on")[0:4]
    feed_url = settings.FEED_URLS["splash"]
    context = {
        "activities": activities,
        "featured_projects": courses,
        "feed_entries": feed_entries,
        "feed_url": feed_url,
        "domain": Site.objects.get_current().domain,
    }
    context.update(tracker_models.get_google_tracking_context())
    return render_to_response("dashboard/splash.html", context, context_instance=RequestContext(request))
Exemple #15
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)
Exemple #16
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)
Exemple #17
0
def splash(request):
    """Splash page we show to users who are not authenticated."""
    courses = get_courses_by_list("showcase")
    featured_count = min(4,len(courses))
    courses = random.sample(courses, featured_count)
    activities = Activity.objects.public()
    feed_entries = FeedEntry.objects.filter(
        page='splash').order_by('-created_on')[0:4]
    feed_url = settings.FEED_URLS['splash']
    context = {
        'activities': activities,
        'featured_projects': courses,
        'feed_entries': feed_entries,
        'feed_url': feed_url,
        'domain': Site.objects.get_current().domain,
    }
    context.update(tracker_models.get_google_tracking_context())
    return render_to_response('dashboard/splash.html',
        context, context_instance=RequestContext(request))
Exemple #18
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)
Exemple #19
0
def splash(request):
    """Splash page we show to users who are not authenticated."""
    courses = get_courses_by_list("community")
    featured_count = min(4, len(courses))
    courses = random.sample(courses, featured_count)
    activities = Activity.objects.public()
    feed_entries = FeedEntry.objects.filter(
        page='splash').order_by('-created_on')[0:4]
    feed_url = settings.FEED_URLS['splash']
    context = {
        'activities': activities,
        'featured_projects': courses,
        'feed_entries': feed_entries,
        'feed_url': feed_url,
        'domain': Site.objects.get_current().domain,
    }
    context.update(tracker_models.get_google_tracking_context())
    return render_to_response('dashboard/splash.html',
                              context,
                              context_instance=RequestContext(request))
Exemple #20
0
def home(request, slug):
    school = get_object_or_404(School, slug=slug)
    user = request.user
    #featured = school.featured.filter(not_listed=False,
    #    archived=False, deleted=False)
    featured = get_courses_by_list("{0}_featured".format(slug))
    featured_project_sets = school.project_sets.filter(
        featured=True)
    if user.is_authenticated():
        profile = user.get_profile()
        is_organizer = school.organizers.filter(id=profile.id).exists()
    else:
        is_organizer = False
    context = {
        'school': school,
        'is_organizer': is_organizer,
        'featured': featured,
        'featured_project_sets': featured_project_sets,
    }
    context.update(get_google_tracking_context(school))
    return render_to_response('schools/home.html', context,
        context_instance=RequestContext(request))