diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index bc07ad0..3f60282 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -2,7 +2,6 @@ class MembersController < ApplicationController def index page_roles = OrbitHelper.page_categories page_role_status = OrbitHelper.page_role_status - fields_to_show = [ {"key"=>"job_title", "type"=>"role","sort_order"=>1}, {"key"=>"name", "type"=>"profile","sort_order"=>2,"link_to_show"=>true}, @@ -22,7 +21,6 @@ class MembersController < ApplicationController sort = '[('+sort.join('),(')+')]' end - if page_roles.include?("all") roles = Role.all.collect do |role| { "title" => role.title, "id" => role.id } @@ -31,8 +29,9 @@ class MembersController < ApplicationController page_role_status.each do |status_id| page_roles << RoleStatus.find(status_id).role.id.to_s end + roles = Role.find(page_roles.uniq).collect do |role| - { "title" => role.title, "id" => role.id, "status" => RoleStatus.where(:role_id=>role, :_id.in=>page_role_status) } + { "title" => role.title, "id" => role.id, "status" => RoleStatus.where(:role_id=>role, :_id.in=>page_role_status).to_a } end end @@ -48,17 +47,19 @@ class MembersController < ApplicationController # Members with status role_status = RoleStatus.order_by(:id=>"asc").where(:role_id=>role['id']) role_status_ids = role_status.collect{|status| status.id.to_s} + role_status.each do |status| member_profiles = get_members_by_status(status, sort, fields_to_show) next if member_profiles.blank? status_list << { "status-title" => status.title, "members" => member_profiles } end + # Members without status member_profiles = [] MemberProfile.not_in(:role_status_ids.in=>role_status_ids).where(:role_ids.in=>[role['id']]).collect do |profile| member_profiles << get_member_data(profile, fields_to_show) end - member_profiles = member_profiles.sort_by{|data| eval(sort)} + member_profiles = member_profiles.sort_by{|data| eval(sort)} rescue member_profiles status_list << { "status-title" => role['title'], "members" => member_profiles } if !member_profiles.blank? end role_list << { "role-title" => role['title'], "status-list" => status_list } @@ -73,10 +74,12 @@ class MembersController < ApplicationController def get_members_by_status(status, sort, fields_to_show) member_profiles = [] + status.member_profiles.each do |member| member_profiles<