Files
edx-platform/openedx/features/course_experience
Régis Behmo 307457a255 Simplify hack to obtain waffle module names
Instead of going up the stacktrace to find the module names of waffle
flags and switches, we manually pass the module __name__ whenever the
flag is created. This is similar to `logging.getLogger(__name__)`
standard behaviour.

As the waffle classes are used outside of edx-platform, we make the new
module_name argument an optional keyword argument. This will change once
we pull waffle_utils outside of edx-platform.

Note that the module name is normally only required to view the list of
existing waffle flags and switches. The module name should not be
necessary to verify if a flag is enabled. Thus, maybe it would make
sense to create a `add` class methor similar to:

    class WaffleFlag:
        @classmethod
        def add(cls, namespace, flag, module):
            instance = cls(namespace, flag)
            cls._class_instances.add((instance, module))
2020-09-14 09:30:24 +02:00
..
2020-08-28 10:31:59 -04:00
2018-05-02 15:21:45 -04:00
2019-12-30 10:35:30 -05:00
2019-05-29 03:00:19 -04:00
2020-06-10 13:59:21 -04:00
2019-12-30 10:35:30 -05:00

Status: Maintenance

Responsibilities
================
The Course Experience directory contains a Django application that provides the
Course Home page (or course landing page), and various resources in support of
the landing experience.


Direction: Deprecate
====================
This will be replaced eventually by new UI in the form of Microfrontends.  New functionality should not be added here.


Glossary
========

More Documentation
==================

The course experience consists of a number of views:

1. **Course Home**

   The course home page is the landing page for the course. It presents
   the learner with information necessary to understand the purpose of the
   course, its content, and its milestones. It includes a "Course Tools"
   section that provides links to other tools associated with the course.
   For example, it includes tools such as reviews, updates and bookmarks.

2. **Welcome Message**

   The welcome message is a fragment view which is typically shown on the
   course home page. It provides the user with a description of the course
   and helps them to understand its requirements.

3. **Course Outline**

   The course outline is a fragment view which shows an outline of the content
   of the course.

4. **Course Dates**

   The course dates fragment is a view which shows users important dates for the
   course, such as the start and end dates.

5. **Course Sock**

   The course sock is a fragment view which is typically shown just above
   the footer of course pages (hence the name). The default implementation
   presents the users with a message encouraging them to purchase a verified
   certificate.

6. **Course Updates**

   The course updates page shows the user all of the course team's updates
   in a scrolling list. The updates page is also provided as a course tool.

7. **Course Reviews**

   This page shows the user reviews of the course from an external provider.
   The default provider is `CourseTalk`_. The reviews page is also provided
   as a course tool.

A number of the features in the course experience are controlled via Waffle
flags. For documentation, see `Waffle flag definitions`_.

.. _CourseTalk: https://www.coursetalk.com/
.. _Waffle flag definitions: https://github.com/edx/edx-platform/blob/master/openedx/features/course_experience/__init__.py