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