|  |  |  | @ -344,25 +344,80 @@ class CoursesService | 
			
		
	
		
			
				
					|  |  |  |  |     else | 
			
		
	
		
			
				
					|  |  |  |  |       membership = @user.coursememberships.all(:conditions => Course.visible_condition(current_user)) | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |     if membership.nil? || membership.count == 0 | 
			
		
	
		
			
				
					|  |  |  |  |       raise l(:label_no_courses,:locale => current_user.language.nil? ? 'zh':current_user.language) | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |     membership.sort! {|older, newer| newer.created_on <=> older.created_on } | 
			
		
	
		
			
				
					|  |  |  |  |     result = [] | 
			
		
	
		
			
				
					|  |  |  |  |     membership.each do |mp| | 
			
		
	
		
			
				
					|  |  |  |  |       course = mp.course | 
			
		
	
		
			
				
					|  |  |  |  |       unless current_user.nil? || !(current_user.admin? || course.is_public == 1 || (course.is_public == 0 && current_user.member_of_course?(course))) | 
			
		
	
		
			
				
					|  |  |  |  |         count,is_teacher = get_course_anonymous_evaluation current_user,course | 
			
		
	
		
			
				
					|  |  |  |  |         if is_teacher | 
			
		
	
		
			
				
					|  |  |  |  |           student_commit_number = count | 
			
		
	
		
			
				
					|  |  |  |  |         else | 
			
		
	
		
			
				
					|  |  |  |  |           need_anonymous_comments_count = count | 
			
		
	
		
			
				
					|  |  |  |  |       #unless current_user.nil? || !(current_user.admin? || course.is_public == 1 || (course.is_public == 0 && current_user.member_of_course?(course))) | 
			
		
	
		
			
				
					|  |  |  |  |       #  count,is_teacher = get_course_anonymous_evaluation current_user,course | 
			
		
	
		
			
				
					|  |  |  |  |       #  if is_teacher | 
			
		
	
		
			
				
					|  |  |  |  |       #    student_commit_number = count | 
			
		
	
		
			
				
					|  |  |  |  |       #  else | 
			
		
	
		
			
				
					|  |  |  |  |       #    need_anonymous_comments_count = count | 
			
		
	
		
			
				
					|  |  |  |  |       #  end | 
			
		
	
		
			
				
					|  |  |  |  |       #  news_count = course.news.count | 
			
		
	
		
			
				
					|  |  |  |  |       #  message_count = course.journals_for_messages.count | 
			
		
	
		
			
				
					|  |  |  |  |       # | 
			
		
	
		
			
				
					|  |  |  |  |       #  result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 1,:count => message_count} | 
			
		
	
		
			
				
					|  |  |  |  |       #  result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 2,:count => need_anonymous_comments_count} | 
			
		
	
		
			
				
					|  |  |  |  |       #  result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 3,:count => student_commit_number} | 
			
		
	
		
			
				
					|  |  |  |  |       #  result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 4,:count => news_count} | 
			
		
	
		
			
				
					|  |  |  |  |       #  #{:course_name => course.name,:need_anonymous_comments_count=>need_anonymous_comments_count,:student_commit_number=>student_commit_number,:news_count=> news_count,:message_count=>message_count} | 
			
		
	
		
			
				
					|  |  |  |  |       #end | 
			
		
	
		
			
				
					|  |  |  |  |       latest_course_dynamics = [] | 
			
		
	
		
			
				
					|  |  |  |  |       latest_news = course.news.order("created_on desc").first | 
			
		
	
		
			
				
					|  |  |  |  |       unless latest_news.nil? | 
			
		
	
		
			
				
					|  |  |  |  |         latest_course_dynamics << {:type => 1,:time => latest_news.created_on,:message => l(:label_recently_updated_notification,:locale => current_user.language.nil? ? 'zh':current_user.language)} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       latest_message = course.journals_for_messages.order("created_on desc").first | 
			
		
	
		
			
				
					|  |  |  |  |       unless latest_message.nil? | 
			
		
	
		
			
				
					|  |  |  |  |         latest_course_dynamics << {:type => 2,:time => latest_message.created_on,:message => l(:label_recently_updated_message,:locale => current_user.language.nil? ? 'zh':current_user.language)} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       latest_attachment = course.attachments.order("created_on desc").first | 
			
		
	
		
			
				
					|  |  |  |  |       unless latest_attachment.nil? | 
			
		
	
		
			
				
					|  |  |  |  |         latest_course_dynamics << {:type => 3,:time => latest_attachment.created_on,:message => l(:label_recently_updated_courseware,:locale => current_user.language.nil? ? 'zh':current_user.language)} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       latest_bid = course.homeworks.order('updated_on DESC').first | 
			
		
	
		
			
				
					|  |  |  |  |       unless latest_bid.nil? | 
			
		
	
		
			
				
					|  |  |  |  |         latest_course_dynamics << {:type => 4,:time => latest_bid.updated_on,:message => l(:label_recently_updated_homework,:locale => current_user.language.nil? ? 'zh':current_user.language)} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       #每个作业中的最新留言 | 
			
		
	
		
			
				
					|  |  |  |  |       messages = [] | 
			
		
	
		
			
				
					|  |  |  |  |       course.homeworks.each do |bid| | 
			
		
	
		
			
				
					|  |  |  |  |         jour = bid.journals_for_messages.order("created_on desc").first | 
			
		
	
		
			
				
					|  |  |  |  |         unless jour.nil? | 
			
		
	
		
			
				
					|  |  |  |  |           messages << jour | 
			
		
	
		
			
				
					|  |  |  |  |         end | 
			
		
	
		
			
				
					|  |  |  |  |         news_count = course.news.count | 
			
		
	
		
			
				
					|  |  |  |  |         message_count = course.journals_for_messages.count | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 1,:count => message_count} | 
			
		
	
		
			
				
					|  |  |  |  |         result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 2,:count => need_anonymous_comments_count} | 
			
		
	
		
			
				
					|  |  |  |  |         result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 3,:count => student_commit_number} | 
			
		
	
		
			
				
					|  |  |  |  |         result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => 4,:count => news_count} | 
			
		
	
		
			
				
					|  |  |  |  |         #{:course_name => course.name,:need_anonymous_comments_count=>need_anonymous_comments_count,:student_commit_number=>student_commit_number,:news_count=> news_count,:message_count=>message_count} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       unless messages.count == 0 | 
			
		
	
		
			
				
					|  |  |  |  |         messages.sort!{|order,newer| newer.created_on <=> order.created_on} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       latest_bid_message = messages.first | 
			
		
	
		
			
				
					|  |  |  |  |       unless latest_bid_message.nil? | 
			
		
	
		
			
				
					|  |  |  |  |         latest_course_dynamics << {:type => 2,:time => latest_bid_message.created_on,:message => l(:label_recently_updated_message,:locale => current_user.language.nil? ? 'zh':current_user.language)} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       #每个作业中学生最后提交的作业 | 
			
		
	
		
			
				
					|  |  |  |  |       homeworks = [] | 
			
		
	
		
			
				
					|  |  |  |  |       course.homeworks.each do |bid| | 
			
		
	
		
			
				
					|  |  |  |  |          homework_attach = bid.homeworks.order('updated_at DESC').first | 
			
		
	
		
			
				
					|  |  |  |  |          unless homework_attach.nil? | 
			
		
	
		
			
				
					|  |  |  |  |            homeworks << homework_attach | 
			
		
	
		
			
				
					|  |  |  |  |          end | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       unless homeworks.count == 0 | 
			
		
	
		
			
				
					|  |  |  |  |         homeworks.sort!{|order,newer| newer.updated_at <=> order.updated_at} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       latest_homework_attach = homeworks.first | 
			
		
	
		
			
				
					|  |  |  |  |       unless latest_homework_attach.nil? | 
			
		
	
		
			
				
					|  |  |  |  |         latest_course_dynamics << {:type => 4,:time => latest_homework_attach.updated_at,:message => l(:label_recently_updated_homework,:locale => current_user.language.nil? ? 'zh':current_user.language)} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |       latest_course_dynamics.sort!{|order,newer| newer[:time] <=> order[:time]} | 
			
		
	
		
			
				
					|  |  |  |  |       latest_course_dynamic = latest_course_dynamics.first | 
			
		
	
		
			
				
					|  |  |  |  |       unless latest_course_dynamic.nil? | 
			
		
	
		
			
				
					|  |  |  |  |         result << {:course_name => course.name,:course_id => course.id,:course_img_url => url_to_avatar(course),:type => latest_course_dynamic[:type],:update_time => latest_course_dynamic[:time],:message => latest_course_dynamic[:message],:count => nil} | 
			
		
	
		
			
				
					|  |  |  |  |       end | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |     result | 
			
		
	
	
		
			
				
					|  |  |  | 
 |