diff --git a/app/controllers/gtask_banks_controller.rb b/app/controllers/gtask_banks_controller.rb deleted file mode 100644 index 12cba1e6d..000000000 --- a/app/controllers/gtask_banks_controller.rb +++ /dev/null @@ -1,2 +0,0 @@ -class GtaskBanksController < ApplicationController -end diff --git a/app/controllers/gtopic_banks_controller.rb b/app/controllers/gtopic_banks_controller.rb index 3629b87bc..002bc9848 100644 --- a/app/controllers/gtopic_banks_controller.rb +++ b/app/controllers/gtopic_banks_controller.rb @@ -9,7 +9,7 @@ class GtopicBanksController < ApplicationController def update @bank.update_attributes(gtopic_bank_params) - Attachment.associate_container(params[:attachment_ids], @graduation_topic.id, @graduation_topic.class) if params[:attachment_ids] + Attachment.associate_container(params[:attachment_ids], @bank.id, @bank.class) if params[:attachment_ids] end private diff --git a/app/controllers/task_banks_controller.rb b/app/controllers/task_banks_controller.rb new file mode 100644 index 000000000..7785d6d94 --- /dev/null +++ b/app/controllers/task_banks_controller.rb @@ -0,0 +1,32 @@ +class TaskBanksController < ApplicationController + before_action :require_login + before_action :find_bank + before_action :bank_admin, only: [:update] + + def show + @bank_attachments = @bank.attachments + end + + def update + @bank.update_attributes(gtask_bank_params) + Attachment.associate_container(params[:attachment_ids], @graduation_topic.id, @graduation_topic.class) if params[:attachment_ids] + end + + private + + def find_bank + @bank = GtaskBank.find_by!(id: params[:id]) + tip_exception(403, "无权限") unless (current_user.certification_teacher? && (@bank.is_public || @bank.user_id == current_user.id)) || current_user.admin? + end + + def bank_admin + tip_exception(403, "无权限") unless (current_user.certification_teacher? && @bank.user_id == current_user.id) || current_user.admin? + end + + def gtask_bank_params + tip_exception("name参数不能为空") if params[:gtopic_bank][:name].blank? + tip_exception("description参数不能为空") if params[:gtopic_bank][:description].blank? + params.require(:gtopic_bank).permit(:name, :topic_type, :topic_source, :topic_property_first, :description, + :topic_property_second, :source_unit, :topic_repeat, :province, :city) + end +end diff --git a/app/views/task_banks/show.json.jbuilder b/app/views/task_banks/show.json.jbuilder new file mode 100644 index 000000000..b929fafd8 --- /dev/null +++ b/app/views/task_banks/show.json.jbuilder @@ -0,0 +1,14 @@ +json.(@bank, :id, :name, :description, :task_type, :is_public) +# 附件 +json.attachments @bank_attachments do |attachment| + json.partial! "attachments/attachment_simple", locals: {attachment: attachment} +end + +# 分组要求 +if @bank.task_type == 2 + json.group_info do + json.max_number @bank.max_num + json.min_number @bank.min_num + json.base_on_project @bank.base_on_project + end +end