From 93b179c95893952342fbf9f4fe81f14d15fde491 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 10 Sep 2015 17:11:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=99=AE=E9=80=9A=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 251 ++++++++---------- app/controllers/users_controller.rb | 13 + app/views/homework_common/edit.html.erb | 43 ++- app/views/users/_user_homework_form.html.erb | 16 +- public/stylesheets/new_user.css | 1 + 5 files changed, 158 insertions(+), 166 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 2e9925916..862e6c80e 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -3,6 +3,7 @@ class HomeworkCommonController < ApplicationController require 'json' require "base64" layout "base_courses" + include StudentWorkHelper 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 :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 + #新建作业,在个人作业列表创建作业 def new - @homework_type = "1" - - @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 - - #新建作业下一步 - 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 + render_404 + # @homework_type = "1" + # + # @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 + #新建作业,在个人作业列表创建作业 def create - if params[:homework_common] - homework = HomeworkCommon.new - homework.name = params[:homework_common][:name] - homework.description = params[:homework_common][:description] - homework.end_time = params[:homework_common][:end_time] - homework.publish_time = params[:homework_common][:publish_time] - homework.homework_type = params[:homework_common][:homework_type] - homework.late_penalty = params[:late_penalty] - homework.user_id = User.current.id - homework.course_id = @course.id - - homework.save_attachments(params[:attachments]) - render_attachment_warning_if_needed(homework) - - if homework.homework_type == 2 - homework_detail_programing = HomeworkDetailPrograming.new - homework_detail_programing.language = params[:language] - homework_detail_programing.standard_code = params[:standard_code] - homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6 - question = {title:homework.name,content:homework.description} - question[:input] = [] - question[:output] = [] - if params[:input] && params[:output] && params[:result] - params[:input].each do |k,v| - if params[:output].include? k - homework_test = HomeworkTest.new - homework_test.input = v - homework_test.output = params[:output][k] - homework_test.result = params[:result][k] - homework_test.error_msg = params[:error_msg] - homework.homework_tests << homework_test - question[:input] << homework_test.input - question[:output] << homework_test.output - end - end - end - - # uri = URI('http://192.168.80.21:8080/api/questions.json') - # body = question.to_json - # res = Net::HTTP.new(uri.host, uri.port).start do |client| - # request = Net::HTTP::Post.new(uri.path) - # request.body = body - # 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 + redirect_to user_homeworks_user_path(User.current.id) + # if params[:homework_common] + # homework = HomeworkCommon.new + # homework.name = params[:homework_common][:name] + # homework.description = params[:homework_common][:description] + # homework.end_time = params[:homework_common][:end_time] + # homework.publish_time = params[:homework_common][:publish_time] + # homework.homework_type = params[:homework_common][:homework_type] + # homework.late_penalty = params[:late_penalty] + # homework.user_id = User.current.id + # homework.course_id = @course.id + # + # homework.save_attachments(params[:attachments]) + # render_attachment_warning_if_needed(homework) + # + # if homework.homework_type == 2 + # homework_detail_programing = HomeworkDetailPrograming.new + # homework_detail_programing.language = params[:language] + # homework_detail_programing.standard_code = params[:standard_code] + # homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6 + # question = {title:homework.name,content:homework.description} + # question[:input] = [] + # question[:output] = [] + # if params[:input] && params[:output] && params[:result] + # params[:input].each do |k,v| + # if params[:output].include? k + # homework_test = HomeworkTest.new + # homework_test.input = v + # homework_test.output = params[:output][k] + # homework_test.result = params[:result][k] + # homework_test.error_msg = params[:error_msg] + # homework.homework_tests << homework_test + # question[:input] << homework_test.input + # question[:output] << homework_test.output + # end + # end + # end + # + # # uri = URI('http://192.168.80.21:8080/api/questions.json') + # # body = question.to_json + # # res = Net::HTTP.new(uri.host, uri.port).start do |client| + # # request = Net::HTTP::Post.new(uri.path) + # # request.body = body + # # 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 def edit + @user = User.current respond_to do |format| - format.html + format.html{render :layout => 'new_base_user'} end end @@ -284,7 +259,7 @@ class HomeworkCommonController < ApplicationController def destroy if @homework.destroy 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 diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 9b2d49f2d..088271e86 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -367,6 +367,19 @@ class UsersController < ApplicationController end end + #修改编程作业 + def edit_user_commit_homework + if User.current.logged? + + respond_to do |format| + format.js + format.html {render :layout => 'new_base_user'} + end + else + render_403 + end + end + def user_commit_homework homework = HomeworkCommon.find(params[:homework]) student_work = homework.student_works.where(user_id: User.current.id).first diff --git a/app/views/homework_common/edit.html.erb b/app/views/homework_common/edit.html.erb index 5b65b5982..d6815a00a 100644 --- a/app/views/homework_common/edit.html.erb +++ b/app/views/homework_common/edit.html.erb @@ -1,24 +1,23 @@ -<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' %> -<%= error_messages_for 'homework_common' %> - -