overhangio / openedx-scorm-xblock

SCORM XBlock for Open edX
GNU Affero General Public License v3.0
38 stars 50 forks source link

Scorm (no rating) not attempting #43

Open andre-dietrich opened 1 year ago

andre-dietrich commented 1 year ago

Hi and thanks for the awesome project. I wanted to upload SCORM content, which in principal works, but I tried lots of different configurations, I cannot rate the course. It is always in state not attempted as you can see from the screenshots.

image

I cannot read the cmi.mode, which should be "normal" to rate the course, however I always get an empty string back. When I ignore this setting and store the results via the SCORM API, the values are stored persistent, but not rated. Is there something fundamental that I am missing? I also get the same results by using the standard SCORM-examples from here:

https://scorm.com/scorm-explained/technical-scorm/golf-examples/

THX for any hints or suggestions ...

andre-dietrich commented 1 year ago

According to the scorm-standard defined:

https://scorm.com/scorm-explained/technical-scorm/run-time/

Entry, Mode and Credit

The cmi.entry (cmi.core.entry), cmi.mode (cmi.core.lesson_mode) and cmi.credit (cmi.core.credit) data model elements provide the SCO with some context it can use to provide the learner with the optimal experience.

cmi.entry indicates whether the user is starting the SCO for the first time or if it is resuming a prior attempt. If using bookmarking, the SCO might use this value to prompt the user to start from the beginning or from the point at which the previous attempt ended.

cmi.mode indicates whether the learner is launching this SCO: normally – in a “live” training session; in browse mode – the user is browsing a catalog of training and wants to “preview” this course; or, in review mode – the user has already completed the SCO and is coming back to review the material. In browse mode, the SCO author should consider altering the SCOs behavior to provide more free form navigation, provide an overview or map of the course and possibly hide assessments. In review mode, the SCO author should similarly consider allowing the leaner complete freedom of navigation. In review mode, the learner might also be able to freely navigate any tests and browse a list of correct answers. When launched in review mode, a SCO should be careful not to change the learner’s status or reset the score.

cmi.credit indicates whether or not this SCO is being attempt for credit, or whether or not it “counts”. Similar to browse mode, if a SCO is launched for no credit, the behavior should probably be altered.

I think the cmi.mode or cmi.core.lesson_mode could be easily taken from the LMS, and are defined by the state the user is in, either it is in preview-mode or active:

image

so that these settings match the current state.

The cmi.mode is read only.

regisb commented 1 year ago

Hi @andre-dietrich! I'm not sure I understand your question. The "not attempted" message and grade are displayed on the basis of the values "cmi.completion_status" and "cmi.success_status". These seem unrelated to the "cmi.mode" and "cmi.core.lesson_mode" flags you are mentioning.

I cannot rate the course

What do you mean exactly by that? I do not know what "rating" means in the context of scorm.

andre-dietrich commented 1 year ago

Hi, to my knowledge, the mode has to be set to differentiate between a scored course, a preview or if another person is reviewing the course or the results of another user:

image

https://scorm.com/scorm-explained/technical-scorm/run-time/

I tried this also with the official SCORM-golf examples, you can download them here:

https://scorm.com/scorm-explained/technical-scorm/golf-examples/

In all cases the course could not be loaded, because the expected cmi.mode was not set. I just tried out edX for the first time, but I think these "view this course as" could be matched to the cmi.mode.

regisb commented 1 year ago

What do you mean exactly by that? I do not know what "rating" means in the context of scorm.

Please help me better understand your problem by answering my question above.

andre-dietrich commented 1 year ago

Rating/Scoring means, that the state of quizzes is stored within the LMS as well as SCORE-values, if cmi.mode is not set, the package will not report back to the LMS.

Did you try to load the official SCORM-examples from the website?

regisb commented 1 year ago

Right, I think I better understand your issue.

But yes, I did run some of the official SCORM packages. Here's a screenshot of an xblock for which I attempted the MCQ:

Screenshot from 2023-09-22 10-24-50

This is the "RuntimeBasicCalls_SCORM20043rdEdition.zip" golf example.

You can try it out on the demo server: https://apps.demo.openedx.overhang.io/learning/course/course-v1:edX+DemoX+Demo_Course/block-v1:edX+DemoX+Demo_Course+type@sequential+block@528a58b1a9a24f4a8d665e00098c7e90/block-v1:edX+DemoX+Demo_Course+type@vertical+block@1c1aae685dfb47fdadd9dd73ca8df5f2

Exactly what zip file does not work for you?

andre-dietrich commented 1 year ago

Okay, now I see the problem ... The cmi.mode is a read-only value, when it is set to browse or review by the LMS, it indicates to the SCORM-package that new results should not be stored (at least that is how I interpret this). Thus in Moodle and other LMS this value is set and probably also writing-state back is blocked in such a case.

cmi.mode (“browse”, “normal”, “review”, RO) Identifies one of three possible modes in which the SCO may be presented to the learner

Thus, our export retrieves this value from the LMS, such as visiting the course only for preview, will not result in any storage to the backend. If this value is ignored, and the backend does not protect writing, this will work, but not as we expect it to be...

That is, why I thought, the "audit" setting can be used to match this, whether a student has enrolled the course, thus cmi.mode = "normal", or staff and others are only testing "browse", etc.

I hope this makes sense?

andre-dietrich commented 1 year ago

By the way, this is a course I want to upload to edX

course.zip

regisb commented 1 year ago

I hope this makes sense?

Nope, not for me :sweat: It's super hard for me to understand your explanation if I don't understand what is your problem in the first place. You can help me by answering my questions. In particular:

Exactly what zip file does not work for you?

The "output.zip" file you uploaded does not look like a standard golf example from the SCORM website. Do you have a standard example that does not work with this xblock?

andre-dietrich commented 1 year ago

The SCORM 1.2 works with Moodle, 2004 with for example ILIAS, here is the example for 1.2:

output.zip

As you can see from the video, Moodle sets the value cmi.mode in preview mode and normal, if I enroll the course:

https://www.youtube.com/watch?v=apV2BW-MPho

(video is atm processed)

is it possible for you, to set the cmi.mode based on the Audit-mode, to "normal", "browse" or "review"?

image

regisb commented 1 year ago

is it possible for you, to set the cmi.mode based on the Audit-mode, to "normal", "browse" or "review"?

I have done this in my dev environment. But I do not know whether what I am doing is is "right" because all you gave me is a large, custom SCORM unit. Setting the "cmi.mode" and "cmi.core.lesson_mode" to "normal" does not change the "attempted" status.

Please do read my comments. In particular:

The "output.zip" file you uploaded does not look like a standard golf example from the SCORM website. Do you have a standard example that does not work with this xblock?

ziafazal commented 9 months ago

We are unable to reproduce this issue. @andre-dietrich Could you please list down steps to reproduce this one?

andre-dietrich commented 9 months ago

The problem was, that SCORM has different modes for preview or review in which it can operate, these are not set by your plugin. I now integrated a special case, if cmi.mode is not set the course and all results are stored in the LMS ...

rimsha-zaib commented 9 months ago

I tried with multiple standard SCORM-examples, the MCQ attempt was correctly graded. As below,

Screenshot 2024-01-05 at 12 36 35 PM

andre-dietrich commented 9 months ago

Yes, I know that it works and grading works also ... but you can set a course to review or preview mode, without any scoring at all, where others can try it out before it gets published ... This "cmi.mode" can be passed to the SCORM-package. In this case no rating will happen and no scores or states will be stored ...