diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 86c220bd2..7632cf591 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -381,6 +381,11 @@ class ApplicationController < ActionController::Base if allowed true else + if params[:action] == 'show' + #更新申请结果反馈消息的状态 + messages = CourseMessage.where("course_message_type =? and course_id =? and user_id =? and viewed =?", 'CourseRequestDealResult', @course.id, User.current.id, false) + messages.update_all(:viewed => true) + end if @course && @course.archived? render_403 :message => :notice_not_authorized_archived_project else diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 56252253a..a49126a6c 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -37,6 +37,7 @@ class CoursesController < ApplicationController join = cs.join_course params,@user @state = join[:state] @course = join[:course] + Mailer.run.join_course_request(@course, User.current, params[:role]) # else # @course = Course.find_by_id params[:object_id] # CourseMessage.create(:user_id => @course.tea_id, :course_id => @course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest') @@ -617,6 +618,10 @@ class CoursesController < ApplicationController create_course_messages = @course.course_messages.where("user_id =? and course_message_type =? and course_id =? and viewed =?", User.current.id, 'Course', @course.id, 0) create_course_messages.update_all(:viewed => true) + #更新申请结果反馈消息的状态 + course_request_messages = CourseMessage.where("user_id =? and course_id =? and course_message_type =? and viewed =?", User.current.id, @course.id, 'CourseRequestDealResult', false) + course_request_messages.update_all(:viewed => true) + course_activities = @course.course_activities @canShowRealName = User.current.member_of_course? @course @page = params[:page] ? params[:page].to_i + 1 : 0 diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 7425692c0..6d049783e 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -918,6 +918,12 @@ class UsersController < ApplicationController end def show + #更新用户申请成为课程老师或教辅消息的状态 + if params[:course_id] != nil + join_course_messages = CourseMessage.where("course_id =? and course_message_type =? and user_id =? and course_message_id =? and viewed =?", + params[:course_id], 'JoinCourseRequest', User.current.id, @user.id, false) + join_course_messages.update_all(:viewed => true) + end @page = params[:page] ? params[:page].to_i + 1 : 0 user_project_ids = @user.projects.visible.empty? ? "(-1)" : "(" + @user.projects.visible.map{|project| project.id}.join(",") + ")" user_course_ids = @user.courses.visible.empty? ? "(-1)" : "(" + @user.courses.visible.map{|course| course.id}.join(",") + ")" diff --git a/app/models/mailer.rb b/app/models/mailer.rb index d797f1ce1..8891e6552 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -1009,6 +1009,16 @@ class Mailer < ActionMailer::Base end end + def join_course_request(course, user, role) + @receive = User.find(course.tea_id) + @course = course + @user = user + @role = role + @subject = "#{@user.show_name} #{l(:label_apply_join_course)} #{@course.name} " + mail :to => @receive.mail, + :subject => @subject + end + private @@ -1066,4 +1076,5 @@ class Mailer < ActionMailer::Base 1.upto(len) { |i| newpass << chars[rand(chars.size-1)] } return newpass end + end diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index fb01e0398..b388b660c 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -317,6 +317,7 @@ class CoursesService elsif current_user.allowed_to?(:as_teacher,course) @state = 3 else + Mailer.run.join_course_request(course, User.current, params[:role]) #如果加入角色为教师或者教辅 CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0) @state = 6 @@ -337,6 +338,7 @@ class CoursesService if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and content = #{params[:role]} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0").count != 0 @state = 7 else + Mailer.run.join_course_request(course, User.current, params[:role]) CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0) @state = 6 end diff --git a/app/views/mailer/join_course_request.html.erb b/app/views/mailer/join_course_request.html.erb new file mode 100644 index 000000000..680b9c9df --- /dev/null +++ b/app/views/mailer/join_course_request.html.erb @@ -0,0 +1,4 @@ +

+ <%= @user.show_name %>申请成为课程<%= @course.name %>的<%= @role.eql?('9') ? '老师': '教辅' %> + <%=link_to user_message_url(@receive),user_message_url(@receive)%> +

diff --git a/app/views/mailer/join_course_request.text.erb b/app/views/mailer/join_course_request.text.erb new file mode 100644 index 000000000..62e2315c5 --- /dev/null +++ b/app/views/mailer/join_course_request.text.erb @@ -0,0 +1,4 @@ +<%= @user.show_name %>申请成为课程<%= @course.name %>的<%= @role.eql?('9') ? '老师': '教辅' %> +<%=link_to user_message_url(@receive),user_message_url(@receive)%> + + diff --git a/app/views/users/_user_message_course.html.erb b/app/views/users/_user_message_course.html.erb index d7042b6c2..afbeb5ed5 100644 --- a/app/views/users/_user_message_course.html.erb +++ b/app/views/users/_user_message_course.html.erb @@ -309,7 +309,7 @@ <% content = ma.content.gsub("作业评分:","").split("    评语:")%>
  • 作品评分:<%= content[0] %>分
  • <% if content.size > 1 %> -
  • 作品评语:
  • +
  • 作品评语:
  • <%= content[1] %>
    <% end %> @@ -442,7 +442,7 @@ ">您有了新的课程成员申请:
  • - <%= link_to User.find(ma.course_message_id).name+"申请成为课程\""+"#{Course.find(ma.course_id).name}"+"\"的"+"#{ma.content == '9' ? "教师" : "教辅"}", user_path(User.find(ma.course_message_id)), + <%= link_to User.find(ma.course_message_id).name+"申请成为课程\""+"#{Course.find(ma.course_id).name}"+"\"的"+"#{ma.content == '9' ? "教师" : "教辅"}", user_path(User.find(ma.course_message_id), :course_id => ma.course_id), :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}", :onmouseover => "message_titile_show($(this),event)", :onmouseout => "message_titile_hide($(this))" %> diff --git a/config/locales/courses/zh.yml b/config/locales/courses/zh.yml index 498388cfc..585ef7bec 100644 --- a/config/locales/courses/zh.yml +++ b/config/locales/courses/zh.yml @@ -27,7 +27,7 @@ zh: # 资源库 (课程、项目按类型分) label_course_file: 资源库 label_upload_files: 上传资源 - + label_apply_join_course: 申请加入课程 # # 课程托管平台主页 #