From 87393cd91fdd902fd96791dca6c9156f3a16c9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=86=D0=B2=D0=B0=D0=BD=20=D0=9D=D1=94=D0=B4=D1=94=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=96=D1=86=D0=B5=D0=B2?= Date: Mon, 17 Jun 2024 19:31:41 +0300 Subject: [PATCH] fix: fix problem block offline generations --- openedx/features/offline_mode/assets_management.py | 2 +- openedx/features/offline_mode/constants.py | 2 +- openedx/features/offline_mode/renderer.py | 2 +- openedx/features/offline_mode/tasks.py | 6 ++++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/openedx/features/offline_mode/assets_management.py b/openedx/features/offline_mode/assets_management.py index 3594d31c24c0..68d662168300 100644 --- a/openedx/features/offline_mode/assets_management.py +++ b/openedx/features/offline_mode/assets_management.py @@ -58,7 +58,7 @@ def save_asset_file(temp_dir, xblock, path, filename): static_path = get_static_file_path(filename) content = read_static_file(static_path) file_path = os.path.join(temp_dir, 'assets', filename) - except (ItemNotFoundError, NotFoundError): + except (FileNotFoundError, ItemNotFoundError, NotFoundError): log.info(f"Asset not found: {filename}") else: diff --git a/openedx/features/offline_mode/constants.py b/openedx/features/offline_mode/constants.py index a1337a7029c1..771b341505aa 100644 --- a/openedx/features/offline_mode/constants.py +++ b/openedx/features/offline_mode/constants.py @@ -9,7 +9,7 @@ MATHJAX_CDN_URL = f'https://cdn.jsdelivr.net/npm/mathjax@{MATHJAX_VERSION}/MathJax.js' MATHJAX_STATIC_PATH = os.path.join('assets', 'js', f'MathJax-{MATHJAX_VERSION}.js') -DEFAULT_OFFLINE_SUPPORTED_XBLOCKS = ['html'] +DEFAULT_OFFLINE_SUPPORTED_XBLOCKS = ['html', 'problem'] OFFLINE_SUPPORTED_XBLOCKS = getattr(settings, 'OFFLINE_SUPPORTED_XBLOCKS', DEFAULT_OFFLINE_SUPPORTED_XBLOCKS) RETRY_BACKOFF_INITIAL_TIMEOUT = 60 # one minute diff --git a/openedx/features/offline_mode/renderer.py b/openedx/features/offline_mode/renderer.py index bb62792172bc..c0603b3c831e 100644 --- a/openedx/features/offline_mode/renderer.py +++ b/openedx/features/offline_mode/renderer.py @@ -81,7 +81,7 @@ def render_xblock_from_lms(self): str(self.usage_key), disable_staff_debug_info=True, course=course, - will_recheck_access='1', + will_recheck_access=False, ) enable_completion_on_view_service = False diff --git a/openedx/features/offline_mode/tasks.py b/openedx/features/offline_mode/tasks.py index bffbe0396a8f..36b81a7bd3ac 100644 --- a/openedx/features/offline_mode/tasks.py +++ b/openedx/features/offline_mode/tasks.py @@ -21,8 +21,10 @@ def generate_offline_content_for_course(course_id): course_key = CourseKey.from_string(course_id) for offline_supported_block_type in OFFLINE_SUPPORTED_XBLOCKS: for xblock in modulestore().get_items(course_key, qualifiers={'category': offline_supported_block_type}): - html_data = XBlockRenderer(str(xblock.location)).render_xblock_from_lms() - generate_offline_content_for_block.apply_async([str(xblock.location), html_data]) + if hasattr(xblock, 'closed') and not xblock.closed(): + block_id = str(xblock.location) + html_data = XBlockRenderer(block_id).render_xblock_from_lms() + generate_offline_content_for_block.apply_async([block_id, html_data]) @shared_task(