Commit 26332265f7b2e58aec32fe03dfb250dcadce3a4c
1 parent
48c5ed73
Exists in
master
and in
29 other branches
Remove solr and facets acts from profiles
Share code by placing them together into profile base class
Showing
4 changed files
with
56 additions
and
74 deletions
Show diff stats
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 |