Commit 30b741ffb0103459663273c3321ea1f2a52e7491
Committed by
Antonio Terceiro
1 parent
5f957438
Exists in
master
and in
29 other branches
ActionItem1238: Noosfero can not count communities (and enterprises too)
Showing
5 changed files
with
40 additions
and
8 deletions
Show diff stats
app/models/communities_block.rb
@@ -33,7 +33,7 @@ class CommunitiesBlock < ProfileListBlock | @@ -33,7 +33,7 @@ class CommunitiesBlock < ProfileListBlock | ||
33 | end | 33 | end |
34 | 34 | ||
35 | def profile_count | 35 | def profile_count |
36 | - owner.communities.count | 36 | + owner.communities(:public_profile => true).count |
37 | end | 37 | end |
38 | 38 | ||
39 | def profile_finder | 39 | def profile_finder |
app/models/enterprises_block.rb
@@ -29,7 +29,7 @@ class EnterprisesBlock < ProfileListBlock | @@ -29,7 +29,7 @@ class EnterprisesBlock < ProfileListBlock | ||
29 | end | 29 | end |
30 | 30 | ||
31 | def profile_count | 31 | def profile_count |
32 | - owner.enterprises.count | 32 | + owner.enterprises(:public_profile => true).count |
33 | end | 33 | end |
34 | 34 | ||
35 | def profile_finder | 35 | def profile_finder |
app/models/person.rb
@@ -128,14 +128,14 @@ class Person < Profile | @@ -128,14 +128,14 @@ class Person < Profile | ||
128 | :select => 'profiles.*').uniq | 128 | :select => 'profiles.*').uniq |
129 | end | 129 | end |
130 | 130 | ||
131 | - def enterprise_memberships | ||
132 | - memberships(:type => Enterprise.name) | 131 | + def enterprise_memberships(conditions = {}) |
132 | + memberships({:type => Enterprise.name}.merge(conditions)) | ||
133 | end | 133 | end |
134 | 134 | ||
135 | alias :enterprises :enterprise_memberships | 135 | alias :enterprises :enterprise_memberships |
136 | 136 | ||
137 | - def community_memberships | ||
138 | - memberships(:type => Community.name) | 137 | + def community_memberships(conditions = {}) |
138 | + memberships({:type => Community.name}.merge(conditions)) | ||
139 | end | 139 | end |
140 | 140 | ||
141 | alias :communities :community_memberships | 141 | alias :communities :community_memberships |
test/unit/communities_block_test.rb
@@ -90,10 +90,10 @@ class CommunitiesBlockTest < Test::Unit::TestCase | @@ -90,10 +90,10 @@ class CommunitiesBlockTest < Test::Unit::TestCase | ||
90 | should 'count number of owner communities' do | 90 | should 'count number of owner communities' do |
91 | user = create_user('testuser').person | 91 | user = create_user('testuser').person |
92 | 92 | ||
93 | - community1 = Community.create!(:name => 'test community 1', :identifier => 'comm1', :environment => Environment.default) | 93 | + community1 = Community.create!(:name => 'test community 1', :identifier => 'comm1', :environment => Environment.default, :public_profile => true) |
94 | community1.add_member(user) | 94 | community1.add_member(user) |
95 | 95 | ||
96 | - community2 = Community.create!(:name => 'test community 2', :identifier => 'comm2', :environment => Environment.default) | 96 | + community2 = Community.create!(:name => 'test community 2', :identifier => 'comm2', :environment => Environment.default, :public_profile => true) |
97 | community2.add_member(user) | 97 | community2.add_member(user) |
98 | 98 | ||
99 | block = CommunitiesBlock.new | 99 | block = CommunitiesBlock.new |
@@ -102,4 +102,19 @@ class CommunitiesBlockTest < Test::Unit::TestCase | @@ -102,4 +102,19 @@ class CommunitiesBlockTest < Test::Unit::TestCase | ||
102 | assert_equal 2, block.profile_count | 102 | assert_equal 2, block.profile_count |
103 | end | 103 | end |
104 | 104 | ||
105 | + should 'not count non-public communities' do | ||
106 | + user = create_user('testuser').person | ||
107 | + | ||
108 | + community_public = Community.create!(:name => 'tcommunity 1', :identifier => 'comm1', :environment => Environment.default, :public_profile => true) | ||
109 | + community_public.add_member(user) | ||
110 | + | ||
111 | + community_private = Community.create!(:name => ' community 2', :identifier => 'comm2', :environment => Environment.default, :public_profile => false) | ||
112 | + community_private.add_member(user) | ||
113 | + | ||
114 | + block = CommunitiesBlock.new | ||
115 | + block.expects(:owner).at_least_once.returns(user) | ||
116 | + | ||
117 | + assert_equal 1, block.profile_count | ||
118 | + end | ||
119 | + | ||
105 | end | 120 | end |
test/unit/enterprises_block_test.rb
@@ -114,4 +114,21 @@ class EnterprisesBlockTest < Test::Unit::TestCase | @@ -114,4 +114,21 @@ class EnterprisesBlockTest < Test::Unit::TestCase | ||
114 | assert_equal 2, block.profile_count | 114 | assert_equal 2, block.profile_count |
115 | end | 115 | end |
116 | 116 | ||
117 | + should 'not count non-public enterprises' do | ||
118 | + user = create_user('testuser').person | ||
119 | + | ||
120 | + ent1 = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'ent1', :environment => Environment.default, :public_profile => true) | ||
121 | + ent1.expects(:closed?).returns(false) | ||
122 | + ent1.add_member(user) | ||
123 | + | ||
124 | + ent2 = Enterprise.create!(:name => 'test enterprise 2', :identifier => 'ent2', :environment => Environment.default, :public_profile => false) | ||
125 | + ent2.expects(:closed?).returns(false) | ||
126 | + ent2.add_member(user) | ||
127 | + | ||
128 | + block = EnterprisesBlock.new | ||
129 | + block.expects(:owner).at_least_once.returns(user) | ||
130 | + | ||
131 | + assert_equal 1, block.profile_count | ||
132 | + end | ||
133 | + | ||
117 | end | 134 | end |