diff --git a/common/lib/xmodule/xmodule/course_module.py b/common/lib/xmodule/xmodule/course_module.py index a209249c1f..18e8db2d41 100644 --- a/common/lib/xmodule/xmodule/course_module.py +++ b/common/lib/xmodule/xmodule/course_module.py @@ -9,6 +9,7 @@ from datetime import datetime import requests from lazy import lazy from lxml import etree +from openedx.core.lib.license import LicenseMixin from openedx.core.lib.xblock_fields.fields import Date from openedx.core.lib.xblock_fields.inherited_fields import DEFAULT_START_DATE from path import Path as path @@ -16,7 +17,6 @@ from pytz import utc from xblock.fields import Boolean, Dict, Float, Integer, List, Scope, String from xmodule import course_metadata_utils from xmodule.graders import grader_from_conf -from openedx.core.lib.license import LicenseMixin from xmodule.seq_module import SequenceDescriptor, SequenceModule from xmodule.tabs import CourseTabList, InvalidTabsException diff --git a/common/lib/xmodule/xmodule/video_module/video_module.py b/common/lib/xmodule/xmodule/video_module/video_module.py index ac22e978b5..af1d5ca506 100644 --- a/common/lib/xmodule/xmodule/video_module/video_module.py +++ b/common/lib/xmodule/xmodule/video_module/video_module.py @@ -18,35 +18,33 @@ import logging import random from collections import OrderedDict from operator import itemgetter -from lxml import etree + from pkg_resources import resource_string from django.conf import settings - -from openedx.core.lib.cache_utils import memoize_in_request_cache +from lxml import etree +from opaque_keys.edx.locator import AssetLocator from openedx.core.djangoapps.video_config.models import HLSPlaybackEnabledFlag +from openedx.core.lib.cache_utils import memoize_in_request_cache +from openedx.core.lib.license import LicenseMixin from xblock.core import XBlock from xblock.fields import ScopeIds from xblock.runtime import KvsFieldData -from opaque_keys.edx.locator import AssetLocator - -from xmodule.modulestore.inheritance import InheritanceKeyValueStore, own_metadata -from xmodule.x_module import XModule, module_attr -from xmodule.editing_module import TabsEditingDescriptor -from xmodule.raw_module import EmptyDataRawDescriptor -from xmodule.xml_module import is_pointer_tag, name_to_pathname, deserialize_field -from xmodule.exceptions import NotFoundError from xmodule.contentstore.content import StaticContent -from xmodule.validation import StudioValidationMessage, StudioValidation - -from .transcripts_utils import VideoTranscriptsMixin, Transcript, get_html5_ids -from .video_utils import create_youtube_string, get_poster, rewrite_video_url, format_xml_exception_message -from .bumper_utils import bumperize -from .video_xfields import VideoFields -from .video_handlers import VideoStudentViewHandlers, VideoStudioViewHandlers - +from xmodule.editing_module import TabsEditingDescriptor +from xmodule.exceptions import NotFoundError +from xmodule.modulestore.inheritance import InheritanceKeyValueStore, own_metadata +from xmodule.raw_module import EmptyDataRawDescriptor +from xmodule.validation import StudioValidation, StudioValidationMessage from xmodule.video_module import manage_video_subtitles_save -from openedx.core.lib.license import LicenseMixin +from xmodule.x_module import XModule, module_attr +from xmodule.xml_module import deserialize_field, is_pointer_tag, name_to_pathname + +from .bumper_utils import bumperize +from .transcripts_utils import Transcript, VideoTranscriptsMixin, get_html5_ids +from .video_handlers import VideoStudentViewHandlers, VideoStudioViewHandlers +from .video_utils import create_youtube_string, format_xml_exception_message, get_poster, rewrite_video_url +from .video_xfields import VideoFields # The following import/except block for edxval is temporary measure until # edxval is a proper XBlock Runtime Service. diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index c34b744fe6..6c97d46ee2 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -8,7 +8,17 @@ import logging from collections import OrderedDict from functools import partial +import static_replace from capa.xqueue_interface import XQueueInterface +from courseware.access import get_user_role, has_access +from courseware.entrance_exams import user_can_skip_entrance_exam, user_has_passed_entrance_exam +from courseware.masquerade import ( + MasqueradingKeyValueStore, + filter_displayed_blocks, + is_masquerading_as_specific_student, + setup_masquerade +) +from courseware.model_data import DjangoKeyValueStore, FieldDataCache from django.conf import settings from django.contrib.auth.models import User from django.core.cache import cache @@ -18,68 +28,53 @@ from django.core.urlresolvers import reverse from django.http import Http404, HttpResponse from django.views.decorators.csrf import csrf_exempt from edx_proctoring.services import ProctoringService -from eventtracking import tracker -from opaque_keys import InvalidKeyError -from opaque_keys.edx.keys import UsageKey, CourseKey -from opaque_keys.edx.locations import SlashSeparatedCourseKey -from requests.auth import HTTPBasicAuth -from track import contexts -from xblock.core import XBlock -from xblock.django.request import django_to_webob_request, webob_to_django_response -from xblock.exceptions import NoSuchHandlerError, NoSuchViewError -from xblock.reference.plugins import FSService - -import static_replace -from courseware.access import has_access, get_user_role -from courseware.entrance_exams import ( - user_can_skip_entrance_exam, - user_has_passed_entrance_exam -) -from courseware.masquerade import ( - MasqueradingKeyValueStore, - filter_displayed_blocks, - is_masquerading_as_specific_student, - setup_masquerade, -) -from courseware.model_data import DjangoKeyValueStore, FieldDataCache from edxmako.shortcuts import render_to_string +from eventtracking import tracker from lms.djangoapps.grades.signals.signals import SCORE_PUBLISHED from lms.djangoapps.lms_xblock.field_data import LmsFieldData from lms.djangoapps.lms_xblock.models import XBlockAsidesConfig from lms.djangoapps.lms_xblock.runtime import LmsModuleSystem from lms.djangoapps.verify_student.services import VerificationService +from opaque_keys import InvalidKeyError +from opaque_keys.edx.keys import CourseKey, UsageKey +from opaque_keys.edx.locations import SlashSeparatedCourseKey from openedx.core.djangoapps.bookmarks.services import BookmarksService from openedx.core.djangoapps.crawlers.models import CrawlersConfig from openedx.core.djangoapps.credit.services import CreditService +from openedx.core.djangoapps.monitoring_utils import set_custom_metrics_for_course_key, set_monitoring_transaction_name from openedx.core.djangoapps.util.user_utils import SystemUser -from openedx.core.djangoapps.monitoring_utils import ( - set_custom_metrics_for_course_key, set_monitoring_transaction_name -) +from openedx.core.lib.license import wrap_with_license +from openedx.core.lib.url_utils import quote_slashes, unquote_slashes +from openedx.core.lib.xblock_utils import request_token as xblock_request_token from openedx.core.lib.xblock_utils import ( + add_staff_markup, replace_course_urls, replace_jump_to_id_urls, replace_static_urls, - add_staff_markup, - wrap_xblock, - request_token as xblock_request_token, + wrap_xblock ) -from openedx.core.lib.url_utils import unquote_slashes, quote_slashes +from requests.auth import HTTPBasicAuth from student.models import anonymous_id_for_user, user_by_anonymous_id from student.roles import CourseBetaTesterRole +from track import contexts from util import milestones_helpers from util.json_request import JsonResponse from util.model_utils import slugify from util.sandboxing import can_execute_unsafe_code, get_python_lib_zip +from xblock.core import XBlock +from xblock.django.request import django_to_webob_request, webob_to_django_response +from xblock.exceptions import NoSuchHandlerError, NoSuchViewError +from xblock.reference.plugins import FSService from xblock.runtime import KvsFieldData from xblock_django.user_service import DjangoXBlockUserService from xmodule.contentstore.django import contentstore from xmodule.error_module import ErrorDescriptor, NonStaffErrorDescriptor from xmodule.exceptions import NotFoundError, ProcessingError from xmodule.lti_module import LTIModule -from openedx.core.lib.license import wrap_with_license from xmodule.modulestore.django import modulestore from xmodule.modulestore.exceptions import ItemNotFoundError from xmodule.x_module import XModuleDescriptor + from .field_overrides import OverrideFieldData log = logging.getLogger(__name__)