self_paced_overrides.py 980 Bytes
Newer Older
1 2 3 4 5
"""
Field overrides for self-paced courses. This allows overriding due
dates for each block in the course.
"""

6
from openedx.core.djangoapps.self_paced.models import SelfPacedConfiguration
7

8 9
from .field_overrides import FieldOverrideProvider

10 11 12 13 14 15 16 17

class SelfPacedDateOverrideProvider(FieldOverrideProvider):
    """
    A concrete implementation of
    :class:`~courseware.field_overrides.FieldOverrideProvider` which allows for
    due dates to be overridden for self-paced courses.
    """
    def get(self, block, name, default):
18
        # Remove due dates
19 20
        if name == 'due':
            return None
21 22 23
        # Remove release dates for course content
        if name == 'start' and block.category != 'course':
            return None
24

25 26 27
        return default

    @classmethod
28
    def enabled_for(cls, block):
29
        """This provider is enabled for self-paced courses only."""
30
        return block is not None and block.self_paced and SelfPacedConfiguration.current().enabled