diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index e542d1e1d..403119e20 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -894,12 +894,15 @@ class CoursesController < ApplicationController # return # end #更新创建课程消息状态 - 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 => User.current.id, :course_id => @course.id, :course_message_type => ["CourseRequestDealResult", "Course"], :viewed => false) + course_request_messages.update_all(:viewed => true) + + # 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_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 diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 94b0b2c6e..b5b6c5bd0 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -345,7 +345,11 @@ module ApplicationHelper def link_to_isuue_user(user, options={}) if user.is_a?(User) - name = h(user.name(options[:format])) + if options[:format] + name = h(user.name(options[:format])) + else + name = h(user.show_name) + end link_to name, {:controller=> 'users', :action => 'show', id: user.id, host: Setting.host_user}, :class => "pro_info_p" else h(user.to_s) @@ -921,6 +925,12 @@ module ApplicationHelper s.html_safe end + # 计算Pull Request的请求数目 + def pull_request_count project + g = Gitlab.client + g.merge_requests(project.gpid).count + end + #项目成员列表复选框生成 def project_member_check_box_tags_ex name, principals s = '' @@ -978,7 +988,7 @@ module ApplicationHelper groups = '' collection.sort.each do |element| selected_attribute = ' selected="selected"' if option_value_selected?(element, selected) - (element.is_a?(Group) ? groups : s) << %() + (element.is_a?(Group) ? groups : s) << %() end unless groups.empty? s << %() diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index b3e946f95..ceff7a0a0 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -14,30 +14,21 @@ module CoursesHelper # 推荐的精品课程 - def excellent_course_recommend new_course - q = "%#{new_course.name.strip}%" - result = find_excelletn_course(q, new_course) - end - - # 查询符合条件的精品课程 - # 用新课程名去匹配精品课程中按课程名和Tag名 - def find_excelletn_course keywords, current_course - # 获取tag匹配结果ID - a_tags = [] - Course.where("is_excellent =? and is_public =?", 1, 1).each do |ec| - if ec.tags.any?{|value| current_course.name.include?(value.to_s)} - a_tags << ec.id - end - end - # 课程本身不能搜索显示自己 - excellent_ids = a_tags.uniq.delete_if{|i| i == current_course.id} - sql = "SELECT distinct c.id FROM course_activities cs, courses c where cs.course_id = c.id + def excellent_course_recommend current_course + q = "%#{current_course.name.strip}%" + recomment_courses = [] + # 推荐过程过滤掉自身 + sql = "SELECT distinct c.* FROM course_activities cs, courses c where cs.course_id = c.id and (c.is_excellent =1 or c.excellent_option =1) and c.is_public = 1 and c.id != #{current_course.id} order by cs.updated_at desc;" - default_ids = Course.find_by_sql(sql).flatten.map { |c| c.id } - excellent_ids << default_ids.flatten - arr_result = excellent_ids.flatten.uniq.first(3) - excellent_courses = Course.find(arr_result) - return excellent_courses + ex_courses = Course.find_by_sql(sql) + # 使用课程的tag去和课程名称进行匹配 + c_courses = ex_courses.select{|ex_course| ex_course.tags.any?{|tag| q.include?(tag.to_s)}} + if c_courses.count < 3 + results = c_courses.length == 0 ? ex_courses.first(3) : (c_courses + ex_courses.first(3 - ex_courses.count)) + else + results = c_courses.first(3) + end + results end # 判断精品课程是否可见,非课程成员无法查看私有课程 @@ -63,6 +54,7 @@ module CoursesHelper # searchTeacherAndAssistant(project).count end + # 统计数目 def show_nav?(count) count == 0 ? true : false end @@ -807,11 +799,12 @@ module CoursesHelper link.html_safe end + # 可以查看到资源库的资源 def visable_attachemnts_incourse course return[] unless course result = [] course.attachments.each do |attachment| - if (attachment.is_public? && attachment.is_publish == 1) ||User.current == attachment.author ||User.current.allowed_to?(:as_teacher,course)|| (User.current.member_of_course?(course) && attachment.is_publish == 1) || User.current.admin? + if attachment.is_public? && attachment.is_publish == 1 || User.current == attachment.author || User.current.allowed_to?(:as_teacher,course) || (User.current.member_of_course?(course) && attachment.is_publish == 1) || User.current.admin? result << attachment end end diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index b161e29e9..5a124849f 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -111,9 +111,9 @@ module IssuesHelper def principals_options_for_isuue_list(project) if User.current.member_of?(project) - project.members.includes(:user).order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["<< #{l(:label_me)} >>", User.current.id]).unshift(["指派给", 0]) + project.members.includes(:user).order("lower(users.login)").map{|c| [User.find(c.user_id).show_name, c.user_id]}.unshift(["<< #{l(:label_me)} >>", User.current.id]).unshift(["指派给", 0]) else - project.members.includes(:user).order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["指派给", 0]) + project.members.includes(:user).order("lower(users.login)").map{|c| [User.find(c.user_id).show_name, c.user_id]}.unshift(["指派给", 0]) end end diff --git a/app/models/news.rb b/app/models/news.rb index 0e83a39f8..58bbc40ac 100644 --- a/app/models/news.rb +++ b/app/models/news.rb @@ -62,7 +62,7 @@ class News < ActiveRecord::Base :author_key => :author_id acts_as_watchable - after_create :act_as_activity,:act_as_forge_activity, :act_as_course_activity, :add_author_as_watcher, :send_mail, :add_news_count, :act_as_student_score, :act_as_system_message, :delay_news_send + after_create :act_as_forge_activity, :act_as_course_activity, :add_author_as_watcher, :send_mail, :add_news_count, :act_as_student_score, :act_as_system_message, :delay_news_send after_update :update_activity after_destroy :delete_kindeditor_assets, :decrease_news_count, :delete_org_activities, :down_course_score @@ -140,19 +140,13 @@ class News < ActiveRecord::Base Watcher.create(:watchable => self, :user => author) end - ## fq - def act_as_activity - self.acts << Activity.new(:user_id => self.author_id) - end - # Time 2015-02-27 15:48:17 # Author lizanle # Description 公用表中也要记录 def act_as_forge_activity # 如果是project为空,那么是课程相关的,不需要保存 if self.project - self.forge_acts << ForgeActivity.new(:user_id => self.author_id, - :project_id => self.project.id) + self.forge_acts << ForgeActivity.new(:user_id => self.author_id, :project_id => self.project.id) end end @@ -198,7 +192,7 @@ class News < ActiveRecord::Base def contain_news_message self.course.members.each do |m| if m.user_id != self.author_id - self.course_messages << CourseMessage.new(:user_id => user_id, :course_id => container_id, :viewed => false) + self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.course_id, :viewed => false) end end end diff --git a/app/views/attachments/_activity_attach.html.erb b/app/views/attachments/_activity_attach.html.erb index b37c80dad..48c01468a 100644 --- a/app/views/attachments/_activity_attach.html.erb +++ b/app/views/attachments/_activity_attach.html.erb @@ -9,8 +9,9 @@ ( <%= number_to_human_size attachment.filesize %>) -