From f446e79ccab6f3cedc91c6884e669e9192870d7c Mon Sep 17 00:00:00 2001 From: Tyler Hallada Date: Thu, 9 Nov 2017 14:18:56 -0500 Subject: [PATCH] WIP README for the Schedules Django app --- openedx/core/djangoapps/schedules/README.md | 118 ++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 openedx/core/djangoapps/schedules/README.md diff --git a/openedx/core/djangoapps/schedules/README.md b/openedx/core/djangoapps/schedules/README.md new file mode 100644 index 0000000000..c81faf31a4 --- /dev/null +++ b/openedx/core/djangoapps/schedules/README.md @@ -0,0 +1,118 @@ +# Schedules + +High-level description of what the app is. + +## Definitions + +* Schedule +* Schedule Experience +* Upgrade Deadline + - May either mean the soft upgrade deadline on the Schedule model or the + hard experation date for upgrading on the course. +* Recurring Nudge +* Upgrade Reminder +* Course Update +* Highlights +* Resolver +* Task + + +## User-flow + +When a user enrolls in a self-paced course and the necessary flags and +configurations are enabled, a Schedule and ScheduleExperience is created for +them. The Schedule has an upgrade deadline set for some number of days from the +enrollment date. + +## Getting Started + +These instructions assume you have already setup an Open edX instance or have a +Running devstack. See the [Open edX Developer's +Guide](http://edx.readthedocs.io/projects/edx-developer-guide/en/latest/) for +information on how to set those up. + +### Setting up edX Automated Communication Engine (A.C.E.) + +The Schedule app relies on ACE, which requires a +[Sailthru](http://www.sailthru.com/) back-end for sending emails. See the +[edx-ace +documentation](https://edx-ace.readthedocs.io/en/latest/getting_started.html#sailthruemailchannel-settings) +for instructions on setting up a Sailthru channel in ACE. + +### Django Settings + +Edit the `lms.env.json` and add/change the following: + +```python +FEATURES = { + 'ENABLE_MKTG_SITE': True, +} +MKTG_URLS = { + 'ROOT': '', +} +SOCIAL_MEDIA_FOOTER_URLS = { + 'tumblr': '', + 'reddit': '', + 'twitter': '', + 'google_plus': '', + 'youtube': '', + 'linkedin': '', + 'meetup': '', + 'facebook': '', +} +MOBILE_STORE_URLS = { + 'google': '', + 'apple': '', +} +CONTACT_MAILING_ADDRESS = '' +ACE_ENABLED_CHANNEL = ['sailthru_email'] +ACE_ENABLED_POLICIES = ['bulk_email_optout'] +ACE_CHANNEL_SAILTHRU_TEMPLATE_NAME = '' +``` + +### Configuration Models + +Make sure a Site has been created at `/admin/sites/site`. + +In the Django admin panel at `/admin/schedules/scheduleconfig/` create +a ScheduleConfig and link it to the Site. Make sure to enable all of the +settings: + +* `create_schedules`: enables creating new Schedules when new Course Enrollments + are created. +* `enqueue_*`: allows sending email tasks of this message type to celery. +* `deliver_*`: allows delivering emails through ACE for this message type. +* `hold_back_ratio`: ratio of all new Course Enrollments that should NOT have a + Schedule created. + +If you are testing with a particular course, make sure that it is self-paced by +going to `/admin/self_paced/selfpacedconfiguration/` and add an +enabled self paced config. Then, go to Studio settings for the course and change +the Course Pacing value to "Self-Paced". Note that the Course Start Date has to +be set to sometime in the future in order to change the Course Pacing. + +### Waffle Flags and Switches + +#### Global + +All waffle flags and switches can be created at `