Пример #1
0
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(),
        })
Пример #2
0
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(),
    })
Пример #3
0
    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)
Пример #4
0
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(),
    })
Пример #5
0
    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)