Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New completion text element in menu header #192

Open
zubairslamdien opened this issue May 2, 2024 · 7 comments
Open

New completion text element in menu header #192

zubairslamdien opened this issue May 2, 2024 · 7 comments
Assignees

Comments

@zubairslamdien
Copy link
Contributor

Subject of the issue/enhancement/features

We need completion text that will only appear when all course topics are complete.

@oliverfoster
Copy link
Member

oliverfoster commented May 3, 2024

Is this like an alternative to the body text or a separate passage? A bit like assessmentResults completion text?

Is it going to take into account assessment completion like the LMS tracking completion or is it just for content completion? (I would go for LMS completion see tracking.js for the logic and events).

@zubairslamdien
Copy link
Contributor Author

It's a separate element and it should just be completion of all content @oliverfoster. I assumed that using _isComplete from the course model would be reliable in the menu template. I'll take a look into what you've suggested.

@oliverfoster
Copy link
Member

oliverfoster commented May 3, 2024

Bearing in mind that this behaviour is for all courses for anyone who uses the adapt_framework.

Users will often see their course completion as incomplete on an LMS before they see it in the course. The LMS completion is what tells their employers or training provider that the learner has satisfied all of the requirements of the e-learning.

course._isComplete is when all of the content - the contentobjects, articles, blocks and components in the course - is marked as _isComplete: true, excluding _isOptional: true.

Using just course._isComplete isn't sufficient to replicate an identical representation of LMS completion. By using course._isComplete alone the course could appear complete in the browser to the learner but on their LMS and to their employer or training provider the learner wouldn't have completed the e-learning.

The disparity between course._isComplete and LMS complete, is usually around the pass/fail requirements of the main assessment which are detailed in the tracking config config.json:_tracking._requireAssessmentCompleted (tracking is the word for LMS completion in adapt) alongside the course._isComplete config config.json:_tracking._requireContentCompleted. You can also see that it's possible to have lms completion without content completion by setting config.json:_tracking._requireContentCompleted === false.

Content completion and assessment completion are combined together with a config in the tracking.js file to give the event tracking:complete, which is a reflection of LMS completion, this status is sent by spoor to the LMS.

If you need a model property to represent LMS/tracking completion so that you can easily render it in a template, it might be a good idea to set a model property at these lines, something like Adapt.course.set('_isTrackingComplete', true);, you would then use course._isTrackingComplete instead of course._isComplete to determine you completion text presentation. Or you could listen to the tracking:complete event and update the menu thereafter, maybe?

@StuartNicholls
Copy link
Contributor

StuartNicholls commented May 3, 2024

We could also do with a mock-up for this, I'm not sure it should sit within the header but perhaps that not what was meant. Personally, I'd say it needs to sit between the header and the items if we were to go this way. Additionally, this should be a configurable option rather than the 'default' I think. But I do know, this gets asked for a lot!

Topic completion is already represented as ticks (or full progress) on menu items and the pop-up - I think - was just intended to underline that, but thats a very good point @oliverfoster , perhaps we do need the completion pop-up to be LMS aware or at least have that option? Not sure.

I'll upload a mock-up shortly to help out

@oliverfoster
Copy link
Member

It's not LMS awareness as such, it's more specifically awareness of the tracking criteria set in the course config which determines when to send the completed, passed or failed status to the LMS. Technically the course is not complete unless its configured tracking criteria are fulfilled and that means considering more than just the course._isComplete value here. We definitely should not be telling the user the course is complete when the tracking criteria have not been fulfilled. It doesn't need an option, it just needs to be implemented in the way I've explained.

A visual mockup of how it looks would be stupendous.

@StuartNicholls
Copy link
Contributor

It's not LMS awareness as such, it's more specifically awareness of the tracking criteria set in the course config which determines when to send the completed, passed or failed status to the LMS. Technically the course is not complete unless its configured tracking criteria are fulfilled and that means considering more than just the course._isComplete value here. We definitely should not be telling the user the course is complete when the tracking criteria have not been fulfilled. It doesn't need an option, it just needs to be implemented in the way I've explained.

A visual mockup of how it looks would be stupendous.

That makes perfect sense to me.

@StuartNicholls
Copy link
Contributor

I'll leave the mock-up for the boxmenu styling and other visual elements to @zubair but I've added a simple mock-up of a suggested use case for discussion

mock-boxmenu-usecase

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

When branches are created from issues, their pull requests are automatically linked.

3 participants