@@ -1,6 +1,8 @@
|
||||
"""
|
||||
API for the gating djangoapp
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
from collections import defaultdict
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
"""
|
||||
Django AppConfig module for the Gating app
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
"""
|
||||
Signal handlers for the gating djangoapp
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
import six
|
||||
from completion.models import BlockCompletion
|
||||
from django.db import models
|
||||
from django.dispatch import receiver
|
||||
|
||||
from completion.models import BlockCompletion
|
||||
from gating import api as gating_api
|
||||
from gating.tasks import task_evaluate_subsection_completion_milestones
|
||||
from lms.djangoapps.grades.api import signals as grades_signals
|
||||
@@ -34,8 +37,8 @@ def evaluate_subsection_completion_milestones(**kwargs):
|
||||
evaluation of any milestone which can be completed.
|
||||
"""
|
||||
instance = kwargs['instance']
|
||||
course_id = unicode(instance.course_key)
|
||||
block_id = unicode(instance.block_key)
|
||||
course_id = six.text_type(instance.course_key)
|
||||
block_id = six.text_type(instance.block_key)
|
||||
user_id = instance.user_id
|
||||
task_evaluate_subsection_completion_milestones(course_id, block_id, user_id)
|
||||
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
"""
|
||||
This file contains celery tasks related to course content gating.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
|
||||
import six
|
||||
from celery import task
|
||||
from django.contrib.auth.models import User
|
||||
from opaque_keys.edx.keys import CourseKey, UsageKey
|
||||
|
||||
from gating import api as gating_api
|
||||
from lms.djangoapps.course_blocks.api import get_course_blocks
|
||||
from opaque_keys.edx.keys import CourseKey, UsageKey
|
||||
from xmodule.modulestore.django import modulestore
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -41,7 +43,7 @@ def task_evaluate_subsection_completion_milestones(course_id, block_id, user_id)
|
||||
subsection = course_structure[subsection_block]
|
||||
log.debug(
|
||||
u"Gating: Evaluating completion milestone for subsection [%s] and user [%s]",
|
||||
unicode(subsection.location), user.id
|
||||
six.text_type(subsection.location), user.id
|
||||
)
|
||||
gating_api.evaluate_prerequisite(course, subsection, user)
|
||||
except KeyError:
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
"""
|
||||
Unit tests for gating.signals module
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
from ddt import data, ddt, unpack
|
||||
from milestones import api as milestones_api
|
||||
from milestones.tests.utils import MilestonesTestCaseMixin
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
"""
|
||||
Integration tests for gated content.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
import ddt
|
||||
from crum import set_current_request
|
||||
from completion import waffle as completion_waffle
|
||||
from crum import set_current_request
|
||||
from edx_django_utils.cache import RequestCache
|
||||
from milestones import api as milestones_api
|
||||
from milestones.tests.utils import MilestonesTestCaseMixin
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
"""
|
||||
Unit tests for gating.signals module
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
from mock import Mock, patch
|
||||
|
||||
from gating.signals import evaluate_subsection_gated_milestones
|
||||
|
||||
Reference in New Issue
Block a user