From 649a66de4e6845bea8ed99972dbf11b8a4c2f6e2 Mon Sep 17 00:00:00 2001 From: Ahtisham Shahid Date: Tue, 15 Feb 2022 18:48:57 +0500 Subject: [PATCH] fix: Added additional conditions for tab view rendering (#29906) --- lms/djangoapps/learner_dashboard/programs.py | 11 ++++++++++- .../learner_dashboard/tests/test_programs.py | 18 +++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/learner_dashboard/programs.py b/lms/djangoapps/learner_dashboard/programs.py index a7b665bc7c..a896cd5bf8 100644 --- a/lms/djangoapps/learner_dashboard/programs.py +++ b/lms/djangoapps/learner_dashboard/programs.py @@ -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() diff --git a/lms/djangoapps/learner_dashboard/tests/test_programs.py b/lms/djangoapps/learner_dashboard/tests/test_programs.py index ad3963d37e..743ca633c0 100644 --- a/lms/djangoapps/learner_dashboard/tests/test_programs.py +++ b/lms/djangoapps/learner_dashboard/tests/test_programs.py @@ -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":')