noosfero | friendship: make it possible to be friend again
Bráulio Bhavamitra
gitlab at gitlab.com
Mon Mar 16 21:46:34 BRT 2015
Bráulio Bhavamitra pushed to refs/heads/master at <a href="https://gitlab.com/noosfero/noosfero">Noosfero / noosfero</a>
Commits:
<a href="https://gitlab.com/noosfero/noosfero/commit/e4b31d74a5832de06e020a5ef220ae9a0252ded8">e4b31d74</a> by Braulio Bhavamitra
friendship: make it possible to be friend again
- - - - -
Changes:
=====================================
app/models/add_friend.rb
=====================================
--- a/app/models/add_friend.rb
+++ b/app/models/add_friend.rb
@@ -4,7 +4,7 @@ class AddFriend < Task
validates_presence_of :requestor_id, :target_id
- validates_uniqueness_of :target_id, :scope => [ :requestor_id ]
+ validates_uniqueness_of :target_id, scope: [ :requestor_id, :status ], if: proc{ |t| t.status == Task::Status::ACTIVE }
validates_length_of :group_for_person, :group_for_friend, :maximum => 150, :allow_nil => true
=====================================
app/models/person.rb
=====================================
--- a/app/models/person.rb
+++ b/app/models/person.rb
@@ -150,7 +150,7 @@ roles] }
end
def already_request_friendship?(person)
- person.tasks.find_by_requestor_id(self.id, :conditions => { :type => 'AddFriend' })
+ person.tasks.where(requestor_id: self.id, type: 'AddFriend', status: Task::Status::ACTIVE).first
end
def remove_friend(friend)
=====================================
test/unit/add_friend_test.rb
=====================================
--- a/test/unit/add_friend_test.rb
+++ b/test/unit/add_friend_test.rb
@@ -77,9 +77,9 @@ class AddFriendTest < ActiveSupport::TestCase
end
should 'not add friend twice' do
- fast_create(AddFriend, :requestor_id => person1.id, :target_id => person2.id)
+ create AddFriend, person: person1, friend: person2, status: 1
assert_raise ActiveRecord::RecordInvalid do
- AddFriend.create!(:person => person1, :friend => person2)
+ create AddFriend, person: person1, friend: person2, status: 1
end
end
=====================================
test/unit/person_test.rb
=====================================
--- a/test/unit/person_test.rb
+++ b/test/unit/person_test.rb
@@ -324,7 +324,9 @@ class PersonTest < ActiveSupport::TestCase
should 'already request friendship' do
p1 = create_user('testuser1').person
p2 = create_user('testuser2').person
- create(AddFriend, :person => p1, :friend => p2)
+ create(AddFriend, person: p1, friend: p2).finish
+ assert !p1.already_request_friendship?(p2)
+ create(AddFriend, person: p1, friend: p2)
assert p1.already_request_friendship?(p2)
end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150317/83b0bdfb/attachment-0001.html>
More information about the Noosfero-dev
mailing list