def courses_index(request, subject=None): """ Args: subject (str): subject slug that allows to reverse course filtering urls. """ languages = get_courses_per_language() return render_to_response( 'course_pages/index.html', { "course_subjects": annotate_with_public_courses(CourseSubject.objects.by_score()), "universities": annotate_with_public_courses( University.objects.not_obsolete().by_score()), "languages": languages, "courses_count_starting_soon": Course.objects.starting_soon().count(), "courses_count_enrollment_ending_soon": Course.objects.enrollment_ends_soon().count(), "courses_count_new": Course.objects.new().count(), "courses_count_opened": Course.objects.opened().count(), "courses_count_started": Course.objects.started().count(), "courses_count_archived": Course.objects.archived().count(), "courses_count_browsable": Course.objects.browsable().count(), })
def courses_index(request, subject=None): """ Args: subject (str): subject slug that allows to reverse course filtering urls. """ return render_to_response('courses_api/index.html', { "course_subjects": annotate_with_public_courses(CourseSubject.objects.by_score()), "universities": annotate_with_public_courses(University.objects.active_by_score()), "courses_count_start_soon": Course.objects.start_soon().count(), "courses_count_end_soon": Course.objects.end_soon().count(), "courses_count_new": Course.objects.new().count(), })
def test_ability_to_count_public_courses_for_course_subjects(self): course_not_active = factories.CourseFactory.create( key="key1", is_active=False, show_in_catalog=False) course_not_in_catalog = factories.CourseFactory.create( key="key2", is_active=True, show_in_catalog=False) course_active_1 = factories.CourseFactory.create(key="key3", is_active=True, show_in_catalog=True) course_active_2 = factories.CourseFactory.create(key="key4", is_active=True, show_in_catalog=True) subject_not_active = factories.CourseSubjectFactory.create( score=1, slug="not-active") subject_not_in_catalog = factories.CourseSubjectFactory.create( score=2, slug="not-in-catalog") subject_active_1 = factories.CourseSubjectFactory.create( score=3, slug="active-1") subject_active_2 = factories.CourseSubjectFactory.create( score=4, slug="active-2") course_not_active.subjects.add(subject_not_active) course_not_in_catalog.subjects.add(subject_not_in_catalog) course_active_1.subjects.add(subject_active_1) course_active_2.subjects.add(subject_active_2) subjects = managers.annotate_with_public_courses( models.CourseSubject.objects.all()) self.assertNotIn(subject_not_active, subjects) self.assertNotIn(subject_not_in_catalog, subjects) self.assertIn(subject_active_1, subjects) self.assertIn(subject_active_2, subjects) self.assertEqual(1, subjects.get(slug='active-1').public_courses_count) self.assertEqual(1, subjects.get(slug='active-2').public_courses_count)
def courses_index(request, subject=None): """ Args: subject (str): subject slug that allows to reverse course filtering urls. """ languages = get_courses_per_language() return render_to_response('course_pages/index.html', { "course_subjects": annotate_with_public_courses(CourseSubject.objects.by_score()), "universities": annotate_with_public_courses(University.objects.not_obsolete().by_score()), "languages": languages, "courses_count_starting_soon": Course.objects.starting_soon().count(), "courses_count_enrollment_ending_soon": Course.objects.enrollment_ends_soon().count(), "courses_count_new": Course.objects.new().count(), "courses_count_opened": Course.objects.opened().count(), "courses_count_started": Course.objects.started().count(), "courses_count_archived": Course.objects.archived().count(), })
def test_ability_to_count_public_courses_for_course_subjects(self): course_not_active = factories.CourseFactory.create( key="key1", is_active=False, show_in_catalog=False ) course_not_in_catalog = factories.CourseFactory.create( key="key2", is_active=True, show_in_catalog=False ) course_active_1 = factories.CourseFactory.create( key="key3", is_active=True, show_in_catalog=True ) course_active_2 = factories.CourseFactory.create( key="key4", is_active=True, show_in_catalog=True ) subject_not_active = factories.CourseSubjectFactory.create( score=1, slug="not-active" ) subject_not_in_catalog = factories.CourseSubjectFactory.create( score=2, slug="not-in-catalog" ) subject_active_1 = factories.CourseSubjectFactory.create( score=3, slug="active-1" ) subject_active_2 = factories.CourseSubjectFactory.create( score=4, slug="active-2" ) course_not_active.subjects.add(subject_not_active) course_not_in_catalog.subjects.add(subject_not_in_catalog) course_active_1.subjects.add(subject_active_1) course_active_2.subjects.add(subject_active_2) subjects = managers.annotate_with_public_courses(models.CourseSubject.objects.all()) self.assertNotIn(subject_not_active, subjects) self.assertNotIn(subject_not_in_catalog, subjects) self.assertIn(subject_active_1, subjects) self.assertIn(subject_active_2, subjects) self.assertEqual(1, subjects.get(slug='active-1').public_courses_count) self.assertEqual(1, subjects.get(slug='active-2').public_courses_count)