From 1aa0ce78c33aa26cd5fdef6caae3067d1935907f Mon Sep 17 00:00:00 2001
From: cxt
Date: Fri, 16 Jun 2017 15:18:41 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=89=88=E9=A2=98=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Gemfile | 2 +-
.../javascripts/homework_bank.js.coffee | 3 +
app/assets/stylesheets/homework_bank.css.scss | 3 +
app/controllers/homework_bank_controller.rb | 233 ++++++++++++++++++
app/controllers/homework_common_controller.rb | 13 +-
app/helpers/application_helper.rb | 81 +++++-
app/helpers/homework_bank_helper.rb | 2 +
app/helpers/owner_type_helper.rb | 1 +
app/helpers/syllabuses_helper.rb | 56 -----
app/models/homework_bank.rb | 6 +-
app/models/homework_bank_sample.rb | 4 +
app/models/homework_bank_shixun.rb | 5 +
app/models/syllabus.rb | 1 +
.../_homework_bank_list.html.erb | 84 +++++++
.../_hw_search_course_list.html.erb | 12 +
.../_new_common_homework.html.erb | 77 ++++++
.../_new_group_homework.html.erb | 93 +++++++
.../_new_program_homework.html.erb | 170 +++++++++++++
.../_send_homework_bank.html.erb | 34 +++
app/views/homework_bank/_shixuns.html.erb | 52 ++++
.../homework_bank/choose_user_course.js.erb | 6 +
app/views/homework_bank/edit.html.erb | 18 ++
app/views/homework_bank/index.html.erb | 33 +++
app/views/homework_bank/index.js.erb | 20 ++
app/views/homework_bank/new.html.erb | 18 ++
.../send_h_bank_to_course.js.erb | 1 +
app/views/homework_bank/shixuns.js.erb | 2 +
app/views/homework_bank/show.html.erb | 177 +++++++++++++
.../_new_group_homework.html.erb | 7 +-
.../_new_program_homework.html.erb | 10 +-
app/views/homework_common/_shixuns.html.erb | 20 +-
app/views/layouts/_public_left_info.html.erb | 4 +-
app/views/student_work/index.html.erb | 32 +--
.../_send_homework_to_course_form.html.erb | 2 +-
config/routes.rb | 14 ++
...0615070234_create_homework_bank_samples.rb | 30 +++
...0615080332_add_columns_to_homework_bank.rb | 24 ++
...0615105442_create_homework_bank_shixuns.rb | 12 +
public/javascripts/edu/application.js | 4 +-
public/javascripts/edu/base_edu.js | 153 ++++++++++++
public/javascripts/edu/homework.js | 2 +-
public/stylesheets/css/edu-class.css | 9 +-
public/stylesheets/css/magic-check.css | 2 +-
.../homework_bank_controller_spec.rb | 5 +
spec/factories/homework_bank_samples.rb | 8 +
spec/factories/homework_bank_shixuns.rb | 7 +
spec/models/homework_bank_sample_spec.rb | 5 +
spec/models/homework_bank_shixun_spec.rb | 5 +
48 files changed, 1458 insertions(+), 104 deletions(-)
create mode 100644 app/assets/javascripts/homework_bank.js.coffee
create mode 100644 app/assets/stylesheets/homework_bank.css.scss
create mode 100644 app/controllers/homework_bank_controller.rb
create mode 100644 app/helpers/homework_bank_helper.rb
create mode 100644 app/models/homework_bank_sample.rb
create mode 100644 app/models/homework_bank_shixun.rb
create mode 100644 app/views/homework_bank/_homework_bank_list.html.erb
create mode 100644 app/views/homework_bank/_hw_search_course_list.html.erb
create mode 100644 app/views/homework_bank/_new_common_homework.html.erb
create mode 100644 app/views/homework_bank/_new_group_homework.html.erb
create mode 100644 app/views/homework_bank/_new_program_homework.html.erb
create mode 100644 app/views/homework_bank/_send_homework_bank.html.erb
create mode 100644 app/views/homework_bank/_shixuns.html.erb
create mode 100644 app/views/homework_bank/choose_user_course.js.erb
create mode 100644 app/views/homework_bank/edit.html.erb
create mode 100644 app/views/homework_bank/index.html.erb
create mode 100644 app/views/homework_bank/index.js.erb
create mode 100644 app/views/homework_bank/new.html.erb
create mode 100644 app/views/homework_bank/send_h_bank_to_course.js.erb
create mode 100644 app/views/homework_bank/shixuns.js.erb
create mode 100644 app/views/homework_bank/show.html.erb
create mode 100644 db/migrate/20170615070234_create_homework_bank_samples.rb
create mode 100644 db/migrate/20170615080332_add_columns_to_homework_bank.rb
create mode 100644 db/migrate/20170615105442_create_homework_bank_shixuns.rb
create mode 100644 spec/controllers/homework_bank_controller_spec.rb
create mode 100644 spec/factories/homework_bank_samples.rb
create mode 100644 spec/factories/homework_bank_shixuns.rb
create mode 100644 spec/models/homework_bank_sample_spec.rb
create mode 100644 spec/models/homework_bank_shixun_spec.rb
diff --git a/Gemfile b/Gemfile
index 57e9d17f7..8033bf210 100644
--- a/Gemfile
+++ b/Gemfile
@@ -75,7 +75,7 @@ group :development, :test do
gem 'pry-byebug'
gem "test-unit", "~>3.0"
end
- # gem 'rspec-rails', '~> 3.0'
+ gem 'rspec-rails', '~> 3.0'
gem 'factory_girl_rails'
end
diff --git a/app/assets/javascripts/homework_bank.js.coffee b/app/assets/javascripts/homework_bank.js.coffee
new file mode 100644
index 000000000..761567942
--- /dev/null
+++ b/app/assets/javascripts/homework_bank.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/stylesheets/homework_bank.css.scss b/app/assets/stylesheets/homework_bank.css.scss
new file mode 100644
index 000000000..d8be9e5ef
--- /dev/null
+++ b/app/assets/stylesheets/homework_bank.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the HomeworkBank controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/homework_bank_controller.rb b/app/controllers/homework_bank_controller.rb
new file mode 100644
index 000000000..208def604
--- /dev/null
+++ b/app/controllers/homework_bank_controller.rb
@@ -0,0 +1,233 @@
+class HomeworkBankController < ApplicationController
+ before_filter :require_login, :only => [:index, :show, :new, :create, :edit, :update, :destroy, :destroy_all, :choose_user_course, :send_h_bank_to_course]
+ before_filter :find_homework_bank, :only => [:show, :edit, :update, :destroy]
+
+ def index
+ @order,@b_sort = params[:order] || "updated_at",params[:sort] || "desc"
+ @user = User.current
+ @r_sort = @b_sort == "desc" ? "asc" : "desc"
+ @search = params[:search]
+ if(params[:type].blank? || params[:type] == "1") #我的题库
+ @homeworks = @user.homework_banks.where("name like ?", "%#{@search}%")
+ elsif params[:type] == "2" #公共题库
+ @homeworks = HomeworkBank.where(:is_public => true).where("name like ?", "%#{@search}%")
+ end
+ if params[:property]
+ @property = params[:property].to_i
+ @homeworks = @homeworks.where(:homework_type => params[:property].to_i)
+ end
+ @homeworks = @homeworks.reorder("#{@order} #{@b_sort}")
+ @type = params[:type] ? params[:type] : '1'
+ @limit = 15
+ @is_remote = true
+ @hw_count = @homeworks.count
+ @hw_pages = Paginator.new @hw_count, @limit, params['page'] || 1
+ @offset ||= @hw_pages.offset
+ @homeworks = paginateHelper @homeworks,15
+ respond_to do |format|
+ format.js
+ format.html {render :layout => 'base_edu'}
+ end
+ end
+
+ def show
+ @is_admin = User.current == @homework.user || User.current.admin?
+ respond_to do |format|
+ format.html {render :layout => 'base_edu'}
+ end
+ end
+
+ def new
+ @homework_type = params[:homework_type].to_i
+ @homework = HomeworkBank.new
+ respond_to do |format|
+ format.html{render :layout => 'base_edu'}
+ end
+ end
+
+ # 新建实训作业
+ def shixuns
+ search = params[:search]
+ @homework = HomeworkBank.new
+ @shixuns = Shixun.where(:authentication => 1).where("name like ?", "%#{search}%")
+ @shixuns_count = @shixuns.count
+ @limit = 10
+ @is_remote = true
+ @shixun_pages = Paginator.new @shixuns_count, @limit, params['page'] || 1
+ @offset ||= @shixun_pages.offset
+ @shixuns = paginateHelper @shixuns, @limit
+ respond_to do |format|
+ format.js
+ end
+ end
+
+ def create
+ if params[:homework_bank] || params[:shixun_homework]
+ homework = HomeworkBank.new
+ if params[:shixun_homework]
+ shixun = Shixun.find(params[:shixun_homework])
+ homework.name = shixun.name
+ homework.description = shixun.description
+ else
+ homework.name = params[:homework_bank][:name]
+ homework.description = params[:homework_bank][:description]
+ homework.reference_answer = params[:homework_bank][:reference_answer]
+ homework.save_attachments(params[:attachments])
+ render_attachment_warning_if_needed(homework)
+ end
+ homework.is_public = 0
+ homework.quotes = 0
+ homework.homework_type = params[:shixun_homework] ? 4 : (params[:homework_type].to_i || 1)
+ homework.user_id = User.current.id
+ homework.syllabus_id = params[:syllabus_id] if params[:syllabus_id] && params[:syllabus_id] != '0'
+
+ #编程作业相关属性
+ if homework.homework_type == 2
+ homework.language = params[:language_type].to_i
+
+ sample_inputs = params[:sample][:input]
+ if Array === sample_inputs
+ sample_inputs.each_with_index do |val, i|
+ homework.homework_bank_samples << HomeworkBankSample.new(
+ input: val,
+ output: params[:sample][:output][i]
+ )
+ end
+ end
+
+ inputs = params[:program][:input]
+ if Array === inputs
+ inputs.each_with_index do |val, i|
+ homework.homework_bank_tests << HomeworkBankTest.new(
+ input: val,
+ output: params[:program][:output][i]
+ )
+ end
+ end
+ end
+
+ #分组作业
+ if homework.homework_type == 3
+ homework.min_num = params[:min_num].to_i
+ homework.max_num = params[:max_num].to_i
+ end
+
+ if homework.save
+ if homework.homework_type == 4
+ HomeworkBankShixun.create(:homework_bank_id => homework.id, :shixun_id => shixun.id)
+ end
+ redirect_to homework_bank_path(homework)
+ end
+ end
+ end
+
+ def edit
+ @homework_type = @homework.homework_type
+ respond_to do |format|
+ format.html{render :layout => 'base_edu'}
+ end
+ end
+
+ def update
+ if params[:homework_bank]
+ @homework.name = params[:homework_bank][:name]
+ @homework.description = params[:homework_bank][:description]
+ @homework.reference_answer = params[:homework_bank][:reference_answer]
+ @homework.syllabus_id = params[:syllabus_id] ? (params[:syllabus_id] == '0' ? nil : params[:syllabus_id].to_i) : nil
+ @homework.save_attachments(params[:attachments])
+ render_attachment_warning_if_needed(@homework)
+
+ #编程作业相关属性
+ if @homework.homework_type == 2
+ @homework.language = params[:language_type].to_i if params[:language_type]
+
+ @homework.homework_bank_samples.delete_all if params[:sample]
+ sample_inputs = params[:sample][:input] if params[:sample]
+ if Array === sample_inputs
+ sample_inputs.each_with_index do |val, i|
+ @homework.homework_bank_samples << HomeworkBankSample.new(
+ input: val,
+ output: params[:sample][:output][i]
+ )
+ end
+ end
+
+ @homework.homework_bank_tests.delete_all if params[:program]
+ inputs = params[:program][:input] if params[:program]
+ if Array === inputs
+ inputs.each_with_index do |val, i|
+ @homework.homework_bank_tests << HomeworkBankTest.new(
+ input: val,
+ output: params[:program][:output][i]
+ )
+ end
+ end
+ end
+
+ #分组作业
+ if @homework.homework_type == 3
+ @homework.min_num = params[:min_num].to_i if params[:min_num]
+ @homework.max_num = params[:max_num].to_i if params[:max_num]
+ end
+
+ if @homework.save
+ redirect_to homework_bank_path(@homework)
+ end
+ end
+ end
+
+ def destroy
+ @homework.homework_commons.update_all(:homework_bank_id => nil)
+ @homework.destroy
+ redirect_to homework_bank_index_path()
+ end
+
+ def destroy_all
+ if params[:check_homework_bank] && !params[:check_homework_bank].blank?
+ params[:check_homework_bank].each do |hb_id|
+ homework = HomeworkBank.find hb_id
+ if homework && homework.user == User.current
+ HomeworkCommon.where(:homework_bank_id => homework.id).update_all(:homework_bank_id => nil)
+ homework.destroy
+ end
+ end
+ end
+ redirect_to homework_bank_index_path
+ end
+
+ def choose_user_course
+ if !params[:search].nil?
+ search = "%#{params[:search].to_s.strip.downcase}%"
+ @courses = User.current.courses.where("is_delete = 0 and is_end = 0 and (#{Course.table_name}.id = #{params[:search].to_i } or #{Course.table_name}.name like :p)",:p=>search).select{ |course| User.current.has_teacher_role(course)}
+ else
+ @courses = User.current.courses.where("is_delete = 0 and is_end = 0").select{ |course| User.current.has_teacher_role(course)}
+ end
+ @homework_ids = params[:check_homework_bank] if params[:check_homework_bank]
+ @search = params[:search]
+ respond_to do |format|
+ format.js
+ end
+ end
+
+ def send_h_bank_to_course
+ course = Course.find params[:course_id]
+ if course
+ params[:homework_id].each do |homework_id|
+ homework = HomeworkBank.find homework_id
+ quote_homework_bank homework, course
+ end
+ end
+ end
+
+ def set_public
+ @homework.update_attributes(:is_public => true)
+ redirect_to homework_bank_index_path()
+ end
+
+ private
+ def find_homework_bank
+ @homework = HomeworkBank.find params[:id]
+ rescue ActiveRecord::RecordNotFound
+ render_404
+ end
+end
diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 52e80f0d1..9c0b2bebe 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -178,6 +178,8 @@ class HomeworkCommonController < ApplicationController
if homework.homework_type != 4 && homework_detail_manual.comment_status == 1
create_works_list homework
+ elsif homework.homework_type == 4
+ HomeworkCommonsShixuns.create(:homework_common_id => homework.id, :shixun_id => shixun.id)
end
if params[:quotes] && !params[:quotes].blank?
@@ -380,7 +382,7 @@ class HomeworkCommonController < ApplicationController
def update
if params[:homework_common]
- is_update = @homework.name != params[:homework_common][:name] || @homework.description != params[:homework_common][:description]
+ is_update = @homework.name != params[:homework_common][:name] || @homework.description != params[:homework_common][:description] || @homework.reference_answer != params[:homework_common][:reference_answer]
if params[:homework_type].to_i == 2
is_update = is_update || params[:language_type] != @homework.homework_detail_programing.language
if !is_update && params[:sample] && params[:program]
@@ -502,24 +504,25 @@ class HomeworkCommonController < ApplicationController
end
homework_bank = add_to_homework_bank_f @homework
homework_bank.save
+ if @homework.homework_type == 4
+ HomeworkBankShixun.create(:homework_bank_id => homework_bank.id, :shixun_id => @homework.homework_commons_shixuns.shixun_id)
+ end
@homework.update_attributes(:homework_bank_id => homework_bank.id)
elsif params[:type].to_i == 2
homework_bank = HomeworkBank.where(:id => @homework.homework_bank_id).first
if homework_bank
- homework_bank.update_attributes(:name => @homework.name, :description => @homework.description, :homework_type => @homework.homework_type)
+ homework_bank.update_attributes(:name => @homework.name, :description => @homework.description, :homework_type => @homework.homework_type, :reference_answer => @homework.reference_answer)
if @homework.homework_type == 2 && @homework.homework_detail_programing
homework_bank.update_attributes(:language => @homework.homework_detail_programing.language)
homework_bank.homework_bank_tests.destroy_all
@homework.homework_tests.each_with_index do |homework_test|
homework_bank.homework_bank_tests << HomeworkBankTest.new(
- test_type: 1,
input: homework_test.input,
output: homework_test.output
)
end
@homework.homework_samples.each_with_index do |homework_test|
- homework_bank.homework_bank_tests << HomeworkBankTest.new(
- test_type: 0,
+ homework_bank.homework_bank_samples << HomeworkBankSample.new(
input: homework_test.input,
output: homework_test.output
)
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index eaf3fa298..eabedeb7a 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1775,6 +1775,8 @@ module ApplicationHelper
title << "酷得网 - 互联网教学实训平台"
elsif @course
title << (@course.name.nil? ? "智能课堂" : @course.name)
+ elsif params[:controller] == "homework_bank"
+ title << ("智能课堂")
elsif params[:controller] == "courses" && params[:action] == "index"
title << ("智能课堂")
elsif @contest
@@ -4569,19 +4571,18 @@ end
def add_to_homework_bank_f homework
homework_bank = HomeworkBank.new(:name => homework.name, :description => homework.description, :user_id => homework.user_id, :homework_type => homework.homework_type,
- :quotes => 1, :is_public => homework.course.is_public, :applicable_syllabus => homework.course.syllabus.title, :homework_common_id => homework.id)
+ :quotes => 1, :is_public => homework.course.is_public, :applicable_syllabus => homework.course.syllabus.title, :homework_common_id => homework.id,
+ :reference_answer => homework.reference_answer, :syllabus_id => homework.course.syllabus_id)
if homework.homework_type == 2 && homework.homework_detail_programing
homework_bank.language = homework.homework_detail_programing.language
homework.homework_tests.each_with_index do |homework_test|
homework_bank.homework_bank_tests << HomeworkBankTest.new(
- test_type: 1,
input: homework_test.input,
output: homework_test.output
)
end
homework.homework_samples.each_with_index do |homework_test|
- homework_bank.homework_bank_tests << HomeworkBankTest.new(
- test_type: 0,
+ homework_bank.homework_bank_samples << HomeworkBankSample.new(
input: homework_test.input,
output: homework_test.output
)
@@ -4864,3 +4865,75 @@ def set_final_score homework,student_work
end
end
+
+def quote_resource_bank resource, course
+ atta = Attachment.new(:filename => resource.filename, :disk_filename => resource.disk_filename, :filesize => resource.filesize, :digest => resource.digest, :downloads => 0, :is_publish => 0,
+ :author_id => User.current.id, :description => resource.description, :disk_directory => resource.disk_directory, :is_public => 0, :copy_from => resource.copy_from.nil? ? resource.id : resource.copy_from,
+ :quotes => 0, :resource_bank_id => resource.id, :created_on => Time.now, :content_type =>resource.content_type)
+ if course.attachments << atta
+ # 更新引用次数
+ quotes = resource.quotes.to_i + 1
+ resource.update_attribute(:quotes, quotes)
+ end
+end
+
+def quote_homework_bank homework, course
+ new_homework = HomeworkCommon.new(:name => homework.name, :user_id => User.current.id, :description => homework.description, :homework_type => homework.homework_type, :late_penalty => 0,
+ :course_id => course.id, :teacher_priority => 1, :anonymous_comment => 1, :quotes => 0, :is_open => 0, :homework_bank_id => homework.id, :score_open => 1,
+ :anonymous_appeal => 0, :is_public => 0, :reference_answer => homework.reference_answer, :answer_public => 1, :allow_late => 1)
+
+ new_homework.homework_detail_manual = HomeworkDetailManual.new
+ new_homework_detail_manual = new_homework.homework_detail_manual
+ new_homework_detail_manual.te_proportion = 1.0
+ new_homework_detail_manual.ta_proportion = 0
+ new_homework_detail_manual.comment_status = 0
+
+ new_homework_detail_manual.evaluation_num = 0
+ new_homework_detail_manual.absence_penalty = 0
+
+ if new_homework.homework_type == 2
+ new_homework.homework_detail_programing = HomeworkDetailPrograming.new
+ new_homework.homework_detail_programing.ta_proportion = 0
+ new_homework.homework_detail_programing.language = homework.language
+ homework.homework_bank_tests.each_with_index do |homework_test|
+ new_homework.homework_tests << HomeworkTest.new(
+ input: homework_test.input,
+ output: homework_test.output
+ )
+ end
+ homework.homework_bank_samples.each_with_index do |homework_test|
+ new_homework.homework_samples << HomeworkSample.new(
+ input: homework_test.input,
+ output: homework_test.output
+ )
+ end
+ end
+
+ if new_homework.homework_type == 3
+ new_homework.homework_detail_group = HomeworkDetailGroup.new
+ new_homework.homework_detail_group.min_num = homework.min_num
+ new_homework.homework_detail_group.max_num = homework.max_num
+ new_homework.homework_detail_group.base_on_project = homework.base_on_project
+ end
+
+ homework.attachments.each do |attachment|
+ att = attachment.copy
+ att.container_id = nil
+ att.container_type = nil
+ att.author_id = homework.user_id
+ att.copy_from = attachment.id
+ att.save
+ new_homework.attachments << att
+ end
+
+ if new_homework.save
+ if new_homework.homework_type == 4
+ HomeworkCommonsShixuns.create(:homework_common_id => new_homework.id, :shixun_id => homework.homework_bank_shixun.shixun_id)
+ end
+ new_homework_detail_manual.save if new_homework_detail_manual
+ new_homework.homework_detail_programing.save if new_homework.homework_detail_programing
+ new_homework.homework_detail_group.save if new_homework.homework_detail_group
+ homework.update_column(:quotes, homework.quotes+1)
+ end
+end
+
diff --git a/app/helpers/homework_bank_helper.rb b/app/helpers/homework_bank_helper.rb
new file mode 100644
index 000000000..fbb669ff3
--- /dev/null
+++ b/app/helpers/homework_bank_helper.rb
@@ -0,0 +1,2 @@
+module HomeworkBankHelper
+end
diff --git a/app/helpers/owner_type_helper.rb b/app/helpers/owner_type_helper.rb
index 56512afcf..9124a4f98 100644
--- a/app/helpers/owner_type_helper.rb
+++ b/app/helpers/owner_type_helper.rb
@@ -14,4 +14,5 @@ module OwnerTypeHelper
CONTEST = 13
HOMEWORKREFERENCEANSWER = 14
STUDENTWORK = 15
+ HOMEWORKBANK = 16
end
\ No newline at end of file
diff --git a/app/helpers/syllabuses_helper.rb b/app/helpers/syllabuses_helper.rb
index 70f865ef5..3cf56b047 100644
--- a/app/helpers/syllabuses_helper.rb
+++ b/app/helpers/syllabuses_helper.rb
@@ -131,60 +131,4 @@ module SyllabusesHelper
content
end
- def quote_resource_bank resource, course
- atta = Attachment.new(:filename => resource.filename, :disk_filename => resource.disk_filename, :filesize => resource.filesize, :digest => resource.digest, :downloads => 0, :is_publish => 0,
- :author_id => User.current.id, :description => resource.description, :disk_directory => resource.disk_directory, :is_public => 0, :copy_from => resource.copy_from.nil? ? resource.id : resource.copy_from,
- :quotes => 0, :resource_bank_id => resource.id, :created_on => Time.now, :content_type =>resource.content_type)
- if course.attachments << atta
- # 更新引用次数
- quotes = resource.quotes.to_i + 1
- resource.update_attribute(:quotes, quotes)
- end
- end
-
- def quote_homework_bank homework, course
- new_homework = HomeworkCommon.new(:name => homework.name, :user_id => User.current.id, :description => homework.description, :homework_type => homework.homework_type, :late_penalty => 0,
- :course_id => course.id, :teacher_priority => 1, :anonymous_comment => 1, :quotes => 0, :is_open => 0,
- :homework_bank_id => homework.id, :score_open => 1, :anonymous_appeal => 0)
-
- new_homework.homework_detail_manual = HomeworkDetailManual.new
- new_homework_detail_manual = new_homework.homework_detail_manual
- new_homework_detail_manual.ta_proportion = new_homework.homework_type == 2 ? 0.4 : 1.0
- new_homework_detail_manual.comment_status = 0
- new_homework_detail_manual.evaluation_num = 3
- new_homework_detail_manual.absence_penalty = 0
-
- if new_homework.homework_type == 2
- new_homework.homework_detail_programing = HomeworkDetailPrograming.new
- new_homework.homework_detail_programing.ta_proportion = 0.6
- new_homework.homework_detail_programing.language = homework.language
- homework.homework_bank_tests.each_with_index do |homework_test|
- if homework_test.test_type
- new_homework.homework_tests << HomeworkTest.new(
- input: homework_test.input,
- output: homework_test.output
- )
- else
- new_homework.homework_samples << HomeworkSample.new(
- input: homework_test.input,
- output: homework_test.output
- )
- end
- end
- end
-
- if new_homework.homework_type == 3
- new_homework.homework_detail_group = HomeworkDetailGroup.new
- new_homework.homework_detail_group.min_num = homework.min_num
- new_homework.homework_detail_group.max_num = homework.max_num
- new_homework.homework_detail_group.base_on_project = homework.base_on_project
- end
-
- if new_homework.save
- new_homework_detail_manual.save if new_homework_detail_manual
- new_homework.homework_detail_programing.save if new_homework.homework_detail_programing
- new_homework.homework_detail_group.save if new_homework.homework_detail_group
- homework.update_column(:quotes, homework.quotes+1)
- end
- end
end
diff --git a/app/models/homework_bank.rb b/app/models/homework_bank.rb
index 0f89c74d9..6cd699bbd 100644
--- a/app/models/homework_bank.rb
+++ b/app/models/homework_bank.rb
@@ -2,7 +2,11 @@
class HomeworkBank < ActiveRecord::Base
# attr_accessible :title, :body
belongs_to :user
- has_many :homework_bank_tests
+ belongs_to :syllabus
+ has_many :homework_bank_tests, :dependent => :destroy
+ has_many :homework_bank_samples, :dependent => :destroy
+ has_many :homework_commons
+ has_one :homework_bank_shixun
acts_as_attachable
def language_name
diff --git a/app/models/homework_bank_sample.rb b/app/models/homework_bank_sample.rb
new file mode 100644
index 000000000..7b64f93a9
--- /dev/null
+++ b/app/models/homework_bank_sample.rb
@@ -0,0 +1,4 @@
+class HomeworkBankSample < ActiveRecord::Base
+ belongs_to :homework_bank
+ attr_accessible :input, :output, :homework_bank_id
+end
diff --git a/app/models/homework_bank_shixun.rb b/app/models/homework_bank_shixun.rb
new file mode 100644
index 000000000..3bec23fcd
--- /dev/null
+++ b/app/models/homework_bank_shixun.rb
@@ -0,0 +1,5 @@
+class HomeworkBankShixun < ActiveRecord::Base
+ belongs_to :homework_bank
+ belongs_to :shixun
+ attr_accessible :homework_bank_id, :shixun_id
+end
diff --git a/app/models/syllabus.rb b/app/models/syllabus.rb
index 80d24ba5a..42af92576 100644
--- a/app/models/syllabus.rb
+++ b/app/models/syllabus.rb
@@ -20,6 +20,7 @@ class Syllabus < ActiveRecord::Base
belongs_to :user
has_many :courses
+ has_many :homework_banks
has_many :reference_materials, :dependent => :destroy
has_many :syllabus_update_records, :dependent => :destroy
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
diff --git a/app/views/homework_bank/_homework_bank_list.html.erb b/app/views/homework_bank/_homework_bank_list.html.erb
new file mode 100644
index 000000000..e47254228
--- /dev/null
+++ b/app/views/homework_bank/_homework_bank_list.html.erb
@@ -0,0 +1,84 @@
+
+
+
+
共 <%= @hw_count %> 个搜索结果
+ <%= link_to '引用次数排序', homework_bank_index_path(:type => @type, :order => "quotes", :search => @search, :sort => @r_sort, :property=>@property), :class => "fr mr15 #{@order == 'quotes' ? 'color-blue' : ''}", :remote => true %>
+
|
+ <%= link_to '更新时间排序', homework_bank_index_path(:type => @type, :order => "updated_at", :search => @search, :sort => @r_sort, :property=>@property), :class => "fr #{@order == 'updated_at' ? 'color-blue' : ''}", :remote => true %>
+
+
+
+ <%= link_to '全部', homework_bank_index_path(:type => @type), :class => 'edu-filter-cir-grey mr5 active', :id => 'homework_bank_pro_0', :remote => true %>
+ <%= link_to '编程', homework_bank_index_path(:type => @type, :property => 2), :class => 'edu-filter-cir-grey mr5', :id => 'homework_bank_pro_2', :remote => true %>
+ <%= link_to '普通', homework_bank_index_path(:type => @type, :property => 1), :class => 'edu-filter-cir-grey mr5', :id => 'homework_bank_pro_1', :remote => true %>
+ <%= link_to '分组', homework_bank_index_path(:type => @type, :property => 3), :class => 'edu-filter-cir-grey mr5', :id => 'homework_bank_pro_3', :remote => true %>
+ <%= link_to '实训', homework_bank_index_path(:type => @type, :property => 4), :class => 'edu-filter-cir-grey mr5', :id => 'homework_bank_pro_4', :remote => true %>
+ <%#= link_to '试卷', homework_bank_path(:type => @type, :property => 5), :class => 'edu-filter-cir-grey mr5', :remote => true %>
+
+
新建
+
+
+
+ <% if @hw_count != 0 %>
+ <%= form_tag(choose_user_course_homework_bank_index_path(), :id => 'hb_search_course_h_form', :remote => true, :method => 'post') do %>
+ <% @homeworks.each do |homework| %>
+
+
+
+
+
+ <%= link_to '预览', homework_bank_path(homework), :target => '_blank' %>
+ <%= link_to '发送', choose_user_course_homework_bank_index_path(:check_homework_bank => ["#{homework.id}"]), :remote => true %>
+ <% if @type.to_i == 1 %>
+ 删除
+ <% end %>
+
+
+
+ <% end %>
+ <% end %>
+ <% else %>
+ <%= render :partial => 'welcome/no_data' %>
+ <% end %>
+
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_bank/_hw_search_course_list.html.erb b/app/views/homework_bank/_hw_search_course_list.html.erb
new file mode 100644
index 000000000..7c00061d9
--- /dev/null
+++ b/app/views/homework_bank/_hw_search_course_list.html.erb
@@ -0,0 +1,12 @@
+<% if @courses.count > 0 %>
+ <% @courses.each do |course| %>
+
+
+
+ <%= course.name %>
+
+
+ <% end %>
+<% else %>
+
+<% end %>
diff --git a/app/views/homework_bank/_new_common_homework.html.erb b/app/views/homework_bank/_new_common_homework.html.erb
new file mode 100644
index 000000000..2f82919a8
--- /dev/null
+++ b/app/views/homework_bank/_new_common_homework.html.erb
@@ -0,0 +1,77 @@
+
+
<%= edit_mode ? '编辑' : '新建' %>普通作业
+
+
+
+
+
+
+
+
+ 适用课程
+ <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@homework.syllabus_id), {:id=>"new_syllabus_id", :class=>"fl task-height-40 task-form-30"} %>
+
+
+
+
+
课程列表中没有?<%= link_to '创建课程', new_syllabus_path(),:target => '_blank', :class => 'color-blue' %>
+
+
+
+
+
+ * 标题
+
+
+
+ * 内容
+ <%= hidden_field_tag :asset_id, params[:asset_id], :required => false, :style => 'display:none' %>
+
+ <%= f.kindeditor :description, :editor_id => 'homework_description_editor',
+ :owner_id => @homework.nil? ? 0: @homework.id,
+ :owner_type => OwnerTypeHelper::HOMEWORKBANK,
+ :width => '89.7%',
+ :height => 200,
+ :minHeight=>200,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'homework_content',
+ :class => 'talk_text fl',
+ :maxlength => 5000 }
+ %>
+
+
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @homework} %>
+
+
+
+ 参考答案
+
+ <%= f.kindeditor :reference_answer, :editor_id => 'homework_ref_answer_editor',
+ :owner_id => @homework.nil? ? 0: @homework.id,
+ :owner_type => OwnerTypeHelper::HOMEWORKBANK,
+ :width => '89.7%',
+ :height => 200,
+ :minHeight=>200,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'homework_ref_answer',
+ :class => 'talk_text fl',
+ :maxlength => 5000 }
+ %>
+
+
+ 保存
+ <% if edit_mode %>
+ <%= link_to '取消', homework_bank_path(@homework), :class => 'task-btn fr mr10' %>
+ <% else %>
+ <%= link_to '取消', homework_bank_index_path(), :class => 'task-btn fr mr10' %>
+ <% end %>
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_bank/_new_group_homework.html.erb b/app/views/homework_bank/_new_group_homework.html.erb
new file mode 100644
index 000000000..7e3a4523f
--- /dev/null
+++ b/app/views/homework_bank/_new_group_homework.html.erb
@@ -0,0 +1,93 @@
+<% not_allow_select = edit_mode && @homework.student_works.has_committed.count != 0 %>
+
+
+
<%= edit_mode ? '编辑' : '新建' %>分组作业
+
+
+
+
+
+
+
+
+ 适用课程
+ <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@homework.syllabus_id), {:id=>"new_syllabus_id", :class=>"fl task-height-40 task-form-30"} %>
+
+
+
+
+
课程列表中没有?<%= link_to '创建课程', new_syllabus_path(),:target => '_blank', :class => 'color-blue' %>
+
+
+
+
+
+ * 标题
+
+
+
+ * 内容
+ <%= hidden_field_tag :asset_id, params[:asset_id], :required => false, :style => 'display:none' %>
+
+ <%= f.kindeditor :description, :editor_id => 'homework_description_editor',
+ :owner_id => @homework.nil? ? 0: @homework.id,
+ :owner_type => OwnerTypeHelper::HOMEWORKBANK,
+ :width => '89.7%',
+ :height => 200,
+ :minHeight=>200,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'homework_content',
+ :class => 'talk_text fl',
+ :maxlength => 5000 }
+ %>
+
+
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @homework} %>
+
+
+ * 分组设置
+
+
+
+ 参考答案
+
+ <%= f.kindeditor :reference_answer, :editor_id => 'homework_ref_answer_editor',
+ :owner_id => @homework.nil? ? 0: @homework.id,
+ :owner_type => OwnerTypeHelper::HOMEWORKBANK,
+ :width => '89.7%',
+ :height => 200,
+ :minHeight=>200,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'homework_ref_answer',
+ :class => 'talk_text fl',
+ :maxlength => 5000 }
+ %>
+
+
+ 保存
+ <% if edit_mode %>
+ <%= link_to '取消', homework_bank_path(@homework), :class => 'task-btn fr mr10' %>
+ <% else %>
+ <%= link_to '取消', homework_bank_index_path(), :class => 'task-btn fr mr10' %>
+ <% end %>
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_bank/_new_program_homework.html.erb b/app/views/homework_bank/_new_program_homework.html.erb
new file mode 100644
index 000000000..c6f6ad623
--- /dev/null
+++ b/app/views/homework_bank/_new_program_homework.html.erb
@@ -0,0 +1,170 @@
+
+
<%= edit_mode ? '编辑' : '新建' %>编程作业
+
+
+
+
+
+
+
+
+ 适用课程
+ <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@homework.syllabus_id), {:id=>"new_syllabus_id", :class=>"fl task-height-40 task-form-30"} %>
+
+
+
+
+
课程列表中没有?<%= link_to '创建课程', new_syllabus_path(),:target => '_blank', :class => 'color-blue' %>
+
+
+
+
+
+ * 标题
+
+
+
+ * 内容
+ <%= hidden_field_tag :asset_id, params[:asset_id], :required => false, :style => 'display:none' %>
+
+ <%= f.kindeditor :description, :editor_id => 'homework_description_editor',
+ :owner_id => @homework.nil? ? 0: @homework.id,
+ :owner_type => OwnerTypeHelper::HOMEWORKBANK,
+ :width => '89.7%',
+ :height => 200,
+ :minHeight=>200,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'homework_content',
+ :class => 'talk_text fl',
+ :maxlength => 5000 }
+ %>
+
+
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @homework} %>
+
+
+ * 样例设置
+
+
+
+ * 测试集设置
+
+
+
+
+ <%= options_for_select({"C语言" => 1, "C++" => 2, "Python" => 3, "Java" => 4}, 1) %>
+
+ 温馨提示:您可以在发布后,通过"模拟答题"进行标准代码的检测。
+
+
+ <% if edit_mode %>
+ <% @homework.homework_bank_tests.each_with_index do |test, index| %>
+
+
+ 测试<%= index + 1 %>
+
+ <% if index != 0 %>
+
+ <% end %>
+
+
+
+
+ <% end %>
+ <% else %>
+
+
+ 测试1
+
+
+
+
+
+ <% end %>
+
+
+
+ 参考答案
+
+ <%= f.kindeditor :reference_answer, :editor_id => 'homework_ref_answer_editor',
+ :owner_id => @homework.nil? ? 0: @homework.id,
+ :owner_type => OwnerTypeHelper::HOMEWORKBANK,
+ :width => '89.7%',
+ :height => 200,
+ :minHeight=>200,
+ :class => 'talk_text fl',
+ :input_html => { :id => 'homework_ref_answer',
+ :class => 'talk_text fl',
+ :maxlength => 5000 }
+ %>
+
+
+ 保存
+ <% if edit_mode %>
+ <%= link_to '取消', homework_bank_path(@homework), :class => 'task-btn fr mr10' %>
+ <% else %>
+ <%= link_to '取消', homework_bank_index_path(), :class => 'task-btn fr mr10' %>
+ <% end %>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_bank/_send_homework_bank.html.erb b/app/views/homework_bank/_send_homework_bank.html.erb
new file mode 100644
index 000000000..5f7926f5d
--- /dev/null
+++ b/app/views/homework_bank/_send_homework_bank.html.erb
@@ -0,0 +1,34 @@
+
\ No newline at end of file
diff --git a/app/views/homework_bank/_shixuns.html.erb b/app/views/homework_bank/_shixuns.html.erb
new file mode 100644
index 000000000..1d6fba616
--- /dev/null
+++ b/app/views/homework_bank/_shixuns.html.erb
@@ -0,0 +1,52 @@
+
\ No newline at end of file
diff --git a/app/views/homework_bank/choose_user_course.js.erb b/app/views/homework_bank/choose_user_course.js.erb
new file mode 100644
index 000000000..678680b27
--- /dev/null
+++ b/app/views/homework_bank/choose_user_course.js.erb
@@ -0,0 +1,6 @@
+<% if params[:is_observe].nil? %>
+var htmlvalue = "<%= escape_javascript(render :partial => 'homework_bank/send_homework_bank') %>";
+pop_box_new(htmlvalue, 452, 463);
+<% else %>
+$("#search_course_list").html("<%= escape_javascript(render :partial => 'homework_bank/hw_search_course_list') %>");
+<% end %>
diff --git a/app/views/homework_bank/edit.html.erb b/app/views/homework_bank/edit.html.erb
new file mode 100644
index 000000000..3249f77d4
--- /dev/null
+++ b/app/views/homework_bank/edit.html.erb
@@ -0,0 +1,18 @@
+<% content_for :header_tags do %>
+ <%= import_ke(enable_at: false, prettify: false, init_activity: false) %>
+<% end %>
+
+
+
+ <%= link_to User.current.show_name, user_path(User.current) %> > <%= link_to '智能课堂', courses_path() %> > <%= link_to '我的题库', homework_bank_index_path() %> > 编辑
+
+ <%= form_for @homework, :html => {:id => 'homework_common_submit_form'} do |f| %>
+ <% if @homework_type == 1 %>
+ <%= render :partial => 'new_common_homework', :locals => {:f => f, :edit_mode => true} %>
+ <% elsif @homework_type == 2 %>
+ <%= render :partial => 'new_program_homework', :locals => {:f => f, :edit_mode => true} %>
+ <% elsif @homework_type == 3 %>
+ <%= render :partial => 'new_group_homework', :locals => {:f => f, :edit_mode => true} %>
+ <% end %>
+ <% end %>
+
\ No newline at end of file
diff --git a/app/views/homework_bank/index.html.erb b/app/views/homework_bank/index.html.erb
new file mode 100644
index 000000000..19b25fd40
--- /dev/null
+++ b/app/views/homework_bank/index.html.erb
@@ -0,0 +1,33 @@
+
+
+
+
<%= link_to User.current.show_name, user_path(User.current) %> > <%= link_to '智能课堂', courses_path() %> > 题库
+
+
+
+
+
+
+ <%= render :partial => 'homework_bank/homework_bank_list' %>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_bank/index.js.erb b/app/views/homework_bank/index.js.erb
new file mode 100644
index 000000000..4aad8261b
--- /dev/null
+++ b/app/views/homework_bank/index.js.erb
@@ -0,0 +1,20 @@
+$("#edu-tab-con-1").html("<%= j(render :partial => 'homework_bank/homework_bank_list') %>");
+<% if params[:property] %>
+$(".edu-filter-cir-grey").removeClass("active");
+<% case params[:property].to_i %>
+<% when 1 %>
+ $("#homework_bank_pro_1").addClass("active");
+<% when 2 %>
+ $("#homework_bank_pro_2").addClass("active");
+<% when 3 %>
+ $("#homework_bank_pro_3").addClass("active");
+<% when 4 %>
+ $("#homework_bank_pro_4").addClass("active");
+<% else %>
+ $("#homework_bank_pro_0").addClass("active");
+<% end %>
+<% end %>
+if(<%= params[:type] == '2' %>){
+ $("#edu-tab-nav-1").removeClass("edu-new-tab-hover");
+ $("#edu-tab-nav-2").addClass("edu-new-tab-hover");
+}
\ No newline at end of file
diff --git a/app/views/homework_bank/new.html.erb b/app/views/homework_bank/new.html.erb
new file mode 100644
index 000000000..614a36255
--- /dev/null
+++ b/app/views/homework_bank/new.html.erb
@@ -0,0 +1,18 @@
+<% content_for :header_tags do %>
+ <%= import_ke(enable_at: false, prettify: false, init_activity: false) %>
+<% end %>
+
+
+
+ <%= link_to User.current.show_name, user_path(User.current) %> > <%= link_to '智能课堂', courses_path() %> > <%= link_to '我的题库', homework_bank_index_path() %> > 新建
+
+ <%= labelled_form_for @homework, :url =>{:controller=>'homework_bank',:action => 'create'}, :html => {:id => 'homework_common_submit_form'}, :method => "post" do |f| %>
+ <% if @homework_type == 1 %>
+ <%= render :partial => 'new_common_homework', :locals => {:f => f, :edit_mode => false} %>
+ <% elsif @homework_type == 2 %>
+ <%= render :partial => 'new_program_homework', :locals => {:f => f, :edit_mode => false} %>
+ <% elsif @homework_type == 3 %>
+ <%= render :partial => 'new_group_homework', :locals => {:f => f, :edit_mode => false} %>
+ <% end %>
+ <% end %>
+
\ No newline at end of file
diff --git a/app/views/homework_bank/send_h_bank_to_course.js.erb b/app/views/homework_bank/send_h_bank_to_course.js.erb
new file mode 100644
index 000000000..cd9b51b7b
--- /dev/null
+++ b/app/views/homework_bank/send_h_bank_to_course.js.erb
@@ -0,0 +1 @@
+yes_notice_box("已发送到目标班级的作业列表 但需要您设置发布和截止时间,以激活相应作业,谢谢!");
\ No newline at end of file
diff --git a/app/views/homework_bank/shixuns.js.erb b/app/views/homework_bank/shixuns.js.erb
new file mode 100644
index 000000000..873e31a14
--- /dev/null
+++ b/app/views/homework_bank/shixuns.js.erb
@@ -0,0 +1,2 @@
+var htmlvalue = "<%= escape_javascript(render :partial => 'homework_bank/shixuns') %>";
+pop_box_new(htmlvalue, 680, 454);
\ No newline at end of file
diff --git a/app/views/homework_bank/show.html.erb b/app/views/homework_bank/show.html.erb
new file mode 100644
index 000000000..a78506207
--- /dev/null
+++ b/app/views/homework_bank/show.html.erb
@@ -0,0 +1,177 @@
+<% content_for :header_tags do %>
+ <%= javascript_include_tag "/assets/codemirror/codemirror_python_ruby_c" %>
+ <%= javascript_include_tag "resizeable_table" %>
+ <%= stylesheet_link_tag "/assets/codemirror/codemirror" %>
+<% end %>
+
+
+
+
+
+
+ <%= link_to User.current.show_name, user_path(User.current) %> > <%= link_to '智能课堂', courses_path() %> > <%= @homework.user == User.current ? link_to('我的题库', homework_bank_index_path()) : link_to('公共题库', homework_bank_index_path(:type => 2)) %>
+
+
+ <% unless @homework.is_public %>
+
+ <% end %>
+ <%= @homework.name %>
+
+ <%= link_to '返回', @homework.user == User.current ? homework_bank_index_path() : homework_bank_index_path(:type => 2), :class => 'fr font-12 mr15 mt3 link-color-grey' %>
+
+
+
+
+
+
+ 详情
+
+ <% if @is_admin %>
+
+ 参考答案
+
+ <% end %>
+
+
+
+
+ <% if @is_admin %>
+
+
+
+ <% if @homework.homework_type != 4 %>
+
+ <%= link_to l(:button_edit), edit_homework_bank_path(@homework) %>
+
+ <% end %>
+
+ <%= link_to "发送", setting_homework_common_path(@homework) %>
+
+ <% unless @homework.is_public %>
+
+ 设为公开
+
+ <% end %>
+
+ 删除
+
+
+
+ <% elsif @homework.is_public %>
+
+ <%= link_to "发送", setting_homework_common_path(@homework) %>
+
+ <% end %>
+
+
+ <%= @homework.description.html_safe %>
+
+
+
+ <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => @homework} %>
+
+ <% if @homework.homework_type == 3 %>
+
+
+
+
分组人数: <%= @homework.min_num %> - <%= @homework.max_num %> 人
+
注:任一成员都可以提交作品,提交作品时需要关联同组成员,组内成员作品共享。
+
+
+ <% end %>
+
+ <% if @homework.homework_type == 2 %>
+ <% samples = @homework.homework_bank_samples %>
+ <% unless samples.empty? %>
+
+
+
输入输出样例:<%= samples.count %> 组
+
+
+ <% samples.each_with_index do |sample, index| %>
+
+
+
+
+ 样例<%= index + 1 %>
+
+
+ 样例输入
+
+
<%=sample.input.blank? ? " " : sample.input %>
+
+
+
+ 样例输出
+
+
<%=sample.output.blank? ? " " : sample.output %>
+
+
+
+
+ <% end %>
+
+
+ <% end %>
+
+ <%# if @is_teacher %>
+
+
+
测试集:<%=@homework.homework_bank_tests.count %> 组
+
+
+
+
+
+ 序号
+ 测试集输入
+ 测试集输出
+
+
+
+ <% @homework.homework_bank_tests.each_with_index do |test, i| %>
+
+ <%=i+1 %>
+
+ <%=test.input.blank? ? " " : test.input %>
+
+
+ <%=test.output.blank? ? " " : test.output %>
+
+
+ <% end %>
+
+
+
+
+ <% end %>
+ <%# end %>
+
+
+
+
+ <% unless @homework.reference_answer.blank? %>
+ <%= @homework.reference_answer.html_safe %>
+ <% else %>
+
+
暂未设置参考答案 ~
+ <% end %>
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/homework_common/_new_group_homework.html.erb b/app/views/homework_common/_new_group_homework.html.erb
index 8b16247bb..5f6b46ed6 100644
--- a/app/views/homework_common/_new_group_homework.html.erb
+++ b/app/views/homework_common/_new_group_homework.html.erb
@@ -76,8 +76,11 @@
保存
- <%= link_to '取消', homework_common_index_path(:course => @course), :class => 'task-btn fr mr10' %>
-
+ <% if edit_mode %>
+ <%= link_to '取消', student_work_index_path(:homework => @homework.id), :class => 'task-btn fr mr10' %>
+ <% else %>
+ <%= link_to '取消', homework_common_index_path(:course => @course), :class => 'task-btn fr mr10' %>
+ <% end %>
diff --git a/app/views/homework_common/_new_program_homework.html.erb b/app/views/homework_common/_new_program_homework.html.erb
index b9ef4f63a..e9085006d 100644
--- a/app/views/homework_common/_new_program_homework.html.erb
+++ b/app/views/homework_common/_new_program_homework.html.erb
@@ -129,7 +129,11 @@
保存
- <%= link_to '取消', homework_common_index_path(:course => @course), :class => 'task-btn fr mr10' %>
+ <% if edit_mode %>
+ <%= link_to '取消', student_work_index_path(:homework => @homework.id), :class => 'task-btn fr mr10' %>
+ <% else %>
+ <%= link_to '取消', homework_common_index_path(:course => @course), :class => 'task-btn fr mr10' %>
+ <% end %>
@@ -143,7 +147,7 @@
-
+
@@ -156,6 +160,6 @@
-
+
\ No newline at end of file
diff --git a/app/views/homework_common/_shixuns.html.erb b/app/views/homework_common/_shixuns.html.erb
index a568b5cbb..b8ae7b673 100644
--- a/app/views/homework_common/_shixuns.html.erb
+++ b/app/views/homework_common/_shixuns.html.erb
@@ -1,14 +1,14 @@
' +
'
' +
- '请先选择作业类型
' +
+ '请先选择作业类型
' +
'