feat: Add support for using the discussions MFE UI instead of existing UI [BD-38] [TNL-9228] (#29285)
* feat: Add support for using the discussions MFE UI instead of existing UI Adds a new course waffle flag that when set along with the discussions MFE URL shows the discussions MFE UI instead of the regular UI. * test: add tests * squash!: more consistent url name
This commit is contained in:
@@ -4,16 +4,19 @@ Discussion XBlock
|
||||
|
||||
import logging
|
||||
import urllib
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.staticfiles.storage import staticfiles_storage
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import get_language_bidi
|
||||
from web_fragments.fragment import Fragment
|
||||
from xblock.completable import XBlockCompletionMode
|
||||
from xblock.core import XBlock
|
||||
from xblock.fields import Scope, String, UNIQUE_ID
|
||||
from web_fragments.fragment import Fragment
|
||||
from xblockutils.resources import ResourceLoader
|
||||
from xblockutils.studio_editable import StudioEditableXBlockMixin
|
||||
|
||||
from lms.djangoapps.discussion.toggles import ENABLE_DISCUSSIONS_MFE
|
||||
from openedx.core.djangolib.markup import HTML, Text
|
||||
from openedx.core.lib.xblock_builtin import get_css_dependencies, get_js_dependencies
|
||||
from xmodule.xml_module import XmlParserMixin
|
||||
@@ -166,6 +169,21 @@ class DiscussionXBlock(XBlock, StudioEditableXBlockMixin, XmlParserMixin): # li
|
||||
Renders student view for LMS.
|
||||
"""
|
||||
fragment = Fragment()
|
||||
if ENABLE_DISCUSSIONS_MFE.is_enabled(self.course_key) and settings.DISCUSSIONS_MICROFRONTEND_URL:
|
||||
url = f"{settings.DISCUSSIONS_MICROFRONTEND_URL}/discussions/{self.course_key}/topics/{self.discussion_id}"
|
||||
fragment.add_content(HTML(
|
||||
"<iframe id='discussions-mfe-tab-embed' src='{src}' title='{title}'></iframe>"
|
||||
).format(src=url, title=_("Discussions")))
|
||||
fragment.add_css(
|
||||
"""
|
||||
#discussions-mfe-tab-embed {
|
||||
width: 100%;
|
||||
height: 800px;
|
||||
border: none;
|
||||
}
|
||||
"""
|
||||
)
|
||||
return fragment
|
||||
|
||||
self.add_resource_urls(fragment)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user