From 8490b07c905dfc142b25346ee3ae325d3d1ddacd Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 5 Mar 2025 16:31:14 +0530 Subject: [PATCH] fix: scorm files getting wrong path --- lms/page_renderers.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lms/page_renderers.py b/lms/page_renderers.py index 91daf29d..d0e8338b 100644 --- a/lms/page_renderers.py +++ b/lms/page_renderers.py @@ -6,6 +6,7 @@ import re import os import mimetypes import frappe +from frappe.utils import get_files_path from frappe.website.page_renderers.base_renderer import BaseRenderer from frappe.website.page_renderers.document_page import DocumentPage from frappe.website.page_renderers.list_page import ListPage @@ -173,3 +174,23 @@ class SCORMRenderer(BaseRenderer): ) response.mimetype = mimetypes.guess_type(index_path)[0] return response + elif not os.path.exists(path): + chapter_folder = "/".join(self.path.split("/")[:3]) + chapter_folder_path = os.path.realpath( + frappe.get_site_path("public", chapter_folder) + ) + file = path.split("/")[-1] + correct_file_path = None + + for root, dirs, files in os.walk(chapter_folder_path): + if file in files: + correct_file_path = os.path.join(root, file) + break + + if correct_file_path: + f = open(correct_file_path, "rb") + response = Response( + wrap_file(frappe.local.request.environ, f), direct_passthrough=True + ) + response.mimetype = mimetypes.guess_type(correct_file_path)[0] + return response