From 5389bba490f82e7dffad9712f81297a760cc1fc4 Mon Sep 17 00:00:00 2001 From: Brian Wilson Date: Tue, 18 Jun 2013 14:28:00 -0400 Subject: [PATCH] Add changelog entry. --- CHANGELOG.rst | 7 +++++++ lms/djangoapps/instructor_task/api.py | 4 +++- lms/djangoapps/instructor_task/tasks.py | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9b4d828e8c..995d768564 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,13 @@ These are notable changes in edx-platform. This is a rolling list of changes, in roughly chronological order, most recent first. Add your entries at or near the top. Include a label indicating the component affected. +LMS: Problem rescoring. Added options on the Grades tab of the +Instructor Dashboard to allow all students' submissions for a +particular problem to be rescored. Also supports resetting all +students' number of attempts to zero. Provides a list of background +tasks that are currently running for the course, and an option to +see a history of background tasks for a given problem. + LMS: Forums. Added handling for case where discussion module can get `None` as value of lms.start in `lms/djangoapps/django_comment_client/utils.py` diff --git a/lms/djangoapps/instructor_task/api.py b/lms/djangoapps/instructor_task/api.py index 6815177f87..bd3c5e033a 100644 --- a/lms/djangoapps/instructor_task/api.py +++ b/lms/djangoapps/instructor_task/api.py @@ -1,7 +1,9 @@ """ API for submitting background tasks by an instructor for a course. -TODO: +Also includes methods for getting information about tasks that have +already been submitted, filtered either by running state or input +arguments. """ diff --git a/lms/djangoapps/instructor_task/tasks.py b/lms/djangoapps/instructor_task/tasks.py index efb958d8ce..b045de470a 100644 --- a/lms/djangoapps/instructor_task/tasks.py +++ b/lms/djangoapps/instructor_task/tasks.py @@ -2,6 +2,22 @@ This file contains tasks that are designed to perform background operations on the running state of a course. +At present, these tasks all operate on StudentModule objects in one way or another, +so they share a visitor architecture. Each task defines an "update function" that +takes a module_descriptor, a particular StudentModule object, and xmodule_instance_args. + +A task may optionally specify a "filter function" that takes a query for StudentModule +objects, and adds additional filter clauses. + +A task also passes through "xmodule_instance_args", that are used to provide +information to our code that instantiates xmodule instances. + +The task definition then calls the traversal function, passing in the three arguments +above, along with the id value for an InstructorTask object. The InstructorTask +object contains a 'task_input' row which is a JSON-encoded dict containing +a problem URL and optionally a student. These are used to set up the initial value +of the query for traversing StudentModule objects. + """ from celery import task from instructor_task.tasks_helper import (update_problem_module_state,