Closed deepdad closed 4 years ago
Here is an example SCORM v1.2 course that doesn't work. https://drive.google.com/file/d/13_R6XrDgLD47cH0LYMeYPpO0wpt-bj3S/view?usp=sharing
I also made this very simple Single Page course in Evolve (appitierre.com) and didn't fill anything in. Exported it as SCORM v1.2, I try uploading this in studio but it gives the "Studio's having trouble saving your work" error popup. This popup also appears when the upload succeeds though.
On the server side, I don't see anything strange. The logs log an error for a file or folder that already "exists", this is the error that causes the popup on the client side.
When I look inside the studio application container though, I see nothing odd. I can deleted the folder for the SCORM, then upload it in the web client. that causes the folder to be created, but that looks very normal. Well normal, what I see is that not all the files are uploaded. And that the subfolders are uploaded as empty files, which may be the cause of the error, not sure.
adlcp_rootv1p2.xsd course imsmanifest.xml ims_xml.xsd libraries main.html player assets imscp_rootv1p1p2.xsd imsmd_rootv1p2p1.xsd index.html log_output.html offline_API_wrapper.js popup.html
all flat files
and the rest are missing.
Hi @deepdad! Thanks for the thorough report. In particular, the SCORM v1.2 example package you linked above was very useful.
This bug is due to the fact that some of the ZipInfo
objects listed by the .zipinfo()
method are folders, not files. In Python 3.6 there exists a is_dir()
method but this method is not available in Python 3.5, so we'll have to resort to something else.
The issue could not be reproduced with the other zip files, probably because the ZipInfo objects were listed in a different order.
This issue will be fixed in the next Tutor release.
Hi @regisb is_dir could work via the os module I guess? Are you switching to Python3.6? 3.8 is the latest.
Thanks a lot for fixing BTW.
Unfortunately we cannot switch to Python 3.6, as Open edX currently supports only Python 3.5. An upgrade to Python 3.8 is scheduled in the coming months though: https://openedx.atlassian.net/wiki/spaces/AC/pages/1165395730/Upgrades
How can I apply your patch without adding the repo as a private requirement and without waiting for the next release please?
This patch is already released as part of v10.2.0.
The XBlock causes there to be a popup after uploading that "Studio's having trouble saving your work".
In the logs for the CMS, a FileExistsError is logged originating from the XBlock:
Some SCORM content (notably the two SCORMS linked here) are consequently saved, publishable an working in the course, while apparently one other one (made with Evolve) does not work hereafter. However, in both caes the error is logged and it seems to be the cause for the other SCORM not working.