From f380d781e72bfbcdddb0d523d250d89366a48dfd Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Mon, 9 Feb 2015 10:28:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E5=B7=B2?= =?UTF-8?q?=E6=9C=89=E8=AF=BE=E7=A8=8B=E5=A4=8D=E5=88=B6=E6=88=90=E6=96=B0?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=9A=84=E8=B7=AF=E7=94=B1=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 28 +++++++++++++++++++++++++-- config/routes.rb | 1 + 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 61944ca2c..19f9c0fa2 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -955,10 +955,34 @@ class CoursesController < ApplicationController else render_403 end - end - + #根据已有课程复制课程 + #param id:已有课程ID + def copy_course + if @course + @new_course = Course.new @course.attributes + @new_course.tea_id = User.current.id + @new_course.created_at = DateTime.now + @new_course.updated_at = DateTime.now + @new_course.endup_time = nil + if @new_course.save + r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first + m = Member.new(:user => User.current, :roles => [r]) + m.project_id = -1 + course = CourseInfos.new(:user_id => User.current.id, :course_id => @new_course.id) + #user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id) + if @new_course.is_public == 1 + course_status = CourseStatus.create(:course_id => @new_course.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :course_type => 1) + end + @new_course.members << m + @new_course.course_infos << course + redirect_to settings_course_url @new_course + end + else + render_404 + end + end private diff --git a/config/routes.rb b/config/routes.rb index a06679fba..bf0b73e8d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -682,6 +682,7 @@ RedmineApp::Application.routes.draw do match 'valid_ajax', :to => 'courses#valid_ajax', :via => :get post 'join_in/join_group', :to => 'courses#join_group', :as => 'join_group' delete 'join_in/join_group', :to => 'courses#unjoin_group' + get 'copy_course' end collection do match 'join_private_courses', :via => [:get, :post]