diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index a6ab0a68e..7726ab3da 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -39,7 +39,6 @@ class StudentWorkController < ApplicationController end end - render :json => resultObj end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 0058e6e4c..67b1d5d78 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -347,6 +347,24 @@ class UsersController < ApplicationController end end + def new_user_commit_homework + @user = User.current + @homework = HomeworkCommon.find(params[:homework_id]) + @student_work = @homework.student_works.where(user_id: User.current.id).first + if @student_work.nil? + @student_work = StudentWork.new + end + respond_to do |format| + format.js + format.html {render :layout => 'new_base_user'} + end + end + + def user_commit_homework + flash[:notice] = l(:notice_successful_create) + redirect_to user_homeworks_user_path(User.current) + end + def user_new_homework if params[:homework_common] homework = HomeworkCommon.new @@ -354,7 +372,7 @@ class UsersController < ApplicationController homework.description = params[:homework_common][:description] homework.end_time = params[:homework_common][:end_time] || Time.now homework.publish_time = Time.now - homework.homework_type = 1 + homework.homework_type = params[:homework_type].to_i || 1 homework.late_penalty = 2 homework.user_id = User.current.id homework.course_id = params[:course_id] @@ -363,17 +381,36 @@ class UsersController < ApplicationController render_attachment_warning_if_needed(homework) #匿评作业相关属性 - homework_detail_manual = HomeworkDetailManual.new - homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 - homework_detail_manual.comment_status = 1 - homework_detail_manual.evaluation_start = Time.now - homework_detail_manual.evaluation_end = Time.now - homework_detail_manual.evaluation_num = params[:evaluation_num] || 3 - homework_detail_manual.absence_penalty = 2 - homework.homework_detail_manual = homework_detail_manual + if homework.homework_type == 1 + homework_detail_manual = HomeworkDetailManual.new + homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 + homework_detail_manual.comment_status = 1 + homework_detail_manual.evaluation_start = Time.now + homework_detail_manual.evaluation_end = Time.now + homework_detail_manual.evaluation_num = params[:evaluation_num] || 3 + homework_detail_manual.absence_penalty = 2 + homework.homework_detail_manual = homework_detail_manual + else + homework_detail_programing = HomeworkDetailPrograming.new + homework.homework_detail_programing = homework_detail_programing + homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6 + homework_detail_programing.language = params[:program][:language].to_i + + inputs = params[:program][:input] + if Array === inputs + inputs.each_with_index do |val, i| + homework.homework_tests << HomeworkTest.new( + input: val, + output: params[:program][:output][i] + ) + end + end + + end if homework.save homework_detail_manual.save if homework_detail_manual + homework_detail_programing.save if homework_detail_programing redirect_to user_homeworks_user_path(User.current.id) end end diff --git a/app/views/homework_common/_new_homework_detail_manual_form.html.erb b/app/views/homework_common/_new_homework_detail_manual_form.html.erb index 88362976e..7fb728ad0 100644 --- a/app/views/homework_common/_new_homework_detail_manual_form.html.erb +++ b/app/views/homework_common/_new_homework_detail_manual_form.html.erb @@ -9,9 +9,9 @@
导入作业 - +
- +
@@ -39,7 +39,7 @@