From b050ebc2e8e6b6b52075395eb86ee58db0d3a12f Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Sat, 27 May 2017 10:27:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E6=A8=A1=E5=9D=97=E6=95=B4?= =?UTF-8?q?=E4=BD=93=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 57 ++++++------- app/helpers/application_helper.rb | 2 +- app/models/course.rb | 15 ++++ app/models/course_module.rb | 3 +- app/views/courses/settings/_moduels.html.erb | 36 ++++---- .../layouts/_board_children_list.html.erb | 9 +- app/views/layouts/_course_left_info.html.erb | 52 ++++++++++++ app/views/layouts/base_courses.html.erb | 82 +++++++++++++------ .../20170522062153_create_course_modules.rb | 16 ---- .../20170526062330_del_course_modules.rb | 8 ++ .../20170526062907_create_course_modules.rb | 12 +++ ...3836_change_course_id_for_course_module.rb | 8 ++ ...526073920_rename_type_for_course_module.rb | 8 ++ spec/factories/course_modules.rb | 6 ++ spec/models/course_module_spec.rb | 5 ++ 15 files changed, 226 insertions(+), 93 deletions(-) create mode 100644 app/views/layouts/_course_left_info.html.erb delete mode 100644 db/migrate/20170522062153_create_course_modules.rb create mode 100644 db/migrate/20170526062330_del_course_modules.rb create mode 100644 db/migrate/20170526062907_create_course_modules.rb create mode 100644 db/migrate/20170526063836_change_course_id_for_course_module.rb create mode 100644 db/migrate/20170526073920_rename_type_for_course_module.rb create mode 100644 spec/factories/course_modules.rb create mode 100644 spec/models/course_module_spec.rb diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 30c94169b..d0c7e5d02 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -851,21 +851,23 @@ class CoursesController < ApplicationController @orgs_not_in_course = User.current.organizations.where("organizations.id not in #{course_org_ids}") end - course_module = CourseModule.where(:course_id => @course.id).first - @module = { - course_module.boards => 'boards', - course_module.message => 'message', - course_module.homework => 'homework', - course_module.exercises => 'exercises', - course_module.poll => 'poll', - course_module.statistics => 'statistics', - course_module.attachment => 'attachment' - }.sort {|a,b| a <=> b} + course_module = @course.course_modules + if course_module.blank? + type = ["news", "boards", "homework", "exercises", "poll", "statistics", "attachment"] + for i in 0..6 + CourseModule.create(:course_id => @course.id, :type => type[i], :position => i + 1, :hidden => 0 ) + end + course_module = @course.course_modules + end + + + @modules = course_module.order("position asc") @course_board = @course.boards.where("parent_id is NULL").first @board = @course_board.children.order("position asc") @board_count = @board.count + @curr_page = '设置' respond_to do |format| format.html { render :layout => 'base_edu_course' } @@ -879,37 +881,36 @@ class CoursesController < ApplicationController def update_position - course_module = CourseModule.where(:course_id => @course.id).first + course_module = @course.course_modules for i in 0..6 case params[:position][i] when "boards" - course_module.update_attribute('boards', i+1) - when "message" - course_module.update_attribute('message', i+1) + course_module.where(:module_type => 'boards').first.update_attribute('position', i+1) + when "news" + course_module.where(:module_type => 'news').first.update_attribute('position', i+1) when "homework" - course_module.update_attribute('homework', i+1) + course_module.where(:module_type => 'homework').first.update_attribute('position', i+1) when "exercises" - course_module.update_attribute('exercises', i+1) + course_module.where(:module_type => 'exercises').first.update_attribute('position', i+1) when "poll" - course_module.update_attribute('poll', i+1) + course_module.where(:module_type => 'poll').first.update_attribute('position', i+1) when "statistics" - course_module.update_attribute('statistics', i+1) + course_module.where(:module_type => 'statistics').first.update_attribute('position', i+1) when "attachment" - course_module.update_attribute('attachment', i+1) + course_module.where(:module_type => 'attachment').first.update_attribute('position', i+1) end end - @module = { - course_module.boards => 'boards', - course_module.message => 'message', - course_module.homework => 'homework', - course_module.exercises => 'exercises', - course_module.poll => 'poll', - course_module.statistics => 'statistics', - course_module.attachment => 'attachment' - }.sort {|a,b| a <=> b} + # params[:message] 有值 就更行字段: 0为不隐藏,1为隐藏 + type = ["news", "boards", "attachment", "homework", "poll", "exercises", "statistics"] + hidden = type - params[:message] + course_module.where(:module_type => params[:message]).update_all(:hidden => 0) + course_module.where(:module_type => hidden).update_all(:hidden => 1) + + + @modules = @course.course_modules.order("position asc") @course_board = @course.boards.where("parent_id is NULL").first @board = @course_board.children.order("position asc") @board_count = @board.count diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 308ed8db3..8db2b9336 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -63,7 +63,7 @@ module ApplicationHelper case word when "boards" result = "讨论区" - when "message" + when "news" result = "通知" when "homework" result = "作业" diff --git a/app/models/course.rb b/app/models/course.rb index 20c558614..79a8bab79 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -66,6 +66,8 @@ class Course < ActiveRecord::Base # 课程贡献榜 has_many :course_contributor_scores, :dependent => :destroy + #课程模块 + has_many :course_modules, :dependent => :destroy acts_as_taggable acts_as_nested_set :order => 'name', :dependent => :destroy acts_as_attachable :view_permission => :view_course_files, @@ -354,6 +356,19 @@ class Course < ActiveRecord::Base end end + # 创建课程模块 + def create_course_modules + mod = self.course_modules + if mod.blank? + type = ["news", "boards", "attachment", "homework", "poll", "exercises", "statistics"] + for i in 0..6 + CourseModule.create(:course_id => @course.id, :type => type[i], :position => i + 1, :hidden => 0 ) + end + mod = self.course_modules + end + return mod + end + def get_endup_time begin end_time = Time.parse(self.endup_time) diff --git a/app/models/course_module.rb b/app/models/course_module.rb index 3bd30d0ee..c5b9c1fac 100644 --- a/app/models/course_module.rb +++ b/app/models/course_module.rb @@ -1,5 +1,6 @@ class CourseModule < ActiveRecord::Base # attr_accessible :title, :body belongs_to :course - attr_accessible :course_id, :boards, :message, :homework, :exercises, :poll, :statistics + attr_accessible :course_id, :module_type, :position, :hidden + end diff --git a/app/views/courses/settings/_moduels.html.erb b/app/views/courses/settings/_moduels.html.erb index 3a65b9ce2..19b50d9ce 100644 --- a/app/views/courses/settings/_moduels.html.erb +++ b/app/views/courses/settings/_moduels.html.erb @@ -1,33 +1,33 @@