diff --git a/cms/djangoapps/contentstore/asset_storage_handlers.py b/cms/djangoapps/contentstore/asset_storage_handlers.py index 02857b11de..2489be61ba 100644 --- a/cms/djangoapps/contentstore/asset_storage_handlers.py +++ b/cms/djangoapps/contentstore/asset_storage_handlers.py @@ -19,7 +19,6 @@ from django.views.decorators.http import require_http_methods, require_POST from opaque_keys.edx.keys import AssetKey, CourseKey from pymongo import ASCENDING, DESCENDING -from common.djangoapps.edxmako.shortcuts import render_to_response from common.djangoapps.student.auth import has_course_author_access from common.djangoapps.util.date_utils import get_default_time_display from common.djangoapps.util.json_request import JsonResponse @@ -34,8 +33,7 @@ from xmodule.modulestore.django import modulestore # lint-amnesty, pylint: disa from xmodule.modulestore.exceptions import ItemNotFoundError # lint-amnesty, pylint: disable=wrong-import-order from .exceptions import AssetNotFoundException, AssetSizeTooLargeException -from .utils import reverse_course_url, get_files_uploads_url, get_response_format, request_response_format_is_json -from .toggles import use_new_files_uploads_page +from .utils import get_files_uploads_url, get_response_format, request_response_format_is_json REQUEST_DEFAULTS = { @@ -169,22 +167,8 @@ def _get_asset_usage_path(course_key, assets): def _asset_index(request, course_key): ''' Display an editable asset library. - - Supports start (0-based index into the list of assets) and max query parameters. ''' - course_block = modulestore().get_course(course_key) - - if use_new_files_uploads_page(course_key): - return redirect(get_files_uploads_url(course_key)) - - return render_to_response('asset_index.html', { - 'language_code': request.LANGUAGE_CODE, - 'context_course': course_block, - 'max_file_size_in_mbs': settings.MAX_ASSET_UPLOAD_FILE_SIZE_IN_MB, - 'chunk_size_in_mbs': settings.UPLOAD_CHUNK_SIZE_IN_MB, - 'max_file_size_redirect_url': settings.MAX_ASSET_UPLOAD_FILE_SIZE_URL, - 'asset_callback_url': reverse_course_url('assets_handler', course_key) - }) + return redirect(get_files_uploads_url(course_key)) def _assets_json(request, course_key): 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 449429c9b8..31cf9c36f0 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 @@ -102,9 +102,11 @@ class CourseWaffleFlagsSerializer(serializers.Serializer): def get_use_new_files_uploads_page(self, obj): """ Method to get the use_new_files_uploads_page switch + + Always true, because the switch is being removed an the new experience + should alawys be on. """ - course_key = self.get_course_key() - return toggles.use_new_files_uploads_page(course_key) + return True def get_use_new_video_uploads_page(self, obj): """ diff --git a/cms/djangoapps/contentstore/tests/test_contentstore.py b/cms/djangoapps/contentstore/tests/test_contentstore.py index fa1075621f..a8721d629c 100644 --- a/cms/djangoapps/contentstore/tests/test_contentstore.py +++ b/cms/djangoapps/contentstore/tests/test_contentstore.py @@ -1491,8 +1491,6 @@ class ContentStoreTest(ContentStoreTestCase): test_get_html('course_team_handler') with override_waffle_flag(toggles.LEGACY_STUDIO_UPDATES, True): test_get_html('course_info_handler') - with override_waffle_flag(toggles.LEGACY_STUDIO_FILES_UPLOADS, True): - test_get_html('assets_handler') with override_waffle_flag(toggles.LEGACY_STUDIO_CUSTOM_PAGES, True): test_get_html('tabs_handler') with override_waffle_flag(toggles.LEGACY_STUDIO_SCHEDULE_DETAILS, True): diff --git a/cms/djangoapps/contentstore/tests/test_course_settings.py b/cms/djangoapps/contentstore/tests/test_course_settings.py index 4e79ba7099..9afba26b32 100644 --- a/cms/djangoapps/contentstore/tests/test_course_settings.py +++ b/cms/djangoapps/contentstore/tests/test_course_settings.py @@ -168,7 +168,6 @@ class CourseAdvanceSettingViewTest(CourseTestCase, MilestonesTestCaseMixin): @override_waffle_flag(toggles.LEGACY_STUDIO_EXPORT, True) @override_waffle_flag(toggles.LEGACY_STUDIO_COURSE_TEAM, True) @override_waffle_flag(toggles.LEGACY_STUDIO_UPDATES, True) - @override_waffle_flag(toggles.LEGACY_STUDIO_FILES_UPLOADS, True) @override_waffle_flag(toggles.LEGACY_STUDIO_CUSTOM_PAGES, True) @override_waffle_flag(toggles.LEGACY_STUDIO_SCHEDULE_DETAILS, True) @override_waffle_flag(toggles.LEGACY_STUDIO_GRADING, True) @@ -188,7 +187,6 @@ class CourseAdvanceSettingViewTest(CourseTestCase, MilestonesTestCaseMixin): 'export_handler', 'course_team_handler', 'course_info_handler', - 'assets_handler', 'tabs_handler', 'settings_handler', 'grading_handler', diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index 2edafab7fa..96a646bff2 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -313,25 +313,6 @@ def use_new_export_page(course_key): return not LEGACY_STUDIO_EXPORT.is_enabled(course_key) -# .. toggle_name: legacy_studio.files_uploads -# .. toggle_implementation: WaffleFlag -# .. toggle_default: False -# .. toggle_description: Temporarily fall back to the old Studio Files & Uploads page. -# .. toggle_use_cases: temporary -# .. toggle_creation_date: 2025-03-14 -# .. toggle_target_removal_date: 2025-09-14 -# .. toggle_tickets: https://github.com/openedx/edx-platform/issues/36275 -# .. toggle_warning: In Ulmo, this toggle will be removed. Only the new (React-based) experience will be available. -LEGACY_STUDIO_FILES_UPLOADS = CourseWaffleFlag('legacy_studio.files_uploads', __name__) - - -def use_new_files_uploads_page(course_key): - """ - Returns a boolean if new studio files and uploads mfe is enabled - """ - return not LEGACY_STUDIO_FILES_UPLOADS.is_enabled(course_key) - - # .. toggle_name: contentstore.new_studio_mfe.use_new_video_uploads_page # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index f0afe226f5..a80fffec75 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -46,7 +46,6 @@ from cms.djangoapps.contentstore.toggles import ( use_new_course_team_page, use_new_custom_pages, use_new_export_page, - use_new_files_uploads_page, use_new_grading_page, use_new_group_configurations_page, use_new_import_page, @@ -416,11 +415,10 @@ def get_files_uploads_url(course_locator) -> str: Gets course authoring microfrontend URL for files and uploads page view. """ files_uploads_url = None - if use_new_files_uploads_page(course_locator): - mfe_base_url = get_course_authoring_url(course_locator) - course_mfe_url = f'{mfe_base_url}/course/{course_locator}/assets' - if mfe_base_url: - files_uploads_url = course_mfe_url + mfe_base_url = get_course_authoring_url(course_locator) + course_mfe_url = f'{mfe_base_url}/course/{course_locator}/assets' + if mfe_base_url: + files_uploads_url = course_mfe_url return files_uploads_url diff --git a/cms/djangoapps/contentstore/views/tests/test_assets.py b/cms/djangoapps/contentstore/views/tests/test_assets.py index 2b13338c0d..e7dbcfe9f5 100644 --- a/cms/djangoapps/contentstore/views/tests/test_assets.py +++ b/cms/djangoapps/contentstore/views/tests/test_assets.py @@ -12,13 +12,11 @@ from unittest.mock import patch from ddt import data, ddt from django.conf import settings from django.test.utils import override_settings -from edx_toggles.toggles.testutils import override_waffle_flag from opaque_keys.edx.keys import AssetKey from opaque_keys.edx.locator import CourseLocator from PIL import Image from pytz import UTC -from cms.djangoapps.contentstore import toggles from cms.djangoapps.contentstore.tests.utils import CourseTestCase from cms.djangoapps.contentstore.utils import reverse_course_url from cms.djangoapps.contentstore.views import assets @@ -87,10 +85,9 @@ class BasicAssetsTestCase(AssetsTestCase): Test getting assets via html w/o additional args """ - @override_waffle_flag(toggles.LEGACY_STUDIO_FILES_UPLOADS, True) def test_basic(self): resp = self.client.get(self.url, HTTP_ACCEPT='text/html') - self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.status_code, 302) def test_static_url_generation(self): diff --git a/cms/templates/asset_index.html b/cms/templates/asset_index.html deleted file mode 100644 index fc7d92173b..0000000000 --- a/cms/templates/asset_index.html +++ /dev/null @@ -1,59 +0,0 @@ -<%page expression_filter="h"/> -<%inherit file="base.html" /> -<%def name="online_help_token()"><% return "files" %>%def> -<%! - from django.urls import reverse - from django.utils.translation import gettext as _ - from openedx.core.djangolib.markup import HTML, Text - from openedx.core.djangolib.js_utils import js_escaped_string, dump_js_escaped_json -%> -<%block name="title">${_("Files")}%block> -<%block name="bodyclass">is-signedin course uploads view-uploads%block> - -<%namespace name='static' file='static_content.html'/> - -<%block name="header_extras"> - % if not settings.STUDIO_FRONTEND_CONTAINER_URL: - - - % endif -%block> - -<%block name="content"> - -