示例#1
0
def publish_masters_track(sender, instance, **kwargs):  # pylint: disable=unused-argument
    """
    We should only publish the Masters track of the seat in the course_run,
    if the course_run is part of a Program of Masters type. Publish means we will
    call the commerce api on LMS to make sure LMS course_run object have the
    masters enrollment_mode created
    """
    seat = instance
    if seat.type != Seat.MASTERS:
        logger.debug('Not going to publish non masters seats')
        return

    if not masters_course_mode_enabled():
        logger.debug('Masters course mode waffle flag is not enabled')
        return

    related_masters = get_related_masters_program(seat.course_run)

    if related_masters:
        partner = related_masters.partner

        if not partner.lms_api_client:
            logger.info(
                'LMS api client is not initiated. Cannot publish [%s] track for [%s] program',
                seat.type, related_masters.title)
            return

        if not partner.lms_coursemode_api_url:
            logger.info(
                'No lms coursemode api url configured. Masters seat for program [%s] not published',
                related_masters.title)
            return

        _create_masters_track_on_lms_if_necessary(seat, partner)
示例#2
0
def add_masters_track_on_course(sender, instance, **kwargs):  # pylint: disable=unused-argument
    """
    When this waffle flag is enabled we save a "masters" seat type into the included course_runs of
    the related course
    """

    if masters_course_mode_enabled():
        program = instance.curriculum.program

        if not is_program_masters(program):
            logger.debug(
                'This is a course related only to non-masters program. No need to create Masters seat'
            )
            return

        us_currency = Currency.objects.get(code='USD')

        for course_run in instance.course_runs:
            Seat.objects.update_or_create(
                course_run=course_run,
                type=Seat.MASTERS,
                currency=us_currency,
            )
示例#3
0
 def test_masters_course_mode_enabled_true(self):
     self.assertTrue(masters_course_mode_enabled())
示例#4
0
 def test_masters_course_mode_enabled_false(self):
     self.assertFalse(masters_course_mode_enabled())