diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 25a826256..b93bdd1e8 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -2,6 +2,7 @@ class CoursesController < ApplicationController include CoursesHelper helper :activities helper :members + helper :words menu_item l(:label_sort_by_time), :only => :index menu_item l(:label_sort_by_active), :only => :index @@ -566,9 +567,8 @@ class CoursesController < ApplicationController @offset ||= @feedback_pages.offset @jour = @jours[@offset, @limit] @state = false - @base_courses_tag = @course.course_type respond_to do |format| - format.html{render :layout => 'base_courses' if @base_courses_tag==1} + format.html{render :layout => 'base_courses'} format.api end end diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index bfc1eacb4..52a7f585a 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -163,6 +163,20 @@ class WordsController < ApplicationController end end + + # add by nwb + def leave_course_message + user = User.current + message = params[:new_form][:course_message] + feedback = Course.add_new_jour(user, message, params[:id]) + if(feedback.errors.empty?) + redirect_to course_feedback_path(params[:id]), notice: l(:label_feedback_success) + else + flash[:error] = feedback.errors.full_messages[0] + redirect_to course_feedback_path(params[:id]) + end + + end def add_brief_introdution user = User.current @@ -182,10 +196,14 @@ class WordsController < ApplicationController end def obj_distinguish_url_origin + #modify by nwb + #添加对课程留言的支持 referer = request.headers["Referer"] obj_id = referer.match(%r(/([0-9]{1,})(/|$)))[1] if referer.match(/project/) obj = Project.find_by_id(obj_id) + elsif referer.match(/course/) + obj = Course.find_by_id(obj_id) elsif referer.match(/user/) obj = User.find_by_id(obj_id) elsif ( referer.match(/bids/) || referer.match(/calls/) ) @@ -203,11 +221,15 @@ class WordsController < ApplicationController end def add_reply_adapter options + #modify by nwb + #添加对课程留言的支持 obj = obj_distinguish_url_origin if obj.kind_of? User obj.add_jour(nil, nil, nil, options) elsif obj.kind_of? Project Project.add_new_jour(nil, nil, obj.id, options) + elsif obj.kind_of? Course + Course.add_new_jour(nil, nil, obj.id, options) elsif obj.kind_of? Bid obj.add_jour(nil, nil, nil, options) elsif obj.kind_of? Contest diff --git a/app/models/course.rb b/app/models/course.rb index ff4f1a222..7454982e2 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -25,7 +25,8 @@ class Course < ActiveRecord::Base has_many :course_infos, :class_name => 'CourseInfos',:dependent => :destroy has_many :enabled_modules, :dependent => :delete_all has_many :boards, :dependent => :destroy, :order => "position ASC" - has_many :course_journals_for_messages, :class_name => 'CourseJournalsForMessage', :as => :jour, :dependent => :destroy + #has_many :course_journals_for_messages, :class_name => 'CourseJournalsForMessage', :as => :jour, :dependent => :destroy + has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :news, :dependent => :destroy, :include => :author acts_as_taggable @@ -161,7 +162,7 @@ class Course < ActiveRecord::Base end end - # 创建课程留言 + # 创建课程讨论区 def create_board_sync @board = self.boards.build self.name=" #{l(:label_borad_course) }" @@ -175,6 +176,19 @@ class Course < ActiveRecord::Base end end + # 新增课程留言 + # add by nwb + def self.add_new_jour(user, notes, id, options={}) + course = Course.find(id) + if options.count == 0 + pjfm = course.journals_for_messages.build(:user_id => user.id, :notes => notes, :reply_id => 0) + else + pjfm = course.journals_for_messages.build(options) + end + pjfm.save + pjfm + end + # 删除课程所有成员 def delete_all_members me, mr = Member.table_name, MemberRole.table_name diff --git a/app/views/words/_message.html.erb b/app/views/words/_message.html.erb index 3e066a513..743f65231 100644 --- a/app/views/words/_message.html.erb +++ b/app/views/words/_message.html.erb @@ -36,7 +36,7 @@ function checkMaxLength() { <% reply_allow = JournalsForMessage.create_by_user? User.current %> -<% if jour.size >0 %> +<% if jour && jour.size >0 %> <% remove_allowed = (User.current.id == jour.first.user_id) %>