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)
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))
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))
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))
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))
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))
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 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))
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)
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))
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)
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))
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 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))
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))
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))