班级作业加入题库,题库中该作业的引用数是零

This commit is contained in:
cxt 2017-02-24 17:18:32 +08:00
parent 544dfd356e
commit e658a5426d
5 changed files with 22 additions and 2 deletions

View File

@ -315,6 +315,14 @@ class HomeworkCommonController < ApplicationController
#加入到题库 #加入到题库
def add_to_homework_bank def add_to_homework_bank
if params[:type] && (params[:type].to_i == 1 || params[:type].to_i == 3) if params[:type] && (params[:type].to_i == 1 || params[:type].to_i == 3)
if params[:type].to_i == 3
old_banks = HomeworkBank.where(:homework_common_id => @homework.id)
unless old_banks.blank?
old_banks.each do |bank|
bank.update_attributes(:quotes => (bank.quotes - 1) > 0 ? (bank.quotes - 1) : 0)
end
end
end
homework_bank = add_to_homework_bank_f @homework homework_bank = add_to_homework_bank_f @homework
homework_bank.save homework_bank.save
@homework.update_attributes(:homework_bank_id => homework_bank.id) @homework.update_attributes(:homework_bank_id => homework_bank.id)

View File

@ -1499,6 +1499,7 @@ class UsersController < ApplicationController
if params[:add_to_bank] if params[:add_to_bank]
homework_bank = add_to_homework_bank_f homework homework_bank = add_to_homework_bank_f homework
homework_bank.save homework_bank.save
homework.update_attributes(:homework_bank_id => homework_bank.id)
end end
redirect_to homework_common_index_path(:course => homework.course_id) redirect_to homework_common_index_path(:course => homework.course_id)
end end

View File

@ -4119,7 +4119,7 @@ end
def add_to_homework_bank_f homework 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, homework_bank = HomeworkBank.new(:name => homework.name, :description => homework.description, :user_id => homework.user_id, :homework_type => homework.homework_type,
:quotes => 0, :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)
if homework.homework_type == 2 && homework.homework_detail_programing if homework.homework_type == 2 && homework.homework_detail_programing
homework_bank.language = homework.homework_detail_programing.language homework_bank.language = homework.homework_detail_programing.language
homework.homework_tests.each_with_index do |homework_test| homework.homework_tests.each_with_index do |homework_test|

View File

@ -36,6 +36,17 @@ class HomeworkCommon < ActiveRecord::Base
after_update :update_activity after_update :update_activity
after_save :act_as_course_activity after_save :act_as_course_activity
after_destroy :delete_kindeditor_assets after_destroy :delete_kindeditor_assets
before_destroy :update_homework_bank_quotes
#删除时更新题库中的引用数
def update_homework_bank_quotes
old_banks = HomeworkBank.where(:homework_common_id => self.id)
unless old_banks.blank?
old_banks.each do |bank|
bank.update_attributes(:quotes => (bank.quotes - 1) > 0 ? (bank.quotes - 1) : 0, :homework_common_id => nil)
end
end
end
#作业类型 #作业类型
def homework_type_ch def homework_type_ch

View File

@ -11,7 +11,7 @@ class HomeworkBankMigration < ActiveRecord::Migration
course.homework_commons.each do |homework| course.homework_commons.each do |homework|
unless homework.user.homework_banks.select("name").to_s.include?(homework.name) unless homework.user.homework_banks.select("name").to_s.include?(homework.name)
homework_bank = HomeworkBank.create(:user_id => homework.user_id, :name => homework.name, :description => homework.description, :homework_type => homework.homework_type, homework_bank = HomeworkBank.create(:user_id => homework.user_id, :name => homework.name, :description => homework.description, :homework_type => homework.homework_type,
:quotes => homework.quotes, :is_public => course.is_public, :applicable_syllabus => course.syllabus.title, :homework_common_id => homework.id, :created_at => homework.created_at) :quotes => 1, :is_public => course.is_public, :applicable_syllabus => course.syllabus.title, :homework_common_id => homework.id, :created_at => homework.created_at)
if homework.homework_type == 2 && homework.homework_detail_programing if homework.homework_type == 2 && homework.homework_detail_programing
homework_bank.update_attributes(:language => homework.homework_detail_programing.language, :standard_code => homework.homework_detail_programing.standard_code) homework_bank.update_attributes(:language => homework.homework_detail_programing.language, :standard_code => homework.homework_detail_programing.standard_code)
homework.homework_tests.each do |test| homework.homework_tests.each do |test|