[buddypress-trac] [BuddyPress Trac] #6040: Friendship activity missing

buddypress-trac noreply at wordpress.org
Wed Dec 3 14:40:06 UTC 2014


#6040: Friendship activity missing
------------------------------------+------------------------------
 Reporter:  dontdream               |       Owner:  imath
     Type:  defect (bug)            |      Status:  assigned
 Priority:  normal                  |   Milestone:  Awaiting Review
Component:  Friends                 |     Version:  1.1
 Severity:  normal                  |  Resolution:
 Keywords:  dev-feedback has-patch  |
------------------------------------+------------------------------
Changes (by imath):

 * keywords:   => dev-feedback has-patch
 * component:  Activity => Friends


Comment:

 Since [https://buddypress.trac.wordpress.org/browser/tags/1.1/bp-
 friends.php#L634 BuddyPress 1.1], 2 activities are generated when a
 friendship is confirmed. 1 for each user of the relationship. While the
 activity for the initiator is "public", the one for the other user is
 {{{hide_sitewide = true}}}.

 As the type for these 2 activities is the same, and the actions are very
 similar (u1 and u2 are now friends and vice versa). I personaly think it
 makes sense to only have 1 activity shown into the activity directory. So
 the {{{hide_sitewide = true}}} use is interesting from this point of view
 :
 - it makes sure only one activity is displayed site wide
 - it makes sure each user will see an activity informing they are now
 friends with each other.

 dontdream reported that when a user check the user's profile of a !=
 initiator user, then the activity is not displayed, which is due to the
 hide_sitewide field: so it's logic (not saying it's necessarly
 consistent).

 I think we have 2 options :
 1. leave this as is, but then we'll need to open a new ticket to fix a
 problem i've found when a
 [https://buddypress.trac.wordpress.org/browser/trunk/src/bp-friends/bp-
 friends-functions.php#L114 friendship is removed] (activities are never
 deleted because the action 'friendship_accepted' seems to be no more in
 use since 1.1)
 2. review the way friendship is tracked into the activity streams
 (directory & users) and to fix the issue the way dontdream is expected it
 to be.

 In 6040.patch, I've worked on the second option. IMHO, i think from a
 "tracking" perspective it can be interesting to display 2 activities in
 the activity directory. The first one will inform someone requested
 another user to be his friend. Later when the "another user" accepts the
 friendship we can publish a second activity informing he accepted the
 friendship.

 [[Image(https://farm9.staticflickr.com/8614/15937844565_3b89857855_z.jpg)]]

 Till the friendship is confirmed the initiator will have an activity
 saying "u1 resquested u2 to be their friend" into his profile :

 [[Image(https://farm8.staticflickr.com/7551/15912050156_ac8c104a2f_z.jpg)]]

 As soon as u2 accepts the friendship, then using the format callback of
 the activity action, we can change the action string to u1 & u2 are now
 friends

 [[Image(https://farm9.staticflickr.com/8673/15750565460_3424a20195_z.jpg)]]

 So to summarize, when on activity directory: the 2 activities are now
 different (requested/accepted) and when on a user's profile: it depends if
 the friendship is confirmed, but in the end both users will have a public
 activity (which is what is expected by this ticket).

 Then, i also worked on some other cases about activities :
 when a friendship is withdrawn: delete the 'friendship_created' activity
 when a friendship is rejected: delete the 'friendship_created' activity
 when a friendship is removed: delete the 2 activities 'friendship_created'
 & 'friendship_accepted'

 I've created unit tests for each cases. I haven't set any milestone
 because :

 If we are to choose option 2, we will need to create an upgrade routine
 that will get all activities having
 {{{
 array(
         'component'   => buddypress()->friends->id,
         'filter'      => array( 'action' => array( 'friendship_created' )
 ),
         'show_hidden' => true
 );
 }}}
 and update them to
 {{{
 array(
         'type'          => 'friendship_accepted',
         'hide_sitewide' => false
 );
 }}}

 Without an upgrade routine all activities would have an action like 'u1
 requested u2 to be their friend'

 Option 1 is the choice that exists so far in BuddyPress, and it can make
 sense to stay with it (as soon as we fix the delete activity issue).

 I personaly think option 2 is interesting for a community administrator as
 when he filters the activity stream to friendships, he has activities with
 the same action (u1 & u2 are now friends and vice-versa) in double. But we
 can think about it for a future release and only fix the 'delete' issue
 for 2.2 (in a new ticket).

 What do you think ?

--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/6040#comment:3>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac


More information about the buddypress-trac mailing list