Feature #18637
closedDesign/UX #17385: Profile CV & Account Settings
Design/UX #18150: Inbox tab
Invites do not create a BP notification
0%
- git submodule update cac-onboarding
- run notifications-backfill.php script via WP-CLI
- modify last line of invitations email template (https://commons.gc.cuny.edu/wp-admin/post.php?post=64345&action=edit) to use the following:
<span style="font-weight:bold;">Accept pending invitations by visiting your <a href="https://commons.gc.cuny.edu/members/me/notifications/action-center/">Action Center</a> page.</span>
Description
When we created the 'cac-onboarding'
plugin to handle onboarding and group / site invitations (#8641), for our initial release, we made the decision to not create a BuddyPress notification when an invite is sent. See https://github.com/cuny-academic-commons/cac-onboarding/issues/30 .
As part of the new "Notifications" page, we will want to create a BP notification whenever an invite is sent so users are able to handle invitation requests from within the "Notifications" page. See https://www.figma.com/proto/c3v5FHId3eUAjZ2ennkN83/CUNY-Design---Summer-2023?page-id=3461%3A53191&type=design&node-id=3461-55432&viewport=8484%2C13384%2C0.25&t=sqKGsUW2nW5ZDQbn-1&scaling=min-zoom .
This will require the following:
1. Record a BP notification whenever a new invite is sent to an existing user.
2. Write a routine to backfill all current, pending invites so they will have a BP notification.
3. Modify the invite email to change the "Click on this link to manage your invitations" link from commons.gc.cuny.edu/members/me/invites/
to the new "Notifications > Action Center" page for existing users.
Files
Updated by Raymond Hoh about 1 year ago
Boone, I've added a new branch for the cac-onboarding
plugin -- bp-notifications -- that adds three new BP notifications:
1. When an invite is sent to an existing user, a BP notification is also created for the existing user
2. When an invite is accepted, a BP notification is sent to the inviter to let them know about the update
3. When an invite is rejected, a BP notification is sent to the inviter to let them know about the update
When an invite is accepted or rejected, the first notification is also deleted.
Some other commits were added to re-use the existing invite action logic and so invite action redirection can be done when accepting or declining an invite from the new "Notifications > All" and "Notifications > Action Center" pages.
This is available for testing on cdev.
Updated by Boone Gorges about 1 year ago
Wow.
This all looks good to me. Thanks, Ray!
Updated by Raymond Hoh about 1 year ago
Boone, I'm working through a WP-CLI script to backfill notifications for invites created by the cac-onboarding
plugin.
Here's what I have so far:
<?php global $wpdb; $invites = $wpdb->get_results( "select id,invitee_id,inviter_id,date_created from wp_1_cac_invites where status = 'pending' and invitee_id != 0" ); $progress = \WP_CLI\Utils\make_progress_bar( 'Generating notifications', count( $invites ) ); foreach ( $invites as $invite ) { $progress->tick(); bp_notifications_add_notification( array( 'user_id' => $invite->invitee_id, 'item_id' => $invite->id, 'secondary_item_id' => $invite->inviter_id, 'date_notified' => $invite->date_created, 'component_name' => 'caco', 'component_action' => 'new_invitation', ) ); } $progress->finish();
The script works but when I do a query to see how many pending invites there are on the production database, that number is quite large:
mysql> select count(*) from wp_1_cac_invites where status = 'pending' and invitee_id != 0; +----------+ | count(*) | +----------+ | 4280 | +----------+ 1 row in set (0.08 sec)
I'm wondering why we have a ton of pending invites when inviting an existing user.
Do you think we should limit creating notifications if the date_created
for the invite is older than January 1, 2023 or a more, recent date? If using January 1st as the cut-off date, the notifications to create would be 656 instead.
Updated by Boone Gorges about 1 year ago
I'm wondering why we have a ton of pending invites when inviting an existing user.
Yeah, that's strange. There could be a bug in cac-onboarding preventing them from being marked as accepted, but it's obviously not totally broken:
> select count(*) from wp_1_cac_invites where status != 'pending' and invitee_id != 0; +----------+ | count(*) | +----------+ | 26279 | +----------+ 1 row in set (0.04 sec)
Anyway, I agree that we don't need to backfill for all or even most of these. Jan 1 2023 seems OK to me if it does to you.
Updated by Raymond Hoh about 1 year ago
- File notifications-backfill.php notifications-backfill.php added
- Deployment actions updated (diff)
Boone, I've attached the notifications-backfill.php
script you should run with WP-CLI after pulling 2.2.x
branch to production. In the script, I used January 1st, 2023 as the cut-off date.
I also modified the "Deployment Actions" field of this ticket to note a change to the invitations email template.
Updated by Boone Gorges about 1 year ago
- Status changed from New to Staged for Production Release
Updated by Boone Gorges about 1 year ago
- Status changed from Staged for Production Release to Resolved
I've completed the deployment actions.