Commit 26332265f7b2e58aec32fe03dfb250dcadce3a4c

Authored by Braulio Bhavamitra
1 parent 48c5ed73

Remove solr and facets acts from profiles

Share code by placing them together into profile base class
app/models/community.rb
@@ -79,25 +79,4 @@ class Community < Organization @@ -79,25 +79,4 @@ class Community < Organization
79 {:title => __('Community Info and settings'), :icon => 'edit-profile-group'} 79 {:title => __('Community Info and settings'), :icon => 'edit-profile-group'}
80 end 80 end
81 81
82 - private  
83 - def f_territory  
84 - categories.find(:all, :conditions => {:parent_id => 5}).collect(&:name)  
85 - end  
86 - def f_topic  
87 - categories.find(:all, :conditions => {:parent_id => 1}).collect(&:name)  
88 - end  
89 - def f_network  
90 - categories.find(:all, :conditions => {:parent_id => 9}).collect(&:name)  
91 - end  
92 - public  
93 -  
94 - acts_as_faceted :fields => {  
95 - :f_territory => {:label => _('Territories')},  
96 - :f_topic => {:label => _('Thematics')},  
97 - :f_network => {:label => _('Networks')}},  
98 - :order => [:f_territory, :f_topic, :f_network]  
99 -  
100 - acts_as_searchable :additional_fields => [ :extra_data_for_index, {:name => {:type => :string, :as => :name_sort, :boost => 5.0}} ] + facets.keys.map{|i| {i => :facet}},  
101 - :facets => facets.keys  
102 -  
103 end 82 end
app/models/enterprise.rb
@@ -162,28 +162,11 @@ class Enterprise < Organization @@ -162,28 +162,11 @@ class Enterprise < Organization
162 end 162 end
163 end 163 end
164 164
165 - settings_items :enable_contact_us, :type => :boolean, :default => true 165 + def control_panel_settings_button
  166 + {:title => __('Enterprise Info and settings'), :icon => 'edit-profile-enterprise'}
  167 + end
166 168
167 - private  
168 - def f_territory  
169 - categories.find(:all, :conditions => {:parent_id => 5}).collect(&:name)  
170 - end  
171 - def f_topic  
172 - categories.find(:all, :conditions => {:parent_id => 1}).collect(&:name)  
173 - end  
174 - def f_network  
175 - categories.find(:all, :conditions => {:parent_id => 9}).collect(&:name)  
176 - end  
177 - public  
178 -  
179 - acts_as_faceted :fields => {  
180 - :f_territory => {:label => _('Territories')},  
181 - :f_topic => {:label => _('Thematics')},  
182 - :f_network => {:label => _('Networks')}},  
183 - :order => [:f_territory, :f_topic, :f_network]  
184 -  
185 - acts_as_searchable :additional_fields => [ :extra_data_for_index, {:name => {:type => :string, :as => :name_sort, :boost => 5.0}} ] + facets.keys.map{|i| {i => :facet}},  
186 - :facets => facets.keys 169 + settings_items :enable_contact_us, :type => :boolean, :default => true
187 170
188 def enable_contact? 171 def enable_contact?
189 enable_contact_us 172 enable_contact_us
app/models/person.rb
@@ -414,27 +414,6 @@ class Person < Profile @@ -414,27 +414,6 @@ class Person < Profile
414 user.save! 414 user.save!
415 end 415 end
416 416
417 - private  
418 - def f_territory  
419 - categories.find(:all, :conditions => {:parent_id => 5}).collect(&:name)  
420 - end  
421 - def f_topic  
422 - categories.find(:all, :conditions => {:parent_id => 1}).collect(&:name)  
423 - end  
424 - def f_network  
425 - categories.find(:all, :conditions => {:parent_id => 9}).collect(&:name)  
426 - end  
427 - public  
428 -  
429 - acts_as_faceted :fields => {  
430 - :f_territory => {:label => _('Territories')},  
431 - :f_topic => {:label => _('Thematics')},  
432 - :f_network => {:label => _('Networks')}},  
433 - :order => [:f_territory, :f_topic, :f_network]  
434 -  
435 - acts_as_searchable :additional_fields => [ :extra_data_for_index, {:name => {:type => :string, :as => :name_sort, :boost => 5.0}} ] + facets.keys.map{|i| {i => :facet}},  
436 - :facets => facets.keys  
437 -  
438 protected 417 protected
439 418
440 def followed_by?(profile) 419 def followed_by?(profile)
app/models/profile.rb
@@ -178,7 +178,7 @@ class Profile < ActiveRecord::Base @@ -178,7 +178,7 @@ class Profile < ActiveRecord::Base
178 def top_level_categorization 178 def top_level_categorization
179 ret = {} 179 ret = {}
180 self.profile_categorizations.each do |c| 180 self.profile_categorizations.each do |c|
181 - p = c.category.root_parent 181 + p = c.category.top_ancestor
182 ret[p] = (ret[p] || []) + [c.category] 182 ret[p] = (ret[p] || []) + [c.category]
183 end 183 end
184 ret 184 ret
@@ -823,18 +823,59 @@ private :generate_url, :url_options @@ -823,18 +823,59 @@ private :generate_url, :url_options
823 name 823 name
824 end 824 end
825 825
826 - protected 826 + private
  827 + def self.f_categories_label_proc(environment)
  828 + ids = environment.top_level_category_as_facet_ids
  829 + r = Category.find(ids)
  830 + map = {}
  831 + ids.map{ |id| map[id.to_s] = r.detect{|c| c.id == id}.name }
  832 + map
  833 + end
  834 + def self.f_categories_proc(facet, id)
  835 + id = id.to_i
  836 + c = Category.find(id)
  837 + c.name if c.top_ancestor.id == facet[:label_id].to_i or facet[:label_id] == 0
  838 + end
  839 + def f_categories
  840 + category_ids
  841 + end
