Show Learn More button for internal courses
arslanashraf7 opened this issue · 3 comments
As a staff, I'd like to be able to mimic the behavior of external courseware in internal courses. This would allow us to take the users to other MIT applications and after payment, enroll the users in the internal courseware in xPRO.
Currently, this has been done like below:
e.g. For a program
- Have created two programs in Django, with different readable IDs
- Created two CMS pages, Internal(Draft) and external (Live) to mimic this behaviour
So the user sees the external page, and upon payment from a third party, there are then manually enrolled in the internal courseware in Django.
Designs and Mockups
Acceptance Criteria:
- Show
Learn More
instead ofEnroll Now
button for the internal course and program pages and take the user to an external website - Make sure that the certificate generation, and enrollment works normally
We discussed a couple of approaches for this:
We recently added external_marketing_url
in CourseRun
model for the sake of saving external marketing URLs for external courseware.
Approach 1:
We can also use external_marketing_url
field from internal courseware runs to mimic the behavior of Learn More
button because we would need a URL to go to when we want internal courseware to take the user to a third party.
Approach 2:
Contrary to Approach 1, we can add a separate new field e.g. external_url
in Internal Courseware pages(CoursePage and ProgramPage) only and use that as an override to show Learn More
button and take the user to another website.
Approach 3:
We remove recently external_marketing_url
from CourseRun
model and take it to Courseware page models in CMS. So the external marketing URL would be added through CMS only. This would assume that the external URL is on the Course
level and not on CourseRun
level. The run level would mean the possibility of different external URLs with different Runs.
Approach 3 seems most reasonable to me at this point.
@pdpinch @cachob Let me know what you think about the above approaches or have any questions.
I agree. Approach 3 fits best with the way the external_marketing_url
is used on the site: a course About page links to another site for marketing purposes.
This will also move the marketing URL up to the course level in the course API, and the program level in the program API, which is appropriate.
closed via #2628