Commit a00d9ad3 by Douglas Hall Committed by GitHub

Merge pull request #15484 from edx/afzaledx/LEARNER-1146-patch

Put the program_types filter under the waffle switch
parents 8fb86474 b8a310d5
...@@ -12,6 +12,7 @@ from urlparse import parse_qs, urlsplit, urlunsplit ...@@ -12,6 +12,7 @@ from urlparse import parse_qs, urlsplit, urlunsplit
import analytics import analytics
import edx_oauth2_provider import edx_oauth2_provider
import waffle
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.contrib.auth import authenticate, login, logout from django.contrib.auth import authenticate, login, logout
...@@ -174,6 +175,7 @@ def index(request, extra_context=None, user=AnonymousUser()): ...@@ -174,6 +175,7 @@ def index(request, extra_context=None, user=AnonymousUser()):
if extra_context is None: if extra_context is None:
extra_context = {} extra_context = {}
programs_list = []
courses = get_courses(user) courses = get_courses(user)
if configuration_helpers.get_value( if configuration_helpers.get_value(
...@@ -207,7 +209,11 @@ def index(request, extra_context=None, user=AnonymousUser()): ...@@ -207,7 +209,11 @@ def index(request, extra_context=None, user=AnonymousUser()):
# Insert additional context for use in the template # Insert additional context for use in the template
context.update(extra_context) context.update(extra_context)
context['programs_list'] = get_programs_with_type(include_hidden=False) # Add marketable programs to the context if the multi-tenant programs switch is enabled.
if waffle.switch_is_active('get-multitenant-programs'):
programs_list = get_programs_with_type(include_hidden=False)
context['programs_list'] = programs_list
return render_to_response('index.html', context) return render_to_response('index.html', context)
......
...@@ -14,6 +14,7 @@ from milestones.tests.utils import MilestonesTestCaseMixin ...@@ -14,6 +14,7 @@ from milestones.tests.utils import MilestonesTestCaseMixin
from mock import Mock, patch from mock import Mock, patch
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from pytz import UTC from pytz import UTC
from waffle.testutils import override_switch
from branding.views import index from branding.views import index
from courseware.tests.helpers import LoginEnrollmentTestCase from courseware.tests.helpers import LoginEnrollmentTestCase
...@@ -297,18 +298,19 @@ class IndexPageProgramsTests(SiteMixin, ModuleStoreTestCase): ...@@ -297,18 +298,19 @@ class IndexPageProgramsTests(SiteMixin, ModuleStoreTestCase):
""" """
Tests for Programs List in Marketing Pages. Tests for Programs List in Marketing Pages.
""" """
@ddt.data([], ['fake_program_type']) @ddt.data(True, False)
def test_get_programs_with_type_called(self, program_types): def test_get_programs_with_type_called(self, multitenant_programs_enabled):
views = [ views = [
(reverse('root'), 'student.views.get_programs_with_type'), (reverse('root'), 'student.views.get_programs_with_type'),
(reverse('branding.views.courses'), 'courseware.views.views.get_programs_with_type'), (reverse('branding.views.courses'), 'courseware.views.views.get_programs_with_type'),
] ]
for url, dotted_path in views: for url, dotted_path in views:
with patch(dotted_path) as mock_get_programs_with_type: with patch(dotted_path) as mock_get_programs_with_type:
response = self.client.get(url) with override_switch('get-multitenant-programs', multitenant_programs_enabled):
self.assertEqual(response.status_code, 200) response = self.client.get(url)
self.assertEqual(response.status_code, 200)
if program_types:
mock_get_programs_with_type.assert_called_once() if multitenant_programs_enabled:
else: mock_get_programs_with_type.assert_called_once()
mock_get_programs_with_type.assert_not_called() else:
mock_get_programs_with_type.assert_not_called()
...@@ -8,6 +8,7 @@ from collections import OrderedDict, namedtuple ...@@ -8,6 +8,7 @@ from collections import OrderedDict, namedtuple
from datetime import datetime, timedelta from datetime import datetime, timedelta
import analytics import analytics
import waffle
from django.conf import settings from django.conf import settings
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import AnonymousUser, User from django.contrib.auth.models import AnonymousUser, User
...@@ -155,7 +156,9 @@ def courses(request): ...@@ -155,7 +156,9 @@ def courses(request):
else: else:
courses_list = sort_by_announcement(courses_list) courses_list = sort_by_announcement(courses_list)
programs_list = get_programs_with_type(include_hidden=False) # Add marketable programs to the context if the multi-tenant programs switch is enabled.
if waffle.switch_is_active('get-multitenant-programs'):
programs_list = get_programs_with_type(include_hidden=False)
return render_to_response( return render_to_response(
"courseware/courses.html", "courseware/courses.html",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment