fix: Added additional conditions for tab view rendering (#29906)
This commit is contained in:
@@ -147,6 +147,15 @@ class ProgramDetailsFragmentView(EdxFragmentView):
|
||||
}
|
||||
program_discussion_lti = ProgramDiscussionLTI(program_uuid, request)
|
||||
program_live_lti = ProgramLiveLTI(program_uuid, request)
|
||||
|
||||
def program_tab_view_enabled() -> bool:
|
||||
return program_tab_view_is_enabled() and (
|
||||
industry_pathways or
|
||||
credit_pathways or
|
||||
program_discussion_lti.is_configured or
|
||||
program_live_lti.is_configured
|
||||
)
|
||||
|
||||
context = {
|
||||
'urls': urls,
|
||||
'user_preferences': get_user_preferences(user),
|
||||
@@ -155,7 +164,7 @@ class ProgramDetailsFragmentView(EdxFragmentView):
|
||||
'certificate_data': certificate_data,
|
||||
'industry_pathways': industry_pathways,
|
||||
'credit_pathways': credit_pathways,
|
||||
'program_tab_view_enabled': program_tab_view_is_enabled(),
|
||||
'program_tab_view_enabled': program_tab_view_enabled(),
|
||||
'discussion_fragment': {
|
||||
'configured': program_discussion_lti.is_configured,
|
||||
'iframe': program_discussion_lti.render_iframe()
|
||||
|
||||
@@ -17,6 +17,7 @@ from edx_toggles.toggles.testutils import override_waffle_flag
|
||||
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory as ModuleStoreCourseFactory
|
||||
|
||||
from lti_consumer.models import LtiConfiguration
|
||||
from common.djangoapps.student.tests.factories import CourseEnrollmentFactory, UserFactory
|
||||
from lms.djangoapps.learner_dashboard.config.waffle import ENABLE_PROGRAM_TAB_VIEW
|
||||
from lms.djangoapps.program_enrollments.rest_api.v1.tests.test_views import ProgramCacheMixin
|
||||
@@ -29,6 +30,7 @@ from openedx.core.djangoapps.catalog.tests.factories import (
|
||||
ProgramFactory
|
||||
)
|
||||
from openedx.core.djangoapps.catalog.tests.mixins import CatalogIntegrationMixin
|
||||
from openedx.core.djangoapps.programs.models import ProgramDiscussionsConfiguration
|
||||
from openedx.core.djangoapps.programs.tests.mixins import ProgramsApiConfigMixin
|
||||
from openedx.core.djangolib.testing.utils import skip_unless_lms
|
||||
|
||||
@@ -330,6 +332,20 @@ class TestProgramDetailsFragmentView(SharedModuleStoreTestCase, ProgramCacheMixi
|
||||
"""
|
||||
Test if programTabViewEnabled and discussionFragment exist in html.
|
||||
"""
|
||||
|
||||
discussion_config = ProgramDiscussionsConfiguration.objects.create(
|
||||
program_uuid=self.program_uuid,
|
||||
enabled=True,
|
||||
provider_type="piazza",
|
||||
)
|
||||
discussion_config.lti_configuration = LtiConfiguration.objects.create(
|
||||
config_store=LtiConfiguration.CONFIG_ON_DB,
|
||||
lti_1p1_launch_url='http://test.url',
|
||||
lti_1p1_client_key='test_client_key',
|
||||
lti_1p1_client_secret='test_client_secret',
|
||||
)
|
||||
discussion_config.save()
|
||||
|
||||
response = self.client.get(self.url)
|
||||
self.assertContains(response, 'programTabViewEnabled: true',)
|
||||
self.assertContains(response, 'discussionFragment: {"configured": false, "iframe": ""')
|
||||
self.assertContains(response, 'discussionFragment: {"configured": true, "iframe":')
|
||||
|
||||
Reference in New Issue
Block a user