Commit 1b8ca019f41431e2e4439a2f0b3e5796b95bc16b
1 parent
eacb4d70
Exists in
refactor_software_info_to_software
and in
1 other branch
Change class community to class software
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com> Signed-off-by: Pedro de Lyra <pedrodelyra@gmail.com>
Showing
2 changed files
with
64 additions
and
66 deletions
Show diff stats
src/noosfero-spb/software_communities/lib/ext/community.rb
@@ -1,66 +0,0 @@ | @@ -1,66 +0,0 @@ | ||
1 | -require_dependency 'community' | ||
2 | - | ||
3 | -class Community | ||
4 | - | ||
5 | - SEARCHABLE_SOFTWARE_FIELDS = { | ||
6 | - :name => 1, | ||
7 | - :identifier => 2, | ||
8 | - :nickname => 3 | ||
9 | - } | ||
10 | - | ||
11 | - attr_accessible :visible | ||
12 | - | ||
13 | - has_one :software_info, :dependent=>:destroy, :class_name => "SoftwareCommunitiesPlugin::SoftwareInfo" | ||
14 | - | ||
15 | - settings_items :hits, :type => :integer, :default => 0 | ||
16 | - | ||
17 | - def self.create_after_moderation(requestor, attributes = {}) | ||
18 | - community = Community.new(attributes) | ||
19 | - | ||
20 | - if community.environment.enabled?('admin_must_approve_new_communities') && | ||
21 | - !community.is_admin?(requestor) | ||
22 | - | ||
23 | - cc = CreateCommunity.create(attributes.merge(:requestor => requestor)) | ||
24 | - else | ||
25 | - community = Community.create(attributes) | ||
26 | - community.add_admin(requestor) | ||
27 | - end | ||
28 | - community | ||
29 | - end | ||
30 | - | ||
31 | - def self.get_valid_communities_string | ||
32 | - remove_of_communities_methods = Community.instance_methods.select{|m| m =~ /remove_of_community_search/} | ||
33 | - valid_communities_string = "!(" | ||
34 | - remove_of_communities_methods.each do |method| | ||
35 | - valid_communities_string += "community.send('#{method}') || " | ||
36 | - end | ||
37 | - valid_communities_string = valid_communities_string[0..-5] | ||
38 | - valid_communities_string += ")" | ||
39 | - | ||
40 | - valid_communities_string | ||
41 | - end | ||
42 | - | ||
43 | - def software? | ||
44 | - return !software_info.nil? | ||
45 | - end | ||
46 | - | ||
47 | - def deactivate | ||
48 | - self.visible = false | ||
49 | - self.save! | ||
50 | - end | ||
51 | - | ||
52 | - def activate | ||
53 | - self.visible = true | ||
54 | - self.save! | ||
55 | - end | ||
56 | - | ||
57 | - def remove_of_community_search_software? | ||
58 | - return software? | ||
59 | - end | ||
60 | - | ||
61 | - def hit | ||
62 | - self.hits += 1 | ||
63 | - self.save! | ||
64 | - end | ||
65 | - | ||
66 | -end |
src/noosfero-spb/software_communities/lib/software_communities_plugin/software.rb
0 → 100644
@@ -0,0 +1,64 @@ | @@ -0,0 +1,64 @@ | ||
1 | +class SoftwareCommunitiesPlugin::Software < Organization | ||
2 | + | ||
3 | + SEARCHABLE_SOFTWARE_FIELDS = { | ||
4 | + :name => 1, | ||
5 | + :identifier => 2, | ||
6 | + :nickname => 3 | ||
7 | + } | ||
8 | + | ||
9 | + attr_accessible :visible | ||
10 | + | ||
11 | + has_one :software_info, :dependent=>:destroy, :class_name => "SoftwareCommunitiesPlugin::SoftwareInfo" | ||
12 | + | ||
13 | + settings_items :hits, :type => :integer, :default => 0 | ||
14 | + | ||
15 | + def self.create_after_moderation(requestor, attributes = {}) | ||
16 | + community = SoftwareCommunitiesPlugin::Software.new(attributes) | ||
17 | + | ||
18 | + if community.environment.enabled?('admin_must_approve_new_communities') && | ||
19 | + !community.is_admin?(requestor) | ||
20 | + | ||
21 | + cc = SoftwareCommunitiesPlugin::CreateSoftware.create(attributes.merge(:requestor => requestor)) | ||
22 | + else | ||
23 | + community = SoftwareCommunitiesPlugin::Software.create(attributes) | ||
24 | + community.add_admin(requestor) | ||
25 | + end | ||
26 | + community | ||
27 | + end | ||
28 | + | ||
29 | + def self.get_valid_communities_string | ||
30 | + remove_of_communities_methods = SoftwareCommunitiesPlugin::Software.instance_methods.select{|m| m =~ /remove_of_community_search/} | ||
31 | + valid_communities_string = "!(" | ||
32 | + remove_of_communities_methods.each do |method| | ||
33 | + valid_communities_string += "community.send('#{method}') || " | ||
34 | + end | ||
35 | + valid_communities_string = valid_communities_string[0..-5] | ||
36 | + valid_communities_string += ")" | ||
37 | + | ||
38 | + valid_communities_string | ||
39 | + end | ||
40 | + | ||
41 | + def software? | ||
42 | + return !software_info.nil? | ||
43 | + end | ||
44 | + | ||
45 | + def deactivate | ||
46 | + self.visible = false | ||
47 | + self.save! | ||
48 | + end | ||
49 | + | ||
50 | + def activate | ||
51 | + self.visible = true | ||
52 | + self.save! | ||
53 | + end | ||
54 | + | ||
55 | + def remove_of_community_search_software? | ||
56 | + return software? | ||
57 | + end | ||
58 | + | ||
59 | + def hit | ||
60 | + self.hits += 1 | ||
61 | + self.save! | ||
62 | + end | ||
63 | + | ||
64 | +end |