diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee index 5c307f664e..88957e3cab 100644 --- a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee @@ -178,21 +178,38 @@ class @CombinedOpenEnded save_answer: (event) => event.preventDefault() + max_filesize = 2*1000*1000 #2MB if @child_state == 'initial' - file_data = "" + files = "" if @can_upload_files == true files = $('.file-upload-box')[0].files[0] - file_data = files - data = {'student_answer' : @answer_area.val(), 'file_data' : file_data} - $.postWithPrefix "#{@ajax_url}/save_answer", data, (response) => - if response.success - @rubric_wrapper.html(response.rubric_html) - @rubric_wrapper.show() - @child_state = 'assessing' - @find_assessment_elements() - @rebind() - else - @errors_area.html(response.error) + if files.size > max_filesize + @can_upload_files = false + files = "" + + fd = new FormData() + fd.append('student_answer', @answer_area.val()) + fd.append('student_file', files) + fd.append('can_upload_files', files) + + #data = {'student_answer' : @answer_area.val(), 'file_value' : file_value, 'file_id' : file_id} + settings = + type: "POST" + data: fd + processData: false + contentType: false + success: (response) => + if response.success + @rubric_wrapper.html(response.rubric_html) + @rubric_wrapper.show() + @child_state = 'assessing' + @find_assessment_elements() + @rebind() + else + @errors_area.html(response.error) + + $.ajaxWithPrefix("#{@ajax_url}/save_answer",settings) + else @errors_area.html('Problem state got out of sync. Try reloading the page.') diff --git a/common/lib/xmodule/xmodule/open_ended_image_submission.py b/common/lib/xmodule/xmodule/open_ended_image_submission.py index cb7544f6f2..7c605e9ebe 100644 --- a/common/lib/xmodule/xmodule/open_ended_image_submission.py +++ b/common/lib/xmodule/xmodule/open_ended_image_submission.py @@ -70,9 +70,9 @@ class URLProperties(object): def check_suffix(self): good_suffix = False for suffix in ALLOWABLE_IMAGE_SUFFIXES: - if self.url_string.endswith(suffix) - good_suffix = True - break + if self.url_string.endswith(suffix): + good_suffix = True + break return good_suffix def run_tests(self): diff --git a/common/lib/xmodule/xmodule/openendedchild.py b/common/lib/xmodule/xmodule/openendedchild.py index 43c3afb7f1..0e28676099 100644 --- a/common/lib/xmodule/xmodule/openendedchild.py +++ b/common/lib/xmodule/xmodule/openendedchild.py @@ -23,6 +23,7 @@ from .stringify import stringify_children from .xml_module import XmlDescriptor from xmodule.modulestore import Location from capa.util import * +import open_ended_image_submission from datetime import datetime @@ -274,12 +275,13 @@ class OpenEndedChild(object): correctness = 'correct' if self.is_submission_correct(score) else 'incorrect' return correctness - def should_request_image(self): + def upload_image_to_s3(self, image_data): """ @return: """ - pass + success = False + image_ok = run_image_checks(image)