diff --git a/src/noosfero-spb/software_communities/lib/ext/community.rb b/src/noosfero-spb/software_communities/lib/ext/community.rb deleted file mode 100644 index e4b661b..0000000 --- a/src/noosfero-spb/software_communities/lib/ext/community.rb +++ /dev/null @@ -1,66 +0,0 @@ -require_dependency 'community' - -class Community - - SEARCHABLE_SOFTWARE_FIELDS = { - :name => 1, - :identifier => 2, - :nickname => 3 - } - - attr_accessible :visible - - has_one :software_info, :dependent=>:destroy, :class_name => "SoftwareCommunitiesPlugin::SoftwareInfo" - - settings_items :hits, :type => :integer, :default => 0 - - def self.create_after_moderation(requestor, attributes = {}) - community = Community.new(attributes) - - if community.environment.enabled?('admin_must_approve_new_communities') && - !community.is_admin?(requestor) - - cc = CreateCommunity.create(attributes.merge(:requestor => requestor)) - else - community = Community.create(attributes) - community.add_admin(requestor) - end - 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! - end - - def activate - 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/software_communities_plugin/software.rb b/src/noosfero-spb/software_communities/lib/software_communities_plugin/software.rb new file mode 100644 index 0000000..38077bf --- /dev/null +++ b/src/noosfero-spb/software_communities/lib/software_communities_plugin/software.rb @@ -0,0 +1,64 @@ +class SoftwareCommunitiesPlugin::Software < Organization + + SEARCHABLE_SOFTWARE_FIELDS = { + :name => 1, + :identifier => 2, + :nickname => 3 + } + + attr_accessible :visible + + has_one :software_info, :dependent=>:destroy, :class_name => "SoftwareCommunitiesPlugin::SoftwareInfo" + + settings_items :hits, :type => :integer, :default => 0 + + def self.create_after_moderation(requestor, attributes = {}) + community = SoftwareCommunitiesPlugin::Software.new(attributes) + + if community.environment.enabled?('admin_must_approve_new_communities') && + !community.is_admin?(requestor) + + cc = SoftwareCommunitiesPlugin::CreateSoftware.create(attributes.merge(:requestor => requestor)) + else + community = SoftwareCommunitiesPlugin::Software.create(attributes) + community.add_admin(requestor) + end + community + end + + def self.get_valid_communities_string + remove_of_communities_methods = SoftwareCommunitiesPlugin::Software.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! + end + + def activate + self.visible = true + self.save! + end + + def remove_of_community_search_software? + return software? + end + + def hit + self.hits += 1 + self.save! + end + +end -- libgit2 0.21.2