|
|
@ -3,6 +3,7 @@ class HomeworkCommonController < ApplicationController
|
|
|
|
require 'json'
|
|
|
|
require 'json'
|
|
|
|
require "base64"
|
|
|
|
require "base64"
|
|
|
|
layout "base_courses"
|
|
|
|
layout "base_courses"
|
|
|
|
|
|
|
|
include StudentWorkHelper
|
|
|
|
before_filter :find_course, :only => [:index,:new,:create,:next_step]
|
|
|
|
before_filter :find_course, :only => [:index,:new,:create,:next_step]
|
|
|
|
before_filter :find_homework, :only => [:edit,:update,:alert_anonymous_comment,:start_anonymous_comment,:stop_anonymous_comment,:destroy]
|
|
|
|
before_filter :find_homework, :only => [:edit,:update,:alert_anonymous_comment,:start_anonymous_comment,:stop_anonymous_comment,:destroy]
|
|
|
|
before_filter :teacher_of_course, :only => [:new, :create, :edit, :update, :destroy, :start_anonymous_comment, :stop_anonymous_comment, :alert_anonymous_comment]
|
|
|
|
before_filter :teacher_of_course, :only => [:new, :create, :edit, :update, :destroy, :start_anonymous_comment, :stop_anonymous_comment, :alert_anonymous_comment]
|
|
|
@ -18,151 +19,125 @@ class HomeworkCommonController < ApplicationController
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#新建作业,在个人作业列表创建作业
|
|
|
|
def new
|
|
|
|
def new
|
|
|
|
@homework_type = "1"
|
|
|
|
render_404
|
|
|
|
|
|
|
|
# @homework_type = "1"
|
|
|
|
@homework = HomeworkCommon.new
|
|
|
|
#
|
|
|
|
@homework.safe_attributes = params[:homework_common]
|
|
|
|
# @homework = HomeworkCommon.new
|
|
|
|
@homework.late_penalty = 2
|
|
|
|
# @homework.safe_attributes = params[:homework_common]
|
|
|
|
@homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
|
|
|
|
# @homework.late_penalty = 2
|
|
|
|
@homework.publish_time = Time.now.strftime('%Y-%m-%d')
|
|
|
|
# @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
# @homework.publish_time = Time.now.strftime('%Y-%m-%d')
|
|
|
|
if @homework_type == "1"
|
|
|
|
#
|
|
|
|
#匿评作业相关属性
|
|
|
|
# if @homework_type == "1"
|
|
|
|
@homework_detail_manual = HomeworkDetailManual.new
|
|
|
|
# #匿评作业相关属性
|
|
|
|
@homework_detail_manual.ta_proportion = 0.6
|
|
|
|
# @homework_detail_manual = HomeworkDetailManual.new
|
|
|
|
@homework_detail_manual.absence_penalty = 2
|
|
|
|
# @homework_detail_manual.ta_proportion = 0.6
|
|
|
|
@homework_detail_manual.evaluation_num = 3
|
|
|
|
# @homework_detail_manual.absence_penalty = 2
|
|
|
|
@homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
|
|
|
|
# @homework_detail_manual.evaluation_num = 3
|
|
|
|
@homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
|
|
|
|
# @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
|
|
|
|
@homework.homework_detail_manual = @homework_detail_manual
|
|
|
|
# @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
|
|
|
|
elsif @homework_type == "2"
|
|
|
|
# @homework.homework_detail_manual = @homework_detail_manual
|
|
|
|
#编程作业相关属性
|
|
|
|
# elsif @homework_type == "2"
|
|
|
|
@homework_detail_programing = HomeworkDetailPrograming.new
|
|
|
|
# #编程作业相关属性
|
|
|
|
@homework.homework_detail_programing = @homework_detail_programing
|
|
|
|
# @homework_detail_programing = HomeworkDetailPrograming.new
|
|
|
|
end
|
|
|
|
# @homework.homework_detail_programing = @homework_detail_programing
|
|
|
|
respond_to do |format|
|
|
|
|
# end
|
|
|
|
format.html
|
|
|
|
# respond_to do |format|
|
|
|
|
end
|
|
|
|
# format.html
|
|
|
|
end
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
#新建作业下一步
|
|
|
|
|
|
|
|
def next_step
|
|
|
|
|
|
|
|
@homework_type = params[:homework_common_type]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@homework = HomeworkCommon.new
|
|
|
|
|
|
|
|
@homework.safe_attributes = params[:homework_common]
|
|
|
|
|
|
|
|
@homework.late_penalty = 2
|
|
|
|
|
|
|
|
@homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
@homework.publish_time = Time.now.strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if @homework_type == "1"
|
|
|
|
|
|
|
|
#匿评作业相关属性
|
|
|
|
|
|
|
|
@homework_detail_manual = HomeworkDetailManual.new
|
|
|
|
|
|
|
|
@homework_detail_manual.ta_proportion = 0.6
|
|
|
|
|
|
|
|
@homework_detail_manual.absence_penalty = 2
|
|
|
|
|
|
|
|
@homework_detail_manual.evaluation_num = 3
|
|
|
|
|
|
|
|
@homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
@homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
@homework.homework_detail_manual = @homework_detail_manual
|
|
|
|
|
|
|
|
elsif @homework_type == "2"
|
|
|
|
|
|
|
|
#编程作业相关属性
|
|
|
|
|
|
|
|
@homework_detail_programing = HomeworkDetailPrograming.new
|
|
|
|
|
|
|
|
@homework.homework_detail_programing = @homework_detail_programing
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
|
|
|
format.html
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#新建作业,在个人作业列表创建作业
|
|
|
|
def create
|
|
|
|
def create
|
|
|
|
if params[:homework_common]
|
|
|
|
redirect_to user_homeworks_user_path(User.current.id)
|
|
|
|
homework = HomeworkCommon.new
|
|
|
|
# if params[:homework_common]
|
|
|
|
homework.name = params[:homework_common][:name]
|
|
|
|
# homework = HomeworkCommon.new
|
|
|
|
homework.description = params[:homework_common][:description]
|
|
|
|
# homework.name = params[:homework_common][:name]
|
|
|
|
homework.end_time = params[:homework_common][:end_time]
|
|
|
|
# homework.description = params[:homework_common][:description]
|
|
|
|
homework.publish_time = params[:homework_common][:publish_time]
|
|
|
|
# homework.end_time = params[:homework_common][:end_time]
|
|
|
|
homework.homework_type = params[:homework_common][:homework_type]
|
|
|
|
# homework.publish_time = params[:homework_common][:publish_time]
|
|
|
|
homework.late_penalty = params[:late_penalty]
|
|
|
|
# homework.homework_type = params[:homework_common][:homework_type]
|
|
|
|
homework.user_id = User.current.id
|
|
|
|
# homework.late_penalty = params[:late_penalty]
|
|
|
|
homework.course_id = @course.id
|
|
|
|
# homework.user_id = User.current.id
|
|
|
|
|
|
|
|
# homework.course_id = @course.id
|
|
|
|
homework.save_attachments(params[:attachments])
|
|
|
|
#
|
|
|
|
render_attachment_warning_if_needed(homework)
|
|
|
|
# homework.save_attachments(params[:attachments])
|
|
|
|
|
|
|
|
# render_attachment_warning_if_needed(homework)
|
|
|
|
if homework.homework_type == 2
|
|
|
|
#
|
|
|
|
homework_detail_programing = HomeworkDetailPrograming.new
|
|
|
|
# if homework.homework_type == 2
|
|
|
|
homework_detail_programing.language = params[:language]
|
|
|
|
# homework_detail_programing = HomeworkDetailPrograming.new
|
|
|
|
homework_detail_programing.standard_code = params[:standard_code]
|
|
|
|
# homework_detail_programing.language = params[:language]
|
|
|
|
homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6
|
|
|
|
# homework_detail_programing.standard_code = params[:standard_code]
|
|
|
|
question = {title:homework.name,content:homework.description}
|
|
|
|
# homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6
|
|
|
|
question[:input] = []
|
|
|
|
# question = {title:homework.name,content:homework.description}
|
|
|
|
question[:output] = []
|
|
|
|
# question[:input] = []
|
|
|
|
if params[:input] && params[:output] && params[:result]
|
|
|
|
# question[:output] = []
|
|
|
|
params[:input].each do |k,v|
|
|
|
|
# if params[:input] && params[:output] && params[:result]
|
|
|
|
if params[:output].include? k
|
|
|
|
# params[:input].each do |k,v|
|
|
|
|
homework_test = HomeworkTest.new
|
|
|
|
# if params[:output].include? k
|
|
|
|
homework_test.input = v
|
|
|
|
# homework_test = HomeworkTest.new
|
|
|
|
homework_test.output = params[:output][k]
|
|
|
|
# homework_test.input = v
|
|
|
|
homework_test.result = params[:result][k]
|
|
|
|
# homework_test.output = params[:output][k]
|
|
|
|
homework_test.error_msg = params[:error_msg]
|
|
|
|
# homework_test.result = params[:result][k]
|
|
|
|
homework.homework_tests << homework_test
|
|
|
|
# homework_test.error_msg = params[:error_msg]
|
|
|
|
question[:input] << homework_test.input
|
|
|
|
# homework.homework_tests << homework_test
|
|
|
|
question[:output] << homework_test.output
|
|
|
|
# question[:input] << homework_test.input
|
|
|
|
end
|
|
|
|
# question[:output] << homework_test.output
|
|
|
|
end
|
|
|
|
# end
|
|
|
|
end
|
|
|
|
# end
|
|
|
|
|
|
|
|
# end
|
|
|
|
# uri = URI('http://192.168.80.21:8080/api/questions.json')
|
|
|
|
#
|
|
|
|
# body = question.to_json
|
|
|
|
# # uri = URI('http://192.168.80.21:8080/api/questions.json')
|
|
|
|
# res = Net::HTTP.new(uri.host, uri.port).start do |client|
|
|
|
|
# # body = question.to_json
|
|
|
|
# request = Net::HTTP::Post.new(uri.path)
|
|
|
|
# # res = Net::HTTP.new(uri.host, uri.port).start do |client|
|
|
|
|
# request.body = body
|
|
|
|
# # request = Net::HTTP::Post.new(uri.path)
|
|
|
|
# request["Content-Type"] = "application/json"
|
|
|
|
# # request.body = body
|
|
|
|
# client.request(request)
|
|
|
|
# # request["Content-Type"] = "application/json"
|
|
|
|
|
|
|
|
# # client.request(request)
|
|
|
|
|
|
|
|
# # end
|
|
|
|
|
|
|
|
# # result = JSON.parse(res.body)
|
|
|
|
|
|
|
|
# # homework_detail_programing.question_id = result["id"] if result["status"] && result["status"] == 0
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# homework.homework_detail_programing = homework_detail_programing
|
|
|
|
|
|
|
|
# else
|
|
|
|
|
|
|
|
# #匿评作业相关属性
|
|
|
|
|
|
|
|
# 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 = params[:evaluation_start]
|
|
|
|
|
|
|
|
# homework_detail_manual.evaluation_end = params[:evaluation_end]
|
|
|
|
|
|
|
|
# homework_detail_manual.evaluation_num = params[:evaluation_num]
|
|
|
|
|
|
|
|
# homework_detail_manual.absence_penalty = params[:absence_penalty]
|
|
|
|
|
|
|
|
# homework.homework_detail_manual = homework_detail_manual
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# if homework.save
|
|
|
|
|
|
|
|
# homework_detail_programing.save if homework_detail_programing
|
|
|
|
|
|
|
|
# homework_detail_manual.save if homework_detail_manual
|
|
|
|
|
|
|
|
# respond_to do |format|
|
|
|
|
|
|
|
|
# format.html {
|
|
|
|
|
|
|
|
# flash[:notice] = l(:notice_successful_create)
|
|
|
|
|
|
|
|
# redirect_to homework_common_index_path(:course => @course.id)
|
|
|
|
|
|
|
|
# }
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
# return
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# respond_to do |format|
|
|
|
|
|
|
|
|
# format.html {
|
|
|
|
|
|
|
|
# flash[:notice] = l(:notice_failed_create)
|
|
|
|
|
|
|
|
# redirect_to new_homework_common_path(:course => @course.id)
|
|
|
|
|
|
|
|
# }
|
|
|
|
# end
|
|
|
|
# end
|
|
|
|
# result = JSON.parse(res.body)
|
|
|
|
|
|
|
|
# homework_detail_programing.question_id = result["id"] if result["status"] && result["status"] == 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
homework.homework_detail_programing = homework_detail_programing
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
#匿评作业相关属性
|
|
|
|
|
|
|
|
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 = params[:evaluation_start]
|
|
|
|
|
|
|
|
homework_detail_manual.evaluation_end = params[:evaluation_end]
|
|
|
|
|
|
|
|
homework_detail_manual.evaluation_num = params[:evaluation_num]
|
|
|
|
|
|
|
|
homework_detail_manual.absence_penalty = params[:absence_penalty]
|
|
|
|
|
|
|
|
homework.homework_detail_manual = homework_detail_manual
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if homework.save
|
|
|
|
|
|
|
|
homework_detail_programing.save if homework_detail_programing
|
|
|
|
|
|
|
|
homework_detail_manual.save if homework_detail_manual
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
|
|
|
format.html {
|
|
|
|
|
|
|
|
flash[:notice] = l(:notice_successful_create)
|
|
|
|
|
|
|
|
redirect_to homework_common_index_path(:course => @course.id)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
|
|
|
format.html {
|
|
|
|
|
|
|
|
flash[:notice] = l(:notice_failed_create)
|
|
|
|
|
|
|
|
redirect_to new_homework_common_path(:course => @course.id)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def edit
|
|
|
|
def edit
|
|
|
|
|
|
|
|
@user = User.current
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html
|
|
|
|
format.html{render :layout => 'new_base_user'}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
@ -284,7 +259,7 @@ class HomeworkCommonController < ApplicationController
|
|
|
|
def destroy
|
|
|
|
def destroy
|
|
|
|
if @homework.destroy
|
|
|
|
if @homework.destroy
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {redirect_to homework_common_index_path(:course => @course.id)}
|
|
|
|
format.html {redirect_to user_homeworks_user_path(User.current.id)}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|