Commit 8decbb488e5bc23448f519da7c7c4ec0eb3a7e70
Exists in
staging
and in
42 other branches
Merge branch 'invite-member' into 'stable'
Invite Member http://noosfero.org/Development/ActionItem3054
Showing
2 changed files
with
20 additions
and
0 deletions
Show diff stats
app/models/community.rb
| 1 | 1 | class Community < Organization |
| 2 | 2 | |
| 3 | + after_destroy :check_invite_member_for_destroy | |
| 4 | + | |
| 3 | 5 | def self.type_name |
| 4 | 6 | _('Community') |
| 5 | 7 | end |
| ... | ... | @@ -17,6 +19,10 @@ class Community < Organization |
| 17 | 19 | community.moderated_articles = true if community.environment.enabled?('organizations_are_moderated_by_default') |
| 18 | 20 | end |
| 19 | 21 | |
| 22 | + def check_invite_member_for_destroy | |
| 23 | + InviteMember.pending.select { |task| task.community_id == self.id }.map(&:destroy) | |
| 24 | + end | |
| 25 | + | |
| 20 | 26 | def self.create_after_moderation(requestor, attributes = {}) |
| 21 | 27 | community = Community.new(attributes) |
| 22 | 28 | if community.environment.enabled?('admin_must_approve_new_communities') | ... | ... |
test/unit/invite_member_test.rb
| ... | ... | @@ -115,5 +115,19 @@ class InviteMemberTest < ActiveSupport::TestCase |
| 115 | 115 | assert_match(/#{task.requestor.name} invited you to join #{community.name}/, email.subject) |
| 116 | 116 | end |
| 117 | 117 | |
| 118 | + should 'destroy InviteMember task when the community is destroyed' do | |
| 119 | + p1 = create_user('testuser1').person | |
| 120 | + p2 = create_user('testuser2').person | |
| 121 | + p3 = create_user('testuser3').person | |
| 122 | + community = fast_create(Community) | |
| 123 | + | |
| 124 | + t1 = InviteMember.create!(:person => p1, :friend => p2, :community_id => community.id) | |
| 125 | + t2 = InviteMember.create!(:person => p1, :friend => p3, :community_id => community.id) | |
| 126 | + community.destroy | |
| 127 | + | |
| 128 | + assert_raise ActiveRecord::RecordNotFound do; t1.reload; end | |
| 129 | + assert_raise ActiveRecord::RecordNotFound do; t2.reload; end | |
| 130 | + end | |
| 131 | + | |
| 118 | 132 | end |
| 119 | 133 | ... | ... |