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

from .field_overrides import FieldOverrideProvider
7
from openedx.core.djangoapps.self_paced.models import SelfPacedConfiguration
8 9 10 11 12 13 14 15 16


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):
17
        # Remove due dates
18 19
        if name == 'due':
            return None
20 21 22
        # Remove release dates for course content
        if name == 'start' and block.category != 'course':
            return None
23 24 25 26 27
        return default

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