From e658a5426d7ba5bac137fe8c3079e714c471118c Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 24 Feb 2017 17:18:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E4=BD=9C=E4=B8=9A=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E9=A2=98=E5=BA=93=EF=BC=8C=E9=A2=98=E5=BA=93=E4=B8=AD?= =?UTF-8?q?=E8=AF=A5=E4=BD=9C=E4=B8=9A=E7=9A=84=E5=BC=95=E7=94=A8=E6=95=B0?= =?UTF-8?q?=E6=98=AF=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 8 ++++++++ app/controllers/users_controller.rb | 1 + app/helpers/application_helper.rb | 2 +- app/models/homework_common.rb | 11 +++++++++++ db/migrate/20170220065632_homework_bank_migration.rb | 2 +- 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 71a8dddf3..031a228ce 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -315,6 +315,14 @@ class HomeworkCommonController < ApplicationController #加入到题库 def add_to_homework_bank 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.save @homework.update_attributes(:homework_bank_id => homework_bank.id) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 7113d0c98..a0fc10506 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1499,6 +1499,7 @@ class UsersController < ApplicationController if params[:add_to_bank] homework_bank = add_to_homework_bank_f homework homework_bank.save + homework.update_attributes(:homework_bank_id => homework_bank.id) end redirect_to homework_common_index_path(:course => homework.course_id) end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index a8c3d2de4..6dd20aceb 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -4119,7 +4119,7 @@ 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 => 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 homework_bank.language = homework.homework_detail_programing.language homework.homework_tests.each_with_index do |homework_test| diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb index 13b076617..92d47bcdc 100644 --- a/app/models/homework_common.rb +++ b/app/models/homework_common.rb @@ -36,6 +36,17 @@ class HomeworkCommon < ActiveRecord::Base after_update :update_activity after_save :act_as_course_activity 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 diff --git a/db/migrate/20170220065632_homework_bank_migration.rb b/db/migrate/20170220065632_homework_bank_migration.rb index 85a7a69bc..6e47288ae 100644 --- a/db/migrate/20170220065632_homework_bank_migration.rb +++ b/db/migrate/20170220065632_homework_bank_migration.rb @@ -11,7 +11,7 @@ class HomeworkBankMigration < ActiveRecord::Migration course.homework_commons.each do |homework| 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, - :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 homework_bank.update_attributes(:language => homework.homework_detail_programing.language, :standard_code => homework.homework_detail_programing.standard_code) homework.homework_tests.each do |test|