Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,12 @@ def get_use_new_files_uploads_page(self, obj):

def get_use_new_video_uploads_page(self, obj):
"""
Method to get the use_new_video_uploads_page switch
Method to get the use_new_video_uploads_page switch.

This is off by default because the video uploads page requires the edX
video pipeline which is not available to the open source community.

See https://github.com/openedx/openedx-platform/issues/37972
"""
course_key = self.get_course_key()
return toggles.use_new_video_uploads_page(course_key)
Expand Down
17 changes: 10 additions & 7 deletions cms/djangoapps/contentstore/toggles.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,19 +259,22 @@ def use_new_export_page(course_key):
# .. toggle_name: contentstore.new_studio_mfe.use_new_video_uploads_page
# .. toggle_implementation: CourseWaffleFlag
# .. toggle_default: False
# .. toggle_description: This flag enables the use of the new studio video uploads page mfe
# .. toggle_use_cases: temporary
# .. toggle_creation_date: 2023-5-15
# .. toggle_target_removal_date: 2023-8-31
# .. toggle_tickets: TNL-10619
# .. toggle_warning:
# .. toggle_description: This flag enables the use of the new studio video uploads page MFE.
# Note: This page only works on edx.org or other sites that have reverse-engineered
# the edX video pipeline. It is off by default for the community.
# .. toggle_use_cases: opt_in
# .. toggle_creation_date: 2023-05-15
# .. toggle_tickets: https://github.com/openedx/openedx-platform/issues/37972
ENABLE_NEW_STUDIO_VIDEO_UPLOADS_PAGE = CourseWaffleFlag(
f'{CONTENTSTORE_NAMESPACE}.new_studio_mfe.use_new_video_uploads_page', __name__)


def use_new_video_uploads_page(course_key):
"""
Returns a boolean if new studio video uploads mfe is enabled
Returns a boolean if new studio video uploads MFE is enabled.

This is off by default because the video uploads page requires the edX
video pipeline which is not available to the open source community.
"""
return ENABLE_NEW_STUDIO_VIDEO_UPLOADS_PAGE.is_enabled(course_key)

