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 79 {:title => __('Community Info and settings'), :icon => 'edit-profile-group'}
80 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 82 end
... ...
app/models/enterprise.rb
... ... @@ -162,28 +162,11 @@ class Enterprise < Organization
162 162 end
163 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 171 def enable_contact?
189 172 enable_contact_us
... ...
app/models/person.rb
... ... @@ -414,27 +414,6 @@ class Person < Profile
414 414 user.save!
415 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 417 protected
439 418  
440 419 def followed_by?(profile)
... ...
app/models/profile.rb
... ... @@ -178,7 +178,7 @@ class Profile < ActiveRecord::Base
178 178 def top_level_categorization
179 179 ret = {}
180 180 self.profile_categorizations.each do |c|
181   - p = c.category.root_parent
  181 + p = c.category.top_ancestor
182 182 ret[p] = (ret[p] || []) + [c.category]
183 183 end
184 184 ret
... ... @@ -823,18 +823,59 @@ private :generate_url, :url_options
823 823 name
824 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 878 end
  879 + end
839 880  
840 881 end
... ...