From e6e3bade93a3e09bcaf629ddc1e6d405874c3263 Mon Sep 17 00:00:00 2001 From: Matt Tuchfarber Date: Fri, 7 May 2021 15:17:32 -0400 Subject: [PATCH] feat: Show course enrollment with cert on dash Previously the programs dashboard picked the first course run enrollment for a course to display on the dash if the user had multiple. Now it has a preference for the enrolled course run that earned a certificate if there is one. --- .../js/learner_dashboard/models/course_card_model.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lms/static/js/learner_dashboard/models/course_card_model.js b/lms/static/js/learner_dashboard/models/course_card_model.js index 9a0d38bade..0b854e2e5a 100644 --- a/lms/static/js/learner_dashboard/models/course_card_model.js +++ b/lms/static/js/learner_dashboard/models/course_card_model.js @@ -17,7 +17,14 @@ class CourseCardModel extends Backbone.Model { } getCourseRun(course) { - const enrolledCourseRun = course.course_runs.find(run => run.is_enrolled); + // A learner might have have enrolled in a course multiple times, + // so we want to get the enrollment with a certificate if it exists + // otherwise any enrolled run. + let enrolledCourseRun = course.course_runs.find(run => run.is_enrolled && run.certificate_url); + if (!enrolledCourseRun) { + enrolledCourseRun = course.course_runs.find(run => run.is_enrolled); + } + const openEnrollmentCourseRuns = this.getEnrollableCourseRuns(); let desiredCourseRun;