Expand Down
10 changes: 4 additions & 6 deletions cms/djangoapps/contentstore/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
use_new_import_page,
use_new_schedule_details_page,
use_new_unit_page,
use_new_video_uploads_page,
)
from cms.djangoapps.models.settings.course_grading import CourseGradingModel
from cms.djangoapps.models.settings.course_metadata import CourseMetadata
Expand Down Expand Up @@ -425,11 +424,10 @@ def get_video_uploads_url(course_locator) -> str:
Gets course authoring microfrontend URL for files and uploads page view.
"""
video_uploads_url = None
if use_new_video_uploads_page(course_locator):
mfe_base_url = get_course_authoring_url(course_locator)
course_mfe_url = f'{mfe_base_url}/course/{course_locator}/videos/'
if mfe_base_url:
video_uploads_url = course_mfe_url
mfe_base_url = get_course_authoring_url(course_locator)
course_mfe_url = f'{mfe_base_url}/course/{course_locator}/videos/'
if mfe_base_url:
video_uploads_url = course_mfe_url
return video_uploads_url


Expand Down
13 changes: 3 additions & 10 deletions cms/djangoapps/contentstore/video_storage_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
from tempfile import NamedTemporaryFile, mkdtemp
from wsgiref.util import FileWrapper

from common.djangoapps.edxmako.shortcuts import render_to_response
from common.djangoapps.util.json_request import JsonResponse
from openedx.core.djangoapps.video_config.models import VideoTranscriptEnabledFlag
from openedx.core.djangoapps.video_config.toggles import PUBLIC_VIDEO_SHARE
Expand All @@ -62,8 +61,8 @@
from xmodule.modulestore.django import modulestore # lint-amnesty, pylint: disable=wrong-import-order

from .models import VideoUploadConfig
from .toggles import use_new_video_uploads_page, use_mock_video_uploads
from .utils import get_video_uploads_url, get_course_videos_context
from .toggles import use_mock_video_uploads
from .utils import get_video_uploads_url
from .video_utils import validate_video_image
from .views.course import get_course_and_check_access

Expand Down Expand Up @@ -740,13 +739,7 @@ def videos_index_html(course, pagination_conf=None):
"""
Returns an HTML page to display previous video uploads and allow new ones
"""
if use_new_video_uploads_page(course.id):
return redirect(get_video_uploads_url(course.id))
context = get_course_videos_context(
course,
pagination_conf,
)
return render_to_response('videos_index.html', context)
return redirect(get_video_uploads_url(course.id))


def videos_index_json(course):
Expand Down
39 changes: 5 additions & 34 deletions cms/djangoapps/contentstore/views/tests/test_videos.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,10 @@
from xmodule.modulestore.tests.factories import CourseFactory # lint-amnesty, pylint: disable=wrong-import-order

from ..videos import (
ENABLE_VIDEO_UPLOAD_PAGINATION,
KEY_EXPIRATION_IN_SECONDS,
VIDEO_IMAGE_UPLOAD_ENABLED,
)
from cms.djangoapps.contentstore.video_storage_handlers import (
_get_default_video_image_url,
TranscriptProvider,
StatusDisplayStrings,
convert_video_status,
Expand Down Expand Up @@ -478,24 +476,14 @@ def test_get_json_transcripts(self, expected_video_keys, uploaded_transcripts, e
if response_video['edx_video_id'] == self.previous_uploads[0]['edx_video_id']:
self.assertEqual(response_video.get('transcripts', []), expected_transcripts)

def test_get_html(self):
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)
self.assertRegex(response["Content-Type"], "^text/html(;.*)?$")
self.assertContains(response, _get_default_video_image_url())
# Crude check for presence of data in returned HTML
for video in self.previous_uploads:
self.assertContains(response, video["edx_video_id"])
self.assertNotContains(response, 'video_upload_pagination')

@override_waffle_flag(ENABLE_VIDEO_UPLOAD_PAGINATION, active=True)
def test_get_html_paginated(self):
def test_get_redirects_to_video_uploads_url(self):
"""
Tests that response is paginated.
Test that GET requests redirect to the MFE video uploads page.
"""
from cms.djangoapps.contentstore.utils import get_video_uploads_url
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'video_upload_pagination')
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, get_video_uploads_url(self.course.id))

@override_settings(AWS_ACCESS_KEY_ID="test_key_id", AWS_SECRET_ACCESS_KEY="test_secret")
@patch("cms.djangoapps.contentstore.video_storage_handlers.boto3.resource")
Expand Down Expand Up @@ -869,23 +857,6 @@ def test_video_transcript_status_conversion(self, course_video_upload_token, exp

self.assert_video_status(url, edx_video_id, expected_video_status_text)

@ddt.data(True, False)
@patch('openedx.core.djangoapps.video_config.models.VideoTranscriptEnabledFlag.feature_enabled')
def test_video_index_transcript_feature_enablement(self, is_video_transcript_enabled, video_transcript_feature):
"""
Test that when video transcript is enabled/disabled, correct response is rendered.
"""
video_transcript_feature.return_value = is_video_transcript_enabled
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)

# Verify that course video button is present in the response if videos transcript feature is enabled.
button_html = '<button class="button course-video-settings-button">'
if is_video_transcript_enabled:
self.assertContains(response, button_html)
else:
self.assertNotContains(response, button_html)


@ddt.ddt
@patch.dict("django.conf.settings.FEATURES", {"ENABLE_VIDEO_UPLOAD_PIPELINE": True})
Expand Down
6 changes: 0 additions & 6 deletions cms/static/cms/js/spec/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -248,12 +248,6 @@
'js/spec/utils/drag_and_drop_spec',
'js/spec/utils/handle_iframe_binding_spec',
'js/spec/utils/module_spec',
'js/spec/views/active_video_upload_list_spec',
'js/spec/views/previous_video_upload_spec',
'js/spec/views/video_thumbnail_spec',
'js/spec/views/course_video_settings_spec',
'js/spec/views/video_transcripts_spec',
'js/spec/views/previous_video_upload_list_spec',
'js/spec/views/assets_spec',
'js/spec/views/baseview_spec',
'js/spec/views/paged_container_spec',
Expand Down
81 changes: 0 additions & 81 deletions cms/static/js/factories/videos_index.js

This file was deleted.

38 changes: 0 additions & 38 deletions cms/static/js/models/active_video_upload.js

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ define(
'jquery', 'underscore', 'backbone',
'js/views/video/transcripts/utils', 'js/views/video/transcripts/message_manager',
'js/views/video/transcripts/file_uploader', 'sinon',
'xmodule'
'xmodule', 'accessibility'
],
function($, _, Backbone, Utils, MessageManager, FileUploader, sinon) {
'use strict';
Expand Down
Loading
Loading