Beispiel #1
0
def evaluate_prerequisite(course, subsection_grade, user):
    """
    Evaluates any gating milestone relationships attached to the given
    subsection. If the subsection_grade and subsection_completion meets
    the minimum score required by dependent subsections, the related
    milestone will be marked fulfilled for the user.
    """
    prereq_milestone = gating_api.get_gating_milestone(
        course.id, subsection_grade.location, 'fulfills')
    if prereq_milestone:
        gated_content_milestones = defaultdict(list)
        for milestone in gating_api.find_gating_milestones(
                course.id, content_key=None, relationship='requires'):
            gated_content_milestones[milestone['id']].append(milestone)

        gated_content = gated_content_milestones.get(prereq_milestone['id'])
        if gated_content:
            grade_percentage = subsection_grade.percent_graded * 100.0 \
                if hasattr(subsection_grade, 'percent_graded') else None

            for milestone in gated_content:
                gating_api.update_milestone(milestone,
                                            subsection_grade.location,
                                            prereq_milestone, user,
                                            grade_percentage)
Beispiel #2
0
def evaluate_prerequisite(course, subsection_grade, user):
    """
    Evaluates any gating milestone relationships attached to the given
    subsection. If the subsection_grade meets the minimum score required
    by dependent subsections, the related milestone will be marked
    fulfilled for the user.
    """
    prereq_milestone = gating_api.get_gating_milestone(course.id, subsection_grade.location, 'fulfills')
    if prereq_milestone:
        gated_content_milestones = defaultdict(list)
        for milestone in gating_api.find_gating_milestones(course.id, content_key=None, relationship='requires'):
            gated_content_milestones[milestone['id']].append(milestone)

        gated_content = gated_content_milestones.get(prereq_milestone['id'])
        if gated_content:
            for milestone in gated_content:
                gating_api.update_milestone(milestone, subsection_grade, prereq_milestone, user.id)