Merge pull request #2133 from edx/usman/openended_post_hostname_argument
Added hostname argument to openended_post command.
This commit is contained in:
@@ -19,7 +19,7 @@ class Command(BaseCommand):
|
||||
Command to manually re-post open ended submissions to the grader.
|
||||
"""
|
||||
|
||||
help = ("Usage: openended_post <course_id> <problem_location> <student_ids.txt> --dry-run --task-number=<task_number>\n"
|
||||
help = ("Usage: openended_post <course_id> <problem_location> <student_ids.txt> <hostname> --dry-run --task-number=<task_number>\n"
|
||||
"The text file should contain a User.id in each line.")
|
||||
|
||||
option_list = BaseCommand.option_list + (
|
||||
@@ -36,10 +36,11 @@ class Command(BaseCommand):
|
||||
dry_run = options['dry_run']
|
||||
task_number = options['task_number']
|
||||
|
||||
if len(args) == 3:
|
||||
if len(args) == 4:
|
||||
course_id = args[0]
|
||||
location = args[1]
|
||||
students_ids = [line.strip() for line in open(args[2])]
|
||||
hostname = args[3]
|
||||
else:
|
||||
print self.help
|
||||
return
|
||||
@@ -62,15 +63,20 @@ class Command(BaseCommand):
|
||||
print "Number of students: {0}".format(students.count())
|
||||
|
||||
for student in students:
|
||||
post_submission_for_student(student, course, location, task_number, dry_run=dry_run)
|
||||
post_submission_for_student(student, course, location, task_number, dry_run=dry_run, hostname=hostname)
|
||||
|
||||
|
||||
def post_submission_for_student(student, course, location, task_number, dry_run=True):
|
||||
def post_submission_for_student(student, course, location, task_number, dry_run=True, hostname=None):
|
||||
"""If the student's task child_state is ASSESSING post submission to grader."""
|
||||
|
||||
print "{0}:{1}".format(student.id, student.username)
|
||||
|
||||
request = DummyRequest()
|
||||
request.user = student
|
||||
request.host = hostname
|
||||
|
||||
try:
|
||||
module = get_module_for_student(student, course, location)
|
||||
module = get_module_for_student(student, course, location, request=request)
|
||||
if module is None:
|
||||
print " WARNING: No state found."
|
||||
return False
|
||||
@@ -104,3 +110,22 @@ def post_submission_for_student(student, course, location, task_number, dry_run=
|
||||
print err
|
||||
|
||||
return False
|
||||
|
||||
class DummyRequest(object):
|
||||
"""Dummy request"""
|
||||
|
||||
META = {}
|
||||
|
||||
def __init__(self):
|
||||
self.session = {}
|
||||
self.user = None
|
||||
self.host = None
|
||||
self.secure = True
|
||||
|
||||
def get_host(self):
|
||||
"""Return a default host."""
|
||||
return self.host
|
||||
|
||||
def is_secure(self):
|
||||
"""Always secure."""
|
||||
return self.secure
|
||||
|
||||
@@ -27,10 +27,11 @@ class DummyRequest(object):
|
||||
return False
|
||||
|
||||
|
||||
def get_module_for_student(student, course, location):
|
||||
def get_module_for_student(student, course, location, request=None):
|
||||
"""Return the module for the (student, location) using a DummyRequest."""
|
||||
request = DummyRequest()
|
||||
request.user = student
|
||||
if request is None:
|
||||
request = DummyRequest()
|
||||
request.user = student
|
||||
|
||||
descriptor = modulestore().get_instance(course.id, location, depth=0)
|
||||
field_data_cache = FieldDataCache([descriptor], course.id, student)
|
||||
|
||||
Reference in New Issue
Block a user