From b565c18278c90599a020b650377f6a22f910283e Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Thu, 10 Apr 2025 20:30:51 +0500 Subject: [PATCH 1/8] feat: add markdown editor waffle flag --- .../v1/serializers/course_waffle_flags.py | 8 ++++++++ .../rest_api/v1/views/course_waffle_flags.py | 1 + .../v1/views/tests/test_course_waffle_flags.py | 1 + cms/djangoapps/contentstore/toggles.py | 18 ++++++++++++++++++ .../xblock_storage_handlers/view_handlers.py | 6 +++++- xmodule/capa_block.py | 5 +++++ 6 files changed, 38 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py index 33dd99792882..52aee92b41be 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py @@ -28,6 +28,7 @@ class CourseWaffleFlagsSerializer(serializers.Serializer): use_new_textbooks_page = serializers.SerializerMethodField() use_new_group_configurations_page = serializers.SerializerMethodField() enable_course_optimizer = serializers.SerializerMethodField() + use_markdown_editor = serializers.SerializerMethodField() def get_course_key(self): """ @@ -152,3 +153,10 @@ def get_enable_course_optimizer(self, obj): """ course_key = self.get_course_key() return toggles.enable_course_optimizer(course_key) + + def get_use_markdown_editor(self, obj): + """ + Method to get the use_markdown_editor waffle flag + """ + course_key = self.get_course_key() + return toggles.use_markdown_editor(course_key) \ No newline at end of file diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py index ba96ff2b4a6c..004b9c295c2f 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py @@ -62,6 +62,7 @@ def get(self, request, course_id=None): "use_new_certificates_page": true, "use_new_textbooks_page": true, "use_new_group_configurations_page": true + "use_markdown_editor": true, } ``` """ diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py index f0332d7f2870..6e837b39a926 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py @@ -34,6 +34,7 @@ class CourseWaffleFlagsViewTest(CourseTestCase): "use_new_certificates_page", "use_new_textbooks_page", "use_new_group_configurations_page", + "use_markdown_editor" ] other_expected_waffle_flags = ["enable_course_optimizer"] diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index 4fcc8372c594..c11c85cede93 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -219,6 +219,24 @@ def use_new_custom_pages(course_key): """ return ENABLE_NEW_STUDIO_CUSTOM_PAGES.is_enabled(course_key) +# .. toggle_name: contentstore.new_studio_mfe.use_markdown_editor +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: This flag enables the use of the Markdown editor when creating or editing problems. +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2025-4-10 +# .. toggle_target_removal_date: 2025-8-31 +# .. toggle_tickets: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4517232656/Re-enable+Markdown+editing+of+CAPA+problems+to+meet+various+use+cases +# .. toggle_warning: +ENABLE_MARKDOWN_EDITOR = CourseWaffleFlag( + f'{CONTENTSTORE_NAMESPACE}.new_studio_mfe.use_markdown_editor', __name__) + + +def use_markdown_editor(course_key): + """ + Returns a boolean if new studio custom pages mfe is enabled + """ + return ENABLE_MARKDOWN_EDITOR.is_enabled(course_key) # .. toggle_name: contentstore.new_studio_mfe.use_new_schedule_details_page # .. toggle_implementation: CourseWaffleFlag diff --git a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py index 3506825ae357..11e9248b6c2e 100644 --- a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py +++ b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py @@ -155,7 +155,9 @@ def handle_xblock(request, usage_key_string=None): This method is used both by the internal xblock_handler API and by the public CMS API. """ + print("\n\n\n In handle_xblock\n\n\n") if usage_key_string: + print("\n\n\nIn usage key string\n\n\n") usage_key = usage_key_with_run(usage_key_string) @@ -201,6 +203,7 @@ def handle_xblock(request, usage_key_string=None): return modified_xblock elif request.method in ("PUT", "POST"): + print("\n\n\nIn put post\n\n\n") if "duplicate_source_locator" in request.json: parent_usage_key = usage_key_with_run(request.json["parent_locator"]) duplicate_source_usage_key = usage_key_with_run( @@ -357,7 +360,7 @@ def _save_xblock( if fields: for field_name in fields: setattr(xblock, field_name, fields[field_name]) - + print(xblock.__dict__) if children_strings is not None: children = [] for child_string in children_strings: @@ -526,6 +529,7 @@ def create_item(request): @expect_json def _create_block(request): """View for create blocks.""" + print("\n\n\n\n\nhere\n\n\n\n\n") parent_locator = request.json["parent_locator"] usage_key = usage_key_with_run(parent_locator) if not has_studio_write_access(request.user, usage_key.course_key): diff --git a/xmodule/capa_block.py b/xmodule/capa_block.py index fa0e87325bb7..1b2d18cf1770 100644 --- a/xmodule/capa_block.py +++ b/xmodule/capa_block.py @@ -340,6 +340,11 @@ class _BuiltInProblemBlock( "or to report an issue, please contact moocsupport@mathworks.com"), scope=Scope.settings ) + markdown_edited = Boolean( + help=_("Indicates if the problem was edited using the Markdown editor in the Authoring MFE."), + scope=Scope.settings, + default=False + ) def bind_for_student(self, *args, **kwargs): # lint-amnesty, pylint: disable=signature-differs super().bind_for_student(*args, **kwargs) From f1008894ca1d2c4db86e142af8250412b39b237c Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Thu, 10 Apr 2025 21:42:16 +0500 Subject: [PATCH 2/8] fix: remove print statements --- .../contentstore/xblock_storage_handlers/view_handlers.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py index 11e9248b6c2e..3506825ae357 100644 --- a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py +++ b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py @@ -155,9 +155,7 @@ def handle_xblock(request, usage_key_string=None): This method is used both by the internal xblock_handler API and by the public CMS API. """ - print("\n\n\n In handle_xblock\n\n\n") if usage_key_string: - print("\n\n\nIn usage key string\n\n\n") usage_key = usage_key_with_run(usage_key_string) @@ -203,7 +201,6 @@ def handle_xblock(request, usage_key_string=None): return modified_xblock elif request.method in ("PUT", "POST"): - print("\n\n\nIn put post\n\n\n") if "duplicate_source_locator" in request.json: parent_usage_key = usage_key_with_run(request.json["parent_locator"]) duplicate_source_usage_key = usage_key_with_run( @@ -360,7 +357,7 @@ def _save_xblock( if fields: for field_name in fields: setattr(xblock, field_name, fields[field_name]) - print(xblock.__dict__) + if children_strings is not None: children = [] for child_string in children_strings: @@ -529,7 +526,6 @@ def create_item(request): @expect_json def _create_block(request): """View for create blocks.""" - print("\n\n\n\n\nhere\n\n\n\n\n") parent_locator = request.json["parent_locator"] usage_key = usage_key_with_run(parent_locator) if not has_studio_write_access(request.user, usage_key.course_key): From 78cbf275eec7a0347ae7119843524eb362fd4ce1 Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Thu, 10 Apr 2025 22:30:21 +0500 Subject: [PATCH 3/8] fix: updated name of waffle flag --- .../rest_api/v1/serializers/course_waffle_flags.py | 8 ++++---- .../rest_api/v1/views/course_waffle_flags.py | 2 +- .../v1/views/tests/test_course_waffle_flags.py | 2 +- cms/djangoapps/contentstore/toggles.py | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py index 52aee92b41be..b9a228bc4649 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py @@ -28,7 +28,7 @@ class CourseWaffleFlagsSerializer(serializers.Serializer): use_new_textbooks_page = serializers.SerializerMethodField() use_new_group_configurations_page = serializers.SerializerMethodField() enable_course_optimizer = serializers.SerializerMethodField() - use_markdown_editor = serializers.SerializerMethodField() + react_markdown_editor = serializers.SerializerMethodField() def get_course_key(self): """ @@ -154,9 +154,9 @@ def get_enable_course_optimizer(self, obj): course_key = self.get_course_key() return toggles.enable_course_optimizer(course_key) - def get_use_markdown_editor(self, obj): + def get_react_markdown_editor(self, obj): """ - Method to get the use_markdown_editor waffle flag + Method to get the react_markdown_editor waffle flag """ course_key = self.get_course_key() - return toggles.use_markdown_editor(course_key) \ No newline at end of file + return toggles.react_markdown_editor(course_key) diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py index 004b9c295c2f..f4a240b1ac17 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py @@ -62,7 +62,7 @@ def get(self, request, course_id=None): "use_new_certificates_page": true, "use_new_textbooks_page": true, "use_new_group_configurations_page": true - "use_markdown_editor": true, + "react_markdown_editor": true, } ``` """ diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py index 6e837b39a926..5afc6d547b4d 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py @@ -34,7 +34,7 @@ class CourseWaffleFlagsViewTest(CourseTestCase): "use_new_certificates_page", "use_new_textbooks_page", "use_new_group_configurations_page", - "use_markdown_editor" + "react_markdown_editor" ] other_expected_waffle_flags = ["enable_course_optimizer"] diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index c11c85cede93..8e94f0005804 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -219,24 +219,24 @@ def use_new_custom_pages(course_key): """ return ENABLE_NEW_STUDIO_CUSTOM_PAGES.is_enabled(course_key) -# .. toggle_name: contentstore.new_studio_mfe.use_markdown_editor +# .. toggle_name: contentstore.react_markdown_editor # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False -# .. toggle_description: This flag enables the use of the Markdown editor when creating or editing problems. +# .. toggle_description: This flag enables the use of the Markdown editor when creating or editing problems in the authoring MFE # .. toggle_use_cases: temporary # .. toggle_creation_date: 2025-4-10 # .. toggle_target_removal_date: 2025-8-31 # .. toggle_tickets: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4517232656/Re-enable+Markdown+editing+of+CAPA+problems+to+meet+various+use+cases # .. toggle_warning: -ENABLE_MARKDOWN_EDITOR = CourseWaffleFlag( - f'{CONTENTSTORE_NAMESPACE}.new_studio_mfe.use_markdown_editor', __name__) +ENABLE_REACT_MARKDOWN_EDITOR = CourseWaffleFlag( + f'{CONTENTSTORE_NAMESPACE}.react_markdown_editor', __name__) -def use_markdown_editor(course_key): +def react_markdown_editor(course_key): """ Returns a boolean if new studio custom pages mfe is enabled """ - return ENABLE_MARKDOWN_EDITOR.is_enabled(course_key) + return ENABLE_REACT_MARKDOWN_EDITOR.is_enabled(course_key) # .. toggle_name: contentstore.new_studio_mfe.use_new_schedule_details_page # .. toggle_implementation: CourseWaffleFlag From 25c12727ad6f171a6189cfae6783e6d47f7cc725 Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Thu, 10 Apr 2025 23:26:11 +0500 Subject: [PATCH 4/8] fix: test --- .../rest_api/v1/views/tests/test_course_waffle_flags.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py index 5afc6d547b4d..af65b5e5b6f7 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py @@ -72,7 +72,7 @@ def create_waffle_flags(self, flags, enabled=True): """ for flag in flags: WaffleFlagCourseOverrideModel.objects.create( - waffle_flag=f"contentstore.new_studio_mfe.{flag}", + waffle_flag=f"contentstore.new_studio_mfe.{flag}" if flag != "react_markdown_editor" else "contentstore.react_markdown_editor", course_id=self.course.id, enabled=enabled, ) @@ -110,6 +110,7 @@ def test_get_course_waffle_flags_with_course_id(self): expected_response["use_new_home_page"] = False response = self.client.get(course_url) + print(expected_response, response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual(expected_response, response.data) From ad8a965a03cd68b11e136ced15e8fc8af6d992ff Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Thu, 10 Apr 2025 23:55:18 +0500 Subject: [PATCH 5/8] fix: test --- .../rest_api/v1/views/tests/test_course_waffle_flags.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py index af65b5e5b6f7..947db33adc74 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py @@ -72,7 +72,11 @@ def create_waffle_flags(self, flags, enabled=True): """ for flag in flags: WaffleFlagCourseOverrideModel.objects.create( - waffle_flag=f"contentstore.new_studio_mfe.{flag}" if flag != "react_markdown_editor" else "contentstore.react_markdown_editor", + waffle_flag=( + f"contentstore.new_studio_mfe.{flag}" + if flag != "react_markdown_editor" + else "contentstore.react_markdown_editor" + ), course_id=self.course.id, enabled=enabled, ) From 930dcb7462d6ee9f37890d1db09508a24cc7d613 Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Fri, 11 Apr 2025 20:26:44 +0500 Subject: [PATCH 6/8] fix: issues --- .../rest_api/v1/serializers/course_waffle_flags.py | 8 ++++---- .../rest_api/v1/views/course_waffle_flags.py | 2 +- .../rest_api/v1/views/tests/test_course_waffle_flags.py | 7 +++---- cms/djangoapps/contentstore/toggles.py | 9 +++------ 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py index b9a228bc4649..3a885f8c96bc 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/serializers/course_waffle_flags.py @@ -28,7 +28,7 @@ class CourseWaffleFlagsSerializer(serializers.Serializer): use_new_textbooks_page = serializers.SerializerMethodField() use_new_group_configurations_page = serializers.SerializerMethodField() enable_course_optimizer = serializers.SerializerMethodField() - react_markdown_editor = serializers.SerializerMethodField() + use_react_markdown_editor = serializers.SerializerMethodField() def get_course_key(self): """ @@ -154,9 +154,9 @@ def get_enable_course_optimizer(self, obj): course_key = self.get_course_key() return toggles.enable_course_optimizer(course_key) - def get_react_markdown_editor(self, obj): + def get_use_react_markdown_editor(self, obj): """ - Method to get the react_markdown_editor waffle flag + Method to get the use_react_markdown_editor waffle flag """ course_key = self.get_course_key() - return toggles.react_markdown_editor(course_key) + return toggles.use_react_markdown_editor(course_key) diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py index f4a240b1ac17..47dacdab27d1 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/course_waffle_flags.py @@ -62,7 +62,7 @@ def get(self, request, course_id=None): "use_new_certificates_page": true, "use_new_textbooks_page": true, "use_new_group_configurations_page": true - "react_markdown_editor": true, + "use_react_markdown_editor": true, } ``` """ diff --git a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py index 947db33adc74..6dcbe7f9ad40 100644 --- a/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py +++ b/cms/djangoapps/contentstore/rest_api/v1/views/tests/test_course_waffle_flags.py @@ -34,7 +34,7 @@ class CourseWaffleFlagsViewTest(CourseTestCase): "use_new_certificates_page", "use_new_textbooks_page", "use_new_group_configurations_page", - "react_markdown_editor" + "use_react_markdown_editor" ] other_expected_waffle_flags = ["enable_course_optimizer"] @@ -74,8 +74,8 @@ def create_waffle_flags(self, flags, enabled=True): WaffleFlagCourseOverrideModel.objects.create( waffle_flag=( f"contentstore.new_studio_mfe.{flag}" - if flag != "react_markdown_editor" - else "contentstore.react_markdown_editor" + if flag != "use_react_markdown_editor" + else "contentstore.use_react_markdown_editor" ), course_id=self.course.id, enabled=enabled, @@ -114,7 +114,6 @@ def test_get_course_waffle_flags_with_course_id(self): expected_response["use_new_home_page"] = False response = self.client.get(course_url) - print(expected_response, response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual(expected_response, response.data) diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index 8e94f0005804..24b6e3a745b6 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -219,20 +219,17 @@ def use_new_custom_pages(course_key): """ return ENABLE_NEW_STUDIO_CUSTOM_PAGES.is_enabled(course_key) -# .. toggle_name: contentstore.react_markdown_editor +# .. toggle_name: contentstore.use_react_markdown_editor # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False # .. toggle_description: This flag enables the use of the Markdown editor when creating or editing problems in the authoring MFE -# .. toggle_use_cases: temporary -# .. toggle_creation_date: 2025-4-10 -# .. toggle_target_removal_date: 2025-8-31 # .. toggle_tickets: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4517232656/Re-enable+Markdown+editing+of+CAPA+problems+to+meet+various+use+cases # .. toggle_warning: ENABLE_REACT_MARKDOWN_EDITOR = CourseWaffleFlag( - f'{CONTENTSTORE_NAMESPACE}.react_markdown_editor', __name__) + f'{CONTENTSTORE_NAMESPACE}.use_react_markdown_editor', __name__) -def react_markdown_editor(course_key): +def use_react_markdown_editor(course_key): """ Returns a boolean if new studio custom pages mfe is enabled """ From 88f0a1e71cdaab690225462710cb55aa25e6c643 Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Fri, 11 Apr 2025 20:40:03 +0500 Subject: [PATCH 7/8] fix: issues --- cms/djangoapps/contentstore/toggles.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index 24b6e3a745b6..f5cfd41e2127 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -222,9 +222,9 @@ def use_new_custom_pages(course_key): # .. toggle_name: contentstore.use_react_markdown_editor # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False +# .. toggles_use_cases: opt_in # .. toggle_description: This flag enables the use of the Markdown editor when creating or editing problems in the authoring MFE # .. toggle_tickets: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4517232656/Re-enable+Markdown+editing+of+CAPA+problems+to+meet+various+use+cases -# .. toggle_warning: ENABLE_REACT_MARKDOWN_EDITOR = CourseWaffleFlag( f'{CONTENTSTORE_NAMESPACE}.use_react_markdown_editor', __name__) From 5bc5503c2d9e2f8b7987423d7737bf9bc25c54f6 Mon Sep 17 00:00:00 2001 From: Muhammad Anas Date: Fri, 11 Apr 2025 21:05:17 +0500 Subject: [PATCH 8/8] fix: pylint --- cms/djangoapps/contentstore/toggles.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index f5cfd41e2127..5bc1615057c5 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -222,8 +222,9 @@ def use_new_custom_pages(course_key): # .. toggle_name: contentstore.use_react_markdown_editor # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False -# .. toggles_use_cases: opt_in # .. toggle_description: This flag enables the use of the Markdown editor when creating or editing problems in the authoring MFE +# .. toggle_use_cases: opt_in +# .. toggle_creation_date: 2025-4-11 # .. toggle_tickets: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4517232656/Re-enable+Markdown+editing+of+CAPA+problems+to+meet+various+use+cases ENABLE_REACT_MARKDOWN_EDITOR = CourseWaffleFlag( f'{CONTENTSTORE_NAMESPACE}.use_react_markdown_editor', __name__)