LEARNER-3438
The user can now enroll in a session, unenroll from a session or change session
from a new course enrollment card on the programs dashboard.
Learners should be able to enroll in future runs of courses in which they have an expired enrollment. Previously, the course card model populated itself by selecting the first course run in which the user was enrolled. When the user tried to enroll in another run, nothing would happen because they were already enrolled in the run the page was trying to enroll them in.
Instead of blindly choosing the first run in which the user is enrolled, we now fall through to the same behavior we use for courses in which the user is not enrolled when the user has expired enrollments.
LEARNER-933
Updates Mako and Underscore templates as well as Backbone models and views so they work with catalog programs. Removes all remaining response munging from the back end.
ECOM-4422
Displays a message and link when a user is enrolled in a program's course run but must upgrade in order to be eligible for the program certificate. ECOM-4220.
When program detail pages are enabled, cards on the listing page will link to their respective detail pages. Includes extensive cleanup of program listing tests. ECOM-4227.