From 586af7d1dbc8438ddb54db28fd7b8111063106f2 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 1 Dec 2015 11:47:33 -0300 Subject: [PATCH] remove unnecessary community extensions --- src/noosfero-spb/software_communities/lib/ext/communities_block.rb | 6 ------ src/noosfero-spb/software_communities/lib/ext/community.rb | 37 ------------------------------------- src/noosfero-spb/software_communities/lib/ext/person.rb | 4 ---- src/noosfero-spb/software_communities/lib/ext/profile_controller.rb | 2 +- src/noosfero-spb/software_communities/lib/ext/profile_editor_controller.rb | 28 ---------------------------- src/noosfero-spb/software_communities/lib/ext/search_controller.rb | 12 ------------ src/noosfero-spb/software_communities/lib/software.rb | 14 ++++++++++++++ src/noosfero-spb/software_communities/lib/software_communities_plugin.rb | 8 ++++---- src/noosfero-spb/software_communities/lib/softwares_block.rb | 5 +---- 9 files changed, 20 insertions(+), 96 deletions(-) delete mode 100644 src/noosfero-spb/software_communities/lib/ext/profile_editor_controller.rb diff --git a/src/noosfero-spb/software_communities/lib/ext/communities_block.rb b/src/noosfero-spb/software_communities/lib/ext/communities_block.rb index 4a5fcaa..da49c65 100644 --- a/src/noosfero-spb/software_communities/lib/ext/communities_block.rb +++ b/src/noosfero-spb/software_communities/lib/ext/communities_block.rb @@ -18,12 +18,6 @@ class CommunitiesBlock [:image,:domains,:preferred_domain,:environment] ) - delete_communities = [] - valid_communities_string = Community.get_valid_communities_string - Community.all.each{|community| delete_communities << community.id unless eval(valid_communities_string)} - - visible_profiles = visible_profiles.where(["profiles.id NOT IN (?)", delete_communities]) unless delete_communities.empty? - if !prioritize_profiles_with_image return visible_profiles.all( :limit => get_limit, diff --git a/src/noosfero-spb/software_communities/lib/ext/community.rb b/src/noosfero-spb/software_communities/lib/ext/community.rb index 6f8602f..c19dbe2 100644 --- a/src/noosfero-spb/software_communities/lib/ext/community.rb +++ b/src/noosfero-spb/software_communities/lib/ext/community.rb @@ -1,19 +1,8 @@ require_dependency 'community' class Community - - SEARCHABLE_SOFTWARE_FIELDS = { - :name => 1, - :identifier => 2, - :nickname => 3 - } - attr_accessible :visible - has_one :software_info, :dependent=>:destroy - - settings_items :hits, :type => :integer, :default => 0 - def self.create_after_moderation(requestor, attributes = {}) community = Community.new(attributes) @@ -28,22 +17,6 @@ class Community community end - def self.get_valid_communities_string - remove_of_communities_methods = Community.instance_methods.select{|m| m =~ /remove_of_community_search/} - valid_communities_string = "!(" - remove_of_communities_methods.each do |method| - valid_communities_string += "community.send('#{method}') || " - end - valid_communities_string = valid_communities_string[0..-5] - valid_communities_string += ")" - - valid_communities_string - end - - def software? - return !software_info.nil? - end - def deactivate self.visible = false self.save! @@ -53,14 +26,4 @@ class Community self.visible = true self.save! end - - def remove_of_community_search_software? - return software? - end - - def hit - self.hits += 1 - self.save! - end - end diff --git a/src/noosfero-spb/software_communities/lib/ext/person.rb b/src/noosfero-spb/software_communities/lib/ext/person.rb index b08a9f3..7aa9f60 100644 --- a/src/noosfero-spb/software_communities/lib/ext/person.rb +++ b/src/noosfero-spb/software_communities/lib/ext/person.rb @@ -6,10 +6,6 @@ class Person delegate :login, :to => :user, :prefix => true - def software? - false - end - #def softwares # softwares = [] # self.communities.each do |community| diff --git a/src/noosfero-spb/software_communities/lib/ext/profile_controller.rb b/src/noosfero-spb/software_communities/lib/ext/profile_controller.rb index e0619f6..bdec6c7 100644 --- a/src/noosfero-spb/software_communities/lib/ext/profile_controller.rb +++ b/src/noosfero-spb/software_communities/lib/ext/profile_controller.rb @@ -14,7 +14,7 @@ class ProfileController type = profile.institutions else profile.communities.select do |community| - type << community unless community.software? || community.institution? + type << community unless community.institution? end end diff --git a/src/noosfero-spb/software_communities/lib/ext/profile_editor_controller.rb b/src/noosfero-spb/software_communities/lib/ext/profile_editor_controller.rb deleted file mode 100644 index 3645f1f..0000000 --- a/src/noosfero-spb/software_communities/lib/ext/profile_editor_controller.rb +++ /dev/null @@ -1,28 +0,0 @@ -require_dependency 'profile_editor_controller' - -class ProfileEditorController - - before_filter :redirect_to_edit_software_community, :only => [:edit] - - def edit_software_community - @profile_data = profile - @possible_domains = profile.possible_domains - @first_edit = profile.software_info.first_edit? - - if @first_edit - profile.software_info.first_edit = false - profile.software_info.save! - end - - edit if request.post? - end - - protected - - def redirect_to_edit_software_community - if profile.class == Community && profile.software? - redirect_to :action => 'edit_software_community' - end - end - -end diff --git a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb index e96cd63..27897c6 100644 --- a/src/noosfero-spb/software_communities/lib/ext/search_controller.rb +++ b/src/noosfero-spb/software_communities/lib/ext/search_controller.rb @@ -1,18 +1,6 @@ require_dependency 'search_controller' class SearchController - - def communities - delete_communities = [] - valid_communities_string = Community.get_valid_communities_string - Community.all.each{|community| delete_communities << community.id unless eval(valid_communities_string)} - - @scope = visible_profiles(Community) - @scope = @scope.where(["id NOT IN (?)", delete_communities]) unless delete_communities.empty? - - full_text_search - end - def software_infos prepare_software_search_page results = filter_software_infos_list diff --git a/src/noosfero-spb/software_communities/lib/software.rb b/src/noosfero-spb/software_communities/lib/software.rb index 3370e6d..c973b9d 100644 --- a/src/noosfero-spb/software_communities/lib/software.rb +++ b/src/noosfero-spb/software_communities/lib/software.rb @@ -1,6 +1,20 @@ class Software < Organization + SEARCHABLE_SOFTWARE_FIELDS = { + :name => 1, + :identifier => 2, + :nickname => 3 + } + + settings_items :hits, :type => :integer, :default => 0 + has_one :software_info validates_presence_of :software_info attr_accessible :software_info after_save { software_info.save! } + + #FIXME This is a performance bottleneck on heavy loads. + def hit + self.hits += 1 + self.save! + end end diff --git a/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb b/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb index 976ad14..f61da9e 100644 --- a/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb +++ b/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb @@ -22,13 +22,13 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin end def profile_tabs - if context.profile.community? && context.profile.software? + if context.profile.kind_of?(Software) return profile_tabs_software end end def control_panel_buttons - if context.profile.software? + if context.profile.kind_of?(Software) return software_info_button elsif context.profile.person? return create_new_software_button @@ -86,7 +86,7 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin end def organization_ratings_plugin_comments_extra_fields - if context.profile.software? + if context.profile.kind_of?(Software) Proc::new { render :file => 'comments_extra_fields' } end end @@ -106,7 +106,7 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin is_admin = environment.admins.include?(current_user.person) is_admin ||= user_rating.organization.admins.include?(current_user.person) - if is_admin and profile.software? + if is_admin and profile.kind_of?(Software) render :file => 'organization_ratings_extra_fields_show_data', :locals => {:user_rating => user_rating} end diff --git a/src/noosfero-spb/software_communities/lib/softwares_block.rb b/src/noosfero-spb/software_communities/lib/softwares_block.rb index 067345a..f6a6d5a 100644 --- a/src/noosfero-spb/software_communities/lib/softwares_block.rb +++ b/src/noosfero-spb/software_communities/lib/softwares_block.rb @@ -52,10 +52,7 @@ class SoftwaresBlock < CommunitiesBlock def profile_list profiles = get_visible_profiles - - software_profiles = profiles.select do |profile| - profile.class == Community && profile.software? - end + software_profiles = profiles.where(:type => 'Software') block_softwares = if self.software_type == "Public" software_profiles.select { |profile| profile.software_info.public_software? } -- libgit2 0.21.2