Hi everyone. I’m running quince.1 in production with Tutor. Today I realized that if a learner is not eligible for certificate, he’ll see this message under the course thumbnail on dashboard.
When clicking on the “View grades” link, the user is redirected to the old progress page instead of the learning MFE progress page. So I took a look at the API calls and this is the response for https://mylms.com/api/learner_home/init
{
"courses": [
{
"courseRun": {
"isStarted": true,
"isArchived": true,
"courseId": "course-my-sample-course",
"minPassingGrade": "0.50",
"startDate": "2023-10-10T12:30:00+03:30",
"endDate": "2024-01-01T03:00:00+03:30",
"homeUrl": "https://mylms.com/learning/course/course-my-sample-course/home",
"marketingUrl": null,
"progressUrl": "/courses/course-my-sample-course/progress",
"unenrollUrl": "/course_run/course-my-sample-course/refund_status",
"upgradeUrl": null,
"resumeUrl": "/courses/course-my-sample-course/jump_to/block-v1-block-id"
},
.....
As you see, unlike progressUrl
, homeUrl
is pointing to the learning MFE. The learner-dashboard MFE has handled the URL for “View grades” link as follows:
// src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.jsx
export const CertificateBanner = ({ cardId }) => {
....
const { minPassingGrade, progressUrl } = reduxHooks.useCardCourseRunData(cardId);
....
if (isArchived) {
return (
<Banner variant="warning">
{formatMessage(messages.notEligibleForCert)}
{' '}
<Hyperlink isInline destination={progressUrl}>{formatMessage(messages.viewGrades)}</Hyperlink>
</Banner>
);
}
So it’s using the exact URL sent from backend and that URL is not pointing to the learning MFE. I believe this is confusing for the user that clicking on the progress tab of the learning MFE will take him to the learning MFE progress page but clicking on the view grades link in the dashboard MFE takes him to the old progress page, specially when learning MFE is enabled by default.
This issue happens in both the new learner dashboard MFE and the old dashboard.