827 842
828 - def followed_by?(person)  
829 - person.is_member_of?(self)  
830 - end 843 + def f_type
  844 + self.class.name
  845 + end
  846 + def self.f_type_proc(id)
  847 + {'Enterprise' => _('Enterprise'),
  848 + 'BscPlugin::Bsc' => _('BSC')
  849 + }[id]
  850 + end
  851 + public
831 852
832 - def display_private_info_to?(user)  
833 - if user.nil?  
834 - false  
835 - else  
836 - (user == self) || (user.is_admin?(self.environment)) || user.is_admin?(self) || user.memberships.include?(self)  
837 - end 853 + acts_as_faceted :fields => {
  854 + :f_type => {:label => _('Type'), :type_if => proc { |klass| klass.kind_of?(Enterprise) }, :proc => proc { |id| f_type_proc(id) }},
  855 + :f_categories => {:multi => true, :proc => proc {|facet, id| f_categories_proc(facet, id)},
  856 + :label => proc { |env| f_categories_label_proc(env) }, :label_abbrev => proc { |env| f_categories_label_abbrev_proc(env) }}},
  857 + :category_query => proc { |c| "f_categories:#{c.id}" },
  858 + :order => [:f_type, :f_categories]
  859 +
  860 + acts_as_searchable :additional_fields => [
  861 + :extra_data_for_index, {:name => {:type => :string, :as => :name_sort, :boost => 5.0}} ] + facets.keys.map{|i| {i => :facet}},
  862 + :boost => proc {|p| 10 if p.enabled},
  863 + :facets => facets.keys
  864 +
  865 + def control_panel_settings_button
  866 + {:title => _('Profile Info and settings'), :icon => 'edit-profile'}
  867 + end
  868 +
  869 + def followed_by?(person)
  870 + person.is_member_of?(self)
  871 + end
  872 +
  873 + def display_private_info_to?(user)
  874 + if user.nil?
  875 + false
  876 + else
  877 + (user == self) || (user.is_admin?(self.environment)) || user.is_admin?(self) || user.memberships.include?(self)
838 end 878 end
  879 + end
839 880
840 end 881 end