From 0497feabb508484de7e1a47b68303e4f62eb6e7d Mon Sep 17 00:00:00 2001 From: Snir Orlanczyk Date: Thu, 7 Aug 2025 14:56:30 -0400 Subject: [PATCH 1/4] fix scorm 1-2 --- openedxscorm/scormxblock.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openedxscorm/scormxblock.py b/openedxscorm/scormxblock.py index c9e3654..815fe29 100644 --- a/openedxscorm/scormxblock.py +++ b/openedxscorm/scormxblock.py @@ -506,6 +506,7 @@ def set_value(self, data): lesson_status = value if lesson_status in ["passed", "failed"]: success_status = lesson_status + completion_status = "completed" elif lesson_status in ["completed", "incomplete"]: completion_status = lesson_status elif name == "cmi.success_status": From 75f61183e70f5acf43ea927cdec7615c07757c76 Mon Sep 17 00:00:00 2001 From: Snir Orlanczyk Date: Fri, 8 Aug 2025 09:24:50 -0400 Subject: [PATCH 2/4] update changelog --- ...0808_091751_sorlanczyk_fix_scrom1_2_completion.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md diff --git a/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md b/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md new file mode 100644 index 0000000..a1bc2f7 --- /dev/null +++ b/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file From efd98d16143cdd3f23f035832ebcacac56439cc7 Mon Sep 17 00:00:00 2001 From: Snir Orlanczyk Date: Fri, 8 Aug 2025 10:55:26 -0400 Subject: [PATCH 3/4] update changelog --- ...808_091751_sorlanczyk_fix_scrom1_2_completion.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md b/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md index a1bc2f7..f2c3f50 100644 --- a/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md +++ b/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md @@ -1,12 +1 @@ - - - - - \ No newline at end of file +- [Bugfix] fixed logic bug in SCORM 1.2 completion handling, when `lesson_status` is `passed` or `failed` it will ensure course completion status. (by @so-jd) From d7db5622755f016f2982542f1181e938ed7bbb67 Mon Sep 17 00:00:00 2001 From: Snir Orlanczyk Date: Fri, 8 Aug 2025 11:56:00 -0400 Subject: [PATCH 4/4] update change log and logic --- .../20250808_091751_sorlanczyk_fix_scrom1_2_completion.md | 2 +- openedxscorm/scormxblock.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md b/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md index f2c3f50..e518264 100644 --- a/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md +++ b/changelog.d/20250808_091751_sorlanczyk_fix_scrom1_2_completion.md @@ -1 +1 @@ -- [Bugfix] fixed logic bug in SCORM 1.2 completion handling, when `lesson_status` is `passed` or `failed` it will ensure course completion status. (by @so-jd) +- [Bugfix] Set completion_status to completed when lesson_status is passed to ensure course completion status in SCORM 1.2. (by @so-jd) diff --git a/openedxscorm/scormxblock.py b/openedxscorm/scormxblock.py index 815fe29..967962a 100644 --- a/openedxscorm/scormxblock.py +++ b/openedxscorm/scormxblock.py @@ -506,7 +506,8 @@ def set_value(self, data): lesson_status = value if lesson_status in ["passed", "failed"]: success_status = lesson_status - completion_status = "completed" + if lesson_status == "passed": + completion_status = "completed" elif lesson_status in ["completed", "incomplete"]: completion_status = lesson_status elif name == "cmi.success_status":