diff app/helpers/my_helper.rb @ 1224:30c444ea1338 cannam

Various fixes to colleagues box
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Tue, 12 Mar 2013 15:15:18 +0000
parents 875b5b4c574d
children d280360758e5
line wrap: on
line diff
--- a/app/helpers/my_helper.rb	Tue Mar 12 14:39:49 2013 +0000
+++ b/app/helpers/my_helper.rb	Tue Mar 12 15:15:18 2013 +0000
@@ -19,10 +19,56 @@
 
 module MyHelper
 
-def all_colleagues_of(user)
-  # Return a list of all user ids who have worked with the given user
-  # (on projects that are visible to the current user)
-  user.projects.select { |p| p.visible? }.map { |p| p.members.map { |m| m.user_id } }.flatten.sort.uniq.reject { |i| user.id == i }
-end
+  def all_colleagues_of(user)
+    # Return a list of all user ids who have worked with the given user
+    # (on projects that are visible to the current user)
+    user.projects.select { |p| p.visible? }.map { |p| p.members.map { |m| m.user_id } }.flatten.sort.uniq.reject { |i| user.id == i }
+  end
+
+  def render_active_colleagues(colleagues)
+
+    s = ""
+
+    start = Time.now
+
+    my_inst = ""
+    if ! User.current.ssamr_user_detail.nil?
+      my_inst = User.current.ssamr_user_detail.institution_name
+    end
+
+    for c in colleagues
+      u = User.find_by_id(c)
+      active_projects = projects_by_activity(u, 3)
+      if !active_projects.empty?
+        s << "<div class='active-person'>"
+        s << avatar(u, :size => '24')
+        s << "<span class='user'>"
+        s << h(u.name)
+        s << "</span>"
+        if !u.ssamr_user_detail.nil?
+          inst = u.ssamr_user_detail.institution_name
+          if inst != "" and inst != my_inst
+            s << " - <span class='institution'>"
+            s << h(inst)
+            s << "</span>"
+          end
+        end
+        s << "<br>"
+        s << "<span class='active'>"
+        s << (active_projects.map { |p| link_to_project(p) }.join ", ")
+        s << "</span>"
+        s << "</div>"
+      end
+    end
+
+    finish = Time.now
+    logger.info "render_active_colleagues: took #{finish-start}"
+    
+    if s != ""
+      s
+    else
+      l(:label_no_active_colleagues)
+    end
+  end
 
 end