diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 6ff4d2f97..72301754d 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -67,7 +67,29 @@ class BoardsController < ApplicationController end - def show + def show + #更新对应的forge_messages表的viewed字段 + if @project + query_forge_messages = @board.messages + query_forge_messages.each do |query_forge_message| + query = query_forge_message.forge_messages + query.each do |forge_message| + if User.current.id == forge_message.user_id + forge_message.update_attributes(:viewed => true) + end + end + end + elsif @course + query_course_messages = @board.messages + query_course_messages.each do |query_course_message| + query = query_course_message.course_messages + query.each do |course_message| + if User.current.id == course_message.user_id + course_message.update_attributes(:viewed => true) + end + end + end + end respond_to do |format| format.js format.html { diff --git a/app/controllers/memos_controller.rb b/app/controllers/memos_controller.rb index 68f6f6473..11d1d6e18 100644 --- a/app/controllers/memos_controller.rb +++ b/app/controllers/memos_controller.rb @@ -115,6 +115,8 @@ class MemosController < ApplicationController REPLIES_PER_PAGE = 20 unless const_defined?(:REPLIES_PER_PAGE) def show + #鏇存柊璐村惂甯栧瓙鐣欒█瀵瑰簲鐨刴emo_messages鐨剉iewed瀛楁 + query_memo_messages = @memo.memo_messages pre_count = REPLIES_PER_PAGE @memo = @memo.root # 鍙栧嚭妤间富锛岄槻姝㈣緭鍏ュ笘瀛恑d璁╁洖澶嶄綔涓轰富璐存樉绀 diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index 1a8e75b54..d445fc77c 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -99,6 +99,31 @@ class NewsController < ApplicationController end def show + #鏇存柊news瀵瑰簲鐨刦orge_messages鐨剉iewed瀛楁 + query_forge_news = @news.forge_messages + query_forge_news.each do |query| + if User.current.id == query.user_id + query.update_attributes(:viewed => true) + end + end + #鏇存柊news瀵瑰簲鐨刢ourse_messages鐨剉iewed瀛楁 + query_course_news = @news.course_messages + query_course_news.each do |query| + if User.current.id == query.user_id + query.update_attributes(:viewed => true) + end + end + #鏇存柊椤圭洰鏂伴椈鐨勮瘎闃呯殑viewed瀛楁 + current_forge_comments = @news.comments + current_forge_comments.each do |current_forge_comment| + query_forge_comment = current_forge_comment.forge_messages + query_forge_comment.each do |query| + if User.current.id == query.user_id + query.update_attributes(:viewed => true) + end + end + end + cs = CoursesService.new result = cs.show_course_news params,User.current @news = result[:news] diff --git a/app/controllers/poll_controller.rb b/app/controllers/poll_controller.rb index edf8c2259..1bbcf9bb4 100644 --- a/app/controllers/poll_controller.rb +++ b/app/controllers/poll_controller.rb @@ -28,6 +28,12 @@ class PollController < ApplicationController render_403 return end + query_course_poll = @poll.course_messages + query_course_poll.each do |query| + if User.current.id == query.user_id + query.update_attributes(:viewed => true) + end + end #宸叉彁浜ら棶鍗风殑鐢ㄦ埛涓嶈兘鍐嶈闂鐣岄潰 if has_commit_poll?(@poll.id,User.current.id) && (!User.current.admin?) redirect_to poll_index_url(:polls_type => "Course", :polls_group_id => @course.id) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 01f858442..1af832b79 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -11,6 +11,13 @@ class StudentWorkController < ApplicationController protect_from_forgery :except => :set_program_score def index + #璁剧疆浣滀笟瀵瑰簲鐨刦orge_messages琛ㄧ殑viewed瀛楁 + query_student_work = @homework.course_messages + query_student_work.each do |query| + if User.current.id == query.user_id + query.update_attributes(:viewed => true) + end + end @order,@b_sort,@name,@group = params[:order] || "score",params[:sort] || "desc",params[:name] || "",params[:group] @is_teacher = User.current.allowed_to?(:as_teacher,@course) course_group = CourseGroup.find_by_id(@group) if @group diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 591404687..e8d512a2e 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -45,7 +45,7 @@ class UsersController < ApplicationController :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities,:user_projects_index, :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist, :user_resource,:user_resource_create,:user_resource_delete,:rename_resource,:search_user_course,:add_exist_file_to_course, - :search_user_project,:resource_preview,:resource_search,:add_exist_file_to_project,:user_messages,:edit_brief_introduction] + :search_user_project,:resource_preview,:resource_search,:add_exist_file_to_project,:user_messages, :edit_brief_introduction] #edit has been deleted by huang, 2013-9-23 before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership, :user_courses, :user_homeworks, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, @@ -123,56 +123,75 @@ class UsersController < ApplicationController @new_message_count = @user.forge_messages.count + @user.memo_messages.count + @user.course_messages.count + @user.user_feedback_messages.count case params[:type] when nil - @user_course_messages = CourseMessage.where("user_id =?",@user).order("created_at desc") - @user_forge_messages = ForgeMessage.where("user_id =?",@user).order("created_at desc") - @user_memo_messages = MemoMessage.where("user_id =?",@user).order("created_at desc") - @user_feedback_messages = UserFeedbackMessage.where("user_id =?",@user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count - @user_forge_messages_count = @user_forge_messages.count - @user_memo_messages_count = @user_memo_messages.count - @user_feedback_messages_count = @user_feedback_messages.count + @message_alls = [] + messages = MessageAll.where("user_id =?",@user).order("created_at desc") + messages.each do |message_all| + @message_alls << message_all.message + end + + # @user_course_messages = MessageAll.where("user_id =? and message_type=?",@user,"CourseMessage").order("created_at desc") + # @user_forge_messages = MessageAll.where("user_id =? and message_type=?",@user,"ForgeMessage").order("created_at desc") + # @user_memo_messages = MessageAll.where("user_id =? and message_type=?",@user,"MemoMessage").order("created_at desc") + # @user_feedback_messages = MessageAll.where("user_id =? and message_type=?",@user,"UserFeedbackMessage").order("created_at desc") + # @user_course_messages_count = @user_course_messages.count + # @user_forge_messages_count = @user_forge_messages.count + # @user_memo_messages_count = @user_memo_messages.count + # @user_feedback_messages_count = @user_feedback_messages.count when 'homework' - @user_course_messages = CourseMessage.where("course_message_type =? and user_id =?", "HomeworkCommon", @user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "HomeworkCommon", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_course_messages_count = @user_course_messages.count when 'course_message' - @user_course_messages = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_course_messages_count = @user_course_messages.count when 'forge_message' - @user_forge_messages = ForgeMessage.where("forge_message_type =? and user_id =?", "Message", @user).order("created_at desc") - @user_forge_messages_count = @user_forge_messages.count + @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Message", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_forge_messages_count = @user_forge_messages.count when 'course_news' - @user_course_messages = CourseMessage.where("course_message_type =? and user_id =?", "News", @user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "News", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_course_messages_count = @user_course_messages.count when 'forge_news' - @user_forge_messages = ForgeMessage.where("forge_message_type =? and user_id =?", "News", @user).order("created_at desc") - @user_forge_messages_count = @user_forge_messages.count + @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "News", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_forge_messages_count = @user_forge_messages.count when 'course_news_reply' - @user_course_messages = CourseMessage.where("course_message_type =? and user_id =?", "Comment", @user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Comment", @user).order("created_at desc") + #@user_course_messages_count = @user_course_messages.count when 'forge_news_reply' - @user_forge_messages = ForgeMessage.where("course_message_type =? and user_id =?", "Comment", @user).order("created_at desc") - @user_forge_messagess_count = @user_forge_messages.count + @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Comment", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_forge_messagess_count = @user_forge_messages.count when 'poll' - @user_course_messages = CourseMessage.where("course_message_type =? and user_id =?", "Poll", @user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Poll", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_course_messages_count = @user_course_messages.count when 'works_reviewers' - @user_course_messages = CourseMessage.where("course_message_type =? and user_id =?", "StudentWorksScore", @user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "StudentWorksScore", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_course_messages_count = @user_course_messages.count when 'works_reply' - @user_course_messages = CourseMessage.where("course_message_type =? and user_id =?", "JournalsForMessage", @user).order("created_at desc") - @user_course_messages_count = @user_course_messages.count + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "JournalsForMessage", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_course_messages_count = @user_course_messages.count when 'issue' - @user_forge_messages = ForgeMessage.where("forge_message_type =? and user_id =?", "Issue", @user).order("created_at desc") - @user_forge_messages_count = @user_forge_messages.count + @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Issue", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_forge_messages_count = @user_forge_messages.count when 'issue_update' # 缂洪櫡鐘舵佹洿鏂般佺暀瑷 - @user_forge_messages = ForgeMessage.where("forge_message_type =? and user_id =?", "Journal", @user).order("created_at desc") - @user_forge_messages_count = @user_forge_messages.count + @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Journal", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_forge_messages_count = @user_forge_messages.count when 'forum' - @user_memo_messages = MemoMessage.where("memo_type =? and user_id =?", "Memo", @user).order("created_at desc") - @user_memo_messages_count = @user_memo_messages.count + @message_alls = MemoMessage.where("memo_type =? and user_id =?", "Memo", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_memo_messages_count = @user_memo_messages.count when 'user_feedback' - @user_feedback_messages = UserFeedbackMessage.where("journals_for_message_type =? and user_id =?", "Principal", @user).order("created_at desc") - @user_feedback_messages_count = @user_feedback_messages.count + @message_alls = UserFeedbackMessage.where("journals_for_message_type =? and user_id =?", "JournalsForMessage", @user).order("created_at desc") + @message_alls_count = @message_alls.count + #@user_feedback_messages_count = @user_feedback_messages.count else render_404 return @@ -311,7 +330,7 @@ class UsersController < ApplicationController respond_to do |format| format.js format.html {render :layout => 'new_base_user'} - end + end end @@ -469,13 +488,13 @@ class UsersController < ApplicationController def user_courses4show @page = params[:page].to_i + 1 @courses = @user.courses.visible.select("courses.*,(SELECT MAX(created_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5).offset(@page * 5) - end + end #鏄剧ず鏇村鐢ㄦ埛椤圭洰 def user_projects4show @page = params[:page].to_i + 1 @projects = @user.projects.visible.select("projects.*,(SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5).offset(@page * 5) - end + end def user_course_activities lastid = nil @@ -574,7 +593,7 @@ class UsersController < ApplicationController @user_activities = UserActivity.where("container_type = 'Project' and container_id in #{user_project_ids} and act_type = 'Message'").order('created_at desc').limit(10).offset(@page * 10) else @user_activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types}) or (container_type = 'Course' and container_id in #{user_course_ids}) and act_type in #{course_types}").order('created_at desc').limit(10).offset(@page * 10) - end + end else @user_activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types}) or (container_type = 'Course' and container_id in #{user_course_ids}) and act_type in #{course_types}").order('created_at desc').limit(10).offset(@page * 10) end diff --git a/app/models/course_message.rb b/app/models/course_message.rb index 59089829d..95ce3a56b 100644 --- a/app/models/course_message.rb +++ b/app/models/course_message.rb @@ -1,12 +1,19 @@ class CourseMessage < ActiveRecord::Base - attr_accessible :course_id, :course_message_id, :course_message_type, :user_id, :viewed + attr_accessible :course_id, :course_message_id, :course_message_type, :user_id, :viewed, :content, :status # 澶氭 铏氭嫙鍏宠仈 belongs_to :course_message ,:polymorphic => true belongs_to :course belongs_to :user + has_many :message_alls, :class_name => 'MessageAll',:as =>:message, :dependent => :destroy + validates :user_id,presence: true validates :course_id,presence: true validates :course_message_id,presence: true validates :course_message_type, presence: true + after_create :add_user_message + + def add_user_message + self.message_alls << MessageAll.new(:user_id => self.user_id) + end end diff --git a/app/models/forge_message.rb b/app/models/forge_message.rb index 1543fab58..2d05972ab 100644 --- a/app/models/forge_message.rb +++ b/app/models/forge_message.rb @@ -13,8 +13,15 @@ class ForgeMessage < ActiveRecord::Base belongs_to :forge_message ,:polymorphic => true belongs_to :project belongs_to :user + has_many :message_alls, :class_name => 'MessageAll',:as =>:message, :dependent => :destroy + validates :user_id,presence: true validates :project_id,presence: true validates :forge_message_id,presence: true validates :forge_message_type, presence: true + after_create :add_user_message + + def add_user_message + self.message_alls << MessageAll.new(:user_id => self.user_id) + end end diff --git a/app/models/issue.rb b/app/models/issue.rb index 1724e3484..fa8cee988 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -83,7 +83,7 @@ class Issue < ActiveRecord::Base # fq after_create :act_as_activity,:be_user_score_new_issue,:act_as_forge_activity, :act_as_forge_message - after_update :be_user_score, :act_as_forge_message_update + after_update :be_user_score after_destroy :down_user_score # after_create :be_user_score # end @@ -145,20 +145,16 @@ class Issue < ActiveRecord::Base def act_as_forge_message # 鎸囨淳缁欒嚜宸辩殑缂洪櫡涓嶆彁绀烘秷鎭 unless self.author_id == self.assigned_to_id - self.forge_messages << ForgeMessage.new(:user_id => self.assigned_to_id, - :project_id => self.project_id, - :viewed => false) + self.forge_messages << ForgeMessage.new(:user_id => self.assigned_to_id, :project_id => self.project_id, :viewed => false) end end # 鏇存柊缂洪櫡 - def act_as_forge_message_update - unless self.author_id == self.assigned_to_id - self.forge_messages << ForgeMessage.new(:user_id => self.assigned_to_id, - :project_id => self.project_id, - :viewed => false) - end - end + #def act_as_forge_message_update + # unless self.author_id == self.assigned_to_id + # self.forge_messages << ForgeMessage.new(:user_id => self.assigned_to_id, :project_id => self.project_id, :viewed => false) + # end + #end # Returns a SQL conditions string used to find all issues visible by the specified user diff --git a/app/models/journal.rb b/app/models/journal.rb index a5bea92af..3a9f5a89d 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -172,9 +172,10 @@ class Journal < ActiveRecord::Base # 缂洪櫡鐘舵佹洿鏀癸紝娑堟伅鎻愰啋 def act_as_forge_message if self.user_id != self.issue.author_id - self.forge_messages << ForgeMessage.new(:user_id => self.issue.author_id, - :project_id => self.issue.project_id, - :viewed => false) + self.forge_messages << ForgeMessage.new(:user_id => self.issue.author_id, :project_id => self.issue.project_id, :viewed => false) + end + if self.user_id != self.issue.assigned_to_id # 鎸囨淳浜轰笉鏄嚜宸辩殑璇濓紝鍒欑粰鎸囨淳浜哄彂閫 + self.forge_messages << ForgeMessage.new(:user_id => self.issue.assigned_to_id, :project_id => self.issue.project_id, :viewed => false) end end diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index 2c56dc035..1f5f2e1a6 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -209,14 +209,20 @@ class JournalsForMessage < ActiveRecord::Base end else # 鐣欒█鍥炲 reply_to = User.find(self.reply_id) - if self.user_id != self.parent.user_id - receivers << reply_to - if self.reply_id != self.parent.user_id - receivers << self.parent.user - end - else + if self.user_id != self.reply_id # 娣诲姞鎴戝洖澶嶇殑閭d釜浜 receivers << reply_to end + if self.user_id != self.parent.jour_id # 缁欎笢瀹跺彂淇℃伅 + receivers << self.parent.jour + end + # if self.user_id != self.parent.user_id + # receivers << reply_to + # if self.reply_id != self.parent.user_id + # receivers << self.parent.user + # end + # else + # receivers << reply_to + # end # 娣诲姞鐣欒█鍥炲浜 #reply_to = User.find(self.reply_id) diff --git a/app/models/memo.rb b/app/models/memo.rb index f1f9029c1..c30616558 100644 --- a/app/models/memo.rb +++ b/app/models/memo.rb @@ -79,7 +79,7 @@ class Memo < ActiveRecord::Base receivers << self.forum.creator end # 娣诲姞鍙戝笘浜 - if self.forum.creator_id != self.parent.author_id + if self.author_id != self.parent.author_id receivers << self.parent.author end end diff --git a/app/models/memo_message.rb b/app/models/memo_message.rb index 051fac317..9be00ce14 100644 --- a/app/models/memo_message.rb +++ b/app/models/memo_message.rb @@ -3,9 +3,15 @@ class MemoMessage < ActiveRecord::Base belongs_to :memo belongs_to :user + has_many :message_alls, :class_name => 'MessageAll',:as =>:message, :dependent => :destroy validates :user_id,presence: true validates :forum_id,presence: true validates :memo_id,presence: true validates :memo_type, presence: true + after_create :add_user_message + + def add_user_message + self.message_alls << MessageAll.new(:user_id => self.user_id) + end end diff --git a/app/models/message_all.rb b/app/models/message_all.rb new file mode 100644 index 000000000..6e0276875 --- /dev/null +++ b/app/models/message_all.rb @@ -0,0 +1,5 @@ +class MessageAll < ActiveRecord::Base + attr_accessible :message_id, :message_type, :user_id + # 铏氭嫙鍏宠仈---椤圭洰娑堟伅琛/璇剧▼娑堟伅琛/鐢ㄦ埛鐣欒█娑堟伅琛/璐村惂娑堟伅琛 + belongs_to :message ,:polymorphic => true +end diff --git a/app/models/student_works_score.rb b/app/models/student_works_score.rb index 639722389..aa38c5dcd 100644 --- a/app/models/student_works_score.rb +++ b/app/models/student_works_score.rb @@ -1,3 +1,4 @@ +#encoding=UTF-8 class StudentWorksScore < ActiveRecord::Base #reviewer_role: 1:鏁欏笀璇勫垎;2:鏁欒緟璇勫垎;3:瀛︾敓鍖胯瘎 attr_accessible :student_work_id, :user_id, :score, :comment, :reviewer_role @@ -9,13 +10,31 @@ class StudentWorksScore < ActiveRecord::Base acts_as_attachable - after_create :act_as_course_message + after_save :act_as_course_message # 璇勯槄浣滃搧娑堟伅鎻愮ず def act_as_course_message - if self.student_work + if self.student_work && self.student_work.user && self.student_work.homework_common.course receiver = self.student_work.user - self.course_messages << CourseMessage.new(:user_id => receiver.id, :course_id => self.student_work.homework_common.course.id, :viewed => false) + # 鍒ゆ柇鏄涓娆¤瘎闃呰繕鏄洿鏂 status:0 鏂板缓锛1 鏇存柊 + if self.created_at == self.updated_at + if self.comment.nil? + self.course_messages << CourseMessage.new(:user_id => receiver.id, :course_id => self.student_work.homework_common.course.id, + :viewed => false, :content => "浣滀笟璇勫垎锛#{self.score}", :status=> false) + else + self.course_messages << CourseMessage.new(:user_id => receiver.id, :course_id => self.student_work.homework_common.course.id, + :viewed => false, :content => "浣滀笟璇勫垎锛#{self.score}    璇勮锛#{self.comment}", :status=> false) + end + else # 鏇存柊 + if self.comment.nil? + self.course_messages << CourseMessage.new(:user_id => receiver.id, :course_id => self.student_work.homework_common.course.id, + :viewed => false, :content => "浣滀笟璇勫垎锛#{self.score}", :status=> true) + else + self.course_messages << CourseMessage.new(:user_id => receiver.id, :course_id => self.student_work.homework_common.course.id, + :viewed => false, :content => "浣滀笟璇勫垎锛#{self.score}    璇勮锛#{self.comment}", :status=> true) + end + end end end + end diff --git a/app/models/user_feedback_message.rb b/app/models/user_feedback_message.rb index 98b53e973..1dda157d6 100644 --- a/app/models/user_feedback_message.rb +++ b/app/models/user_feedback_message.rb @@ -3,8 +3,14 @@ class UserFeedbackMessage < ActiveRecord::Base belongs_to :journals_for_message belongs_to :user + has_many :message_alls, :class_name => 'MessageAll',:as =>:message, :dependent => :destroy validates :user_id,presence: true validates :journals_for_message_id,presence: true validates :journals_for_message_type, presence: true + after_create :add_user_message + + def add_user_message + self.message_alls << MessageAll.new(:user_id => self.user_id) + end end diff --git a/app/views/layouts/_base_header_new.html.erb b/app/views/layouts/_base_header_new.html.erb index c224ee0ab..163f3a3ff 100644 --- a/app/views/layouts/_base_header_new.html.erb +++ b/app/views/layouts/_base_header_new.html.erb @@ -56,9 +56,9 @@ diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index 2c987cbdd..5ba49cd5d 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -76,11 +76,10 @@ diff --git a/app/views/users/user_messages.html.erb b/app/views/users/user_messages.html.erb index 52cb8e0d8..916fe1291 100644 --- a/app/views/users/user_messages.html.erb +++ b/app/views/users/user_messages.html.erb @@ -1,254 +1,260 @@ -
-
-
-
娑堟伅
-
+
+
+ <% if @new_message_count >0 %> + <%# 璇剧▼娑堟伅 %> + <% unless @message_alls.nil? %> + <% @message_alls.each do |ma| %> + <% if ma.class == CourseMessage %> + <% if ma.course_message_type == "News" %> + + <% end %> + <% if ma.course_message_type == "Comment" %> + + <% end %> + <% if ma.course_message_type == "HomeworkCommon" %> + + <% end %> + <% if ma.course_message_type == "Poll" %> + + <% end %> + <% if ma.course_message_type == "Message" %> + + <% end %> + <% if ma.course_message_type == "StudentWorksScore" %> + + <% end %> + <% if ma.course_message_type == "JournalsForMessage" %> + + <% end %> + <% end %> + + <% if ma.class == ForgeMessage %> + <% if ma.forge_message_type == "Issue" %> + + <% end %> + <% if ma.forge_message_type == "Journal" %> + + <% end %> + <% if ma.forge_message_type == "Message" %> + + <% end %> + <% if ma.forge_message_type == "News" %> + + <% end %> + <% if ma.forge_message_type == "Comment" %> + + <% end %> + <% end %> + + <% if ma.class == MemoMessage %> + <% if ma.memo_type == "Memo" %> + + <% end %> + <% end %> + + <% if ma.class == UserFeedbackMessage %> + <% if ma.journals_for_message_type == "JournalsForMessage" %> + + <% end %> + <% end %> <% end %> - <% if ucm.course_message_type == "Comment" %> - - <% end %> - <% if ucm.course_message_type == "HomeworkCommon" %> - - <% end %> - <% if ucm.course_message_type == "Poll" %> - - <% end %> - <% if ucm.course_message_type == "Message" %> - - <% end %> - <% if ucm.course_message_type == "StudentWorksScore" %> - - <% end %> - <% if ucm.course_message_type == "JournalsForMessage" %> - - <% end %> -
<% end %> + + <% else %> +
鎮ㄧ洰鍓嶈繕娌℃湁鐩稿叧娑堟伅锛
<% end %> - - <% unless @user_forge_messages.nil? %> - <% @user_forge_messages.each do |ufm| %> - <% if ufm.forge_message_type == "Issue" %> - - <% end %> - <% if ufm.forge_message_type == "Journal" %> - - <% end %> - <% if ufm.forge_message_type == "Message" %> -
+
+ + + + + + + + + -
  • "><%= ufm.forge_message.parent_id.nil? ? "鍙戝竷甯栧瓙" : "鍥炲甯栧瓙" %>
  • -
  • - <%=link_to ufm.forge_message.subject.html_safe, project_boards_path(ufm.forge_message.project, - :parent_id => ufm.forge_message.parent_id ? ufm.forge_message.parent_id : ufm.forge_message.id, - :topic_id => ufm.forge_message.id),:class=>"#{ufm.viewed==0?"newsBlack":"newsGrey"}", - :title => "#{ufm.forge_message.subject.html_safe}" %>
  • -
  • <%= time_tag(ufm.forge_message.created_on).html_safe %>
  • - - <% end %> - <% if ufm.forge_message_type == "News" %> - - <% end %> - <% if ufm.forge_message_type == "Comment" %> - - <% end %> - <% end %> - <% end %> - <%# 鍏叡璐村惂銆%> - <% unless @user_memo_messages.nil? %> - <% @user_memo_messages.each do |urm| %> - <% if urm.memo_type == "Memo" %> - - <% end %> - <% end %> - <% end %> - <%# 鐢ㄦ埛鐣欒█娑堟伅 %> - <% unless @user_feedback_messages.nil? %> - <% @user_feedback_messages.each do |ufm| %> - <% if ufm.journals_for_message_type == "JournalsForMessage" %> - - <% end %> - <% end %> - <% end %> -<% else %> -
    鏆傛棤娑堟伅锛
    -<% end %> - - - diff --git a/config/routes.rb b/config/routes.rb index 135d4e811..6679151e3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -365,7 +365,9 @@ RedmineApp::Application.routes.draw do end match 'users/:id/user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "feedback" match 'users/:id/user_projects', :to => 'users#user_projects', :via => :get - match 'users/:id/user_messages', :to => 'users#user_messages', :via => :get + #娑堟伅 + match 'users/:id/user_messages', :to => 'users#user_messages', :via => :get, :as => "user_message" + #match 'users/:id/user_messages/:homework', :to => 'users#user_messages_homework', :via => :get, :as => "user_message_homewrok" diff --git a/db/migrate/20150824133916_create_message_alls.rb b/db/migrate/20150824133916_create_message_alls.rb new file mode 100644 index 000000000..aa4a986a8 --- /dev/null +++ b/db/migrate/20150824133916_create_message_alls.rb @@ -0,0 +1,11 @@ +class CreateMessageAlls < ActiveRecord::Migration + def change + create_table :message_alls do |t| + t.integer :user_id + t.integer :message_id + t.string :message_type + + t.timestamps + end + end +end diff --git a/db/migrate/20150826020407_add_content_to_course_message.rb b/db/migrate/20150826020407_add_content_to_course_message.rb new file mode 100644 index 000000000..4aad9ab6a --- /dev/null +++ b/db/migrate/20150826020407_add_content_to_course_message.rb @@ -0,0 +1,5 @@ +class AddContentToCourseMessage < ActiveRecord::Migration + def change + add_column :course_messages, :content, :string + end +end diff --git a/db/migrate/20150826061843_add_status_to_course_message.rb b/db/migrate/20150826061843_add_status_to_course_message.rb new file mode 100644 index 000000000..4e8e04ce6 --- /dev/null +++ b/db/migrate/20150826061843_add_status_to_course_message.rb @@ -0,0 +1,5 @@ +class AddStatusToCourseMessage < ActiveRecord::Migration + def change + add_column :course_messages, :status, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index 4639c07ec..a77eceb9a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20150820025358) do +ActiveRecord::Schema.define(:version => 20150826061843) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -374,6 +374,8 @@ ActiveRecord::Schema.define(:version => 20150820025358) do t.integer "viewed" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false + t.string "content" + t.integer "status" end create_table "course_statuses", :force => true do |t| @@ -867,6 +869,14 @@ ActiveRecord::Schema.define(:version => 20150820025358) do t.integer "viewed_count", :default => 0 end + create_table "message_alls", :force => true do |t| + t.integer "user_id" + t.integer "message_id" + t.string "message_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "messages", :force => true do |t| t.integer "board_id", :null => false t.integer "parent_id" @@ -1301,7 +1311,6 @@ ActiveRecord::Schema.define(:version => 20150820025358) do t.datetime "updated_at", :null => false t.integer "late_penalty", :default => 0 t.integer "absence_penalty", :default => 0 - t.integer "system_score" end create_table "student_works_evaluation_distributions", :force => true do |t| @@ -1519,6 +1528,7 @@ ActiveRecord::Schema.define(:version => 20150820025358) do t.string "identity_url" t.string "mail_notification", :default => "", :null => false t.string "salt", :limit => 64 + t.integer "gid" end add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 59e50ead5..3dea90fba 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -512,7 +512,7 @@ a.homepageMenuText {color:#484848; font-size:16px; margin-left:20px;} .homepageNewsPortrait {width:40px; display:block; margin-top:7px;} .homepageNewsPublisher {width:80px; max-width:80px; margin-right:10px; font-size:12px; color:#15bccf; display:block; padding-left:5px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; } .homepageNewsType {width:95px; font-size:12px; color:#888888; display:block;} -.homepageNewsContent {width:395px; max-width:395px; margin-right:10px; font-size:12px; color:#4b4b4b; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; } +.homepageNewsContent {width:395px; max-width:395px; margin-right:10px; font-size:12px; color:#4b4b4b; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;height:49px; max-height:49px; } .homepageNewsTime {width:75px; font-size:12px; color:#888888; display:block; text-align:right;} a.homepageWhite {color:#ffffff;} a.homepageWhite:hover {color:#a1ebff} @@ -869,7 +869,9 @@ img.ui-datepicker-trigger { height:15px; float:left; } - +/*娑堟伅*/ +.homepageNewsType {width:95px; font-size:12px; color:#888888; display:block;} +.homepageNewsTypeNotRead {width:95px; font-size:12px; color:#888888; display:block;} diff --git a/spec/factories/message_alls.rb b/spec/factories/message_alls.rb new file mode 100644 index 000000000..c14c153cf --- /dev/null +++ b/spec/factories/message_alls.rb @@ -0,0 +1,8 @@ +FactoryGirl.define do + factory :message_all do + user_id 1 +message_id 1 +message_type "MyString" + end + +end diff --git a/spec/models/message_all_spec.rb b/spec/models/message_all_spec.rb new file mode 100644 index 000000000..33ac896e2 --- /dev/null +++ b/spec/models/message_all_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe MessageAll, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end