This commit adds the requisite settings and startup features to
enable integration of themes into the edX platform. It does not
yet provide hooks in any of the templates, but it does cause the
main `lms/static/sass/application.scss` file to `@import` a theme's
base Sass. Template hooks will come down the road.
CHANGELOG
---------
Define a new `MITX_FEATURE`, `USE_CUSTOM_THEME`, that when enabled,
can be used in templates to determine whether or not custom theme
templates should be used instead of the defaults.
Also define a new setting, `THEME_NAME`, which will be used to
locate theme-specific files. Establish the convention that themes
will be stored outside of the `REPO_ROOT`, inside the `ENV_ROOT`,
in a directory named `themes/`. `themes/<THEME_NAME>` will store
the files for a particular theme.
Provide a function, `enable_theme`, that modifies the template and
static asset load paths appropriately to include the theme's files.
Move the main LMS Sass file to a Mako template that conditionally
`@import`s the theme's base Sass file when a theme is enabled.
Add logic to the assets Rakefile to properly preprocess any Sass/
Mako templates before compiling them.
If a course is not started, the course image and title on the dashboard link
to the course about page. Because the LMS course about pages do not exist
(i.e. 404) with the marketing site enabled, we simply do not use a link if
the course has not started.
If a user is already registered for a course but the course has not started
yet, display a grey button that says "you are registered" and goes nowhere
instead of the blue "access courseware" button, which goes to the LMS course
about page (which 404s).
The help tab opens a modal dialog that directs the user at various resources
(e.g. the site FAQ and course forums) and allows the user to submit feedback
to the feedback endpoint (which will ultimately create a ticket for the
student support team).
Now that we are using separate pages for login and registration rather than
modals, clicking the registration button for a course should direct an
unauthenticated user to the registration page, and the user should be enrolled
in the course upon successful registration. Likewise, an unauthenticated user
attempting to unenroll from a course should be directed to the login page and
subsequently unenrolled from the course upon successful login. The enrollment
change service also now uses HTTP status codes rather than JSON to communicate
status to the front end.