Page MenuHomePhabricator

Display tracking tools in the interface
Closed, ResolvedPublic

Description

The interface should display what tracking tools are attached to each event. This should include details about when the last synchronization happened, and whether it was successful, see T320434#8741708. We already have a task for the "edit registration" form (T317708); this task is about other places in the interface, if any, where tracking tools should be shown (like Special:EventDetails).

Decision: we will show this information in Special:EventDetails only. The registration form will not display the last sync date and sync status.

Acceptance criteria

  • Special:EventDetails has a section for the P&E Dashboard, if linked to the event
  • The section should contain the link of the course on the dashboard
  • If the participants are synced, the section should contain a "success"-type notice informing the user that participants are synced, and show the date & time of the last update
  • If the participants are not synced, the section should contain an "error"-type notice informing the user that participants are not synced, and show the date & time of the last successful update

Design specs

Visual example:

Screenshot 2023-06-06 at 16.11.43.png (1×2 px, 354 KB)

Note: the success icon will be different due to T338832.

Event Timeline

@gonyeahialam Hi, do you have any prototypes for this, i.e., places other than the registration form where tracking tools should be displayed? If they should not be shown in any other places, then this task can be closed.

Decision from today's engineering + design meeting: we will include tracking tools on EventDetails (for both organizers and participants). This may or may not include the time of the lasy sync. @gonyeahialam will provide updated prototypes.

Program & Events Dashboard: Event Registration and Sync Status
The Program and Events (P&E) Dashboard is a critical off-wiki tool for tracking participants’ contributions during a campaign event. Currently, organizers have to direct participants to register on the P&E Dashboard after completing their registration on wiki or via a Google form.
Proposed Feature: Automatic User Registration on P&E Dashboard
With this feature, the usernames of registered participants will be automatically sent to the P&E Dashboard, eliminating the need for participants to register in multiple places. However, in rare instances, network issues or unforeseen circumstances might disrupt the transfer of usernames to the Dashboard. When this happens, the participant list on the Dashboard may not reflect the up-to-date list from the Event Registration tool.
The Challenge: Informing Organizers of Sync Status
It's important to keep organizers informed about this potential discrepancy. To do this, I've considered the most visible and actionable ways to present this information:
P&E Dashboard: Placing this information on the P&E Dashboard seems to be the most direct method. It delivers the necessary information right where it's needed, ensuring organizers are aware that the participant list may not reflect all registered participants from the Event Registration tool.
Participant List (Event Registration Tool): The participant list in the Event Registration tool is another ideal location to display this information. As the most frequently visited page after enabling registration, it's an excellent spot to alert organizers that the participant list on the Dashboard may not be in sync with the registered participants' list on that page.
Event Details Page: The Event Details page provides an overview of event details, including the P&E Dashboard URL entered when enabling event registration. It's a logical place to display sync status alongside the dashboard URL, informing organizers of the discrepancies between the registration tool and the Dashboard alongside other essential details.
Enable Event Registration Form: Such information is not relevant at the point of filling out the form, what is important would be to inform the organizers that participant usernames would be sent to the dashboard if they enter the URL of their event on the dashboard. It would not also be important to show this information on this form if the organizers go back to edit the form since the information would be on other more visible pages such as event details or the participant list, and UI would also be kept simple.
My Recommendations for Displaying Sync Status
The top 3 places (or combination of places) I recommend this information be shown to organizers are the P&E dashboard itself, the participant list on the event tool, and the event details page. Here's how I envision it:
Event Details Page
If the registered participants are up to date on the dashboard we inform the organizer and show the last sync time/date.
If it is out of sync, we inform the organizer, show the time of the last successful sync and inform them we would do retries.
If the retries fail, we would inform the organizers as shown above (apart from the retries) and show the list of participants that failed to be sent to the dashboard.
Organizers can’t manually add these participants to the dashboard. But by showing them the participants they can know those affected and try other means to track their contributions.
Participant List Page
On the Participant List page, I'll provide a concise version of the sync status information and direct organizers to the Event Details page for more details. Alternatively, I could show the sync status on the Participant List using indicators (such as colors, icons, or a separate table column) to highlight participants who failed to sync with the Dashboard. However, considering the effort versus the impact of implementing this feature for a rare occurrence, showing just concise information and linking to event details for more would be best.
But it would be challenging to put even such concise information here due to inadequate space.
P&E Dashboard
It may not be feasible to do this.

Questions
I would love your feedback, if any.
Do you foresee any technical challenges with this approach? Are there any other considerations we should take into account?
Looking forward to your feedback.

cc @Daimona

If it is out of sync, we inform the organizer, show the time of the last successful sync and inform them we would do retries.

MediaWiki core, and not us, is responsible for the retries; we have no idea if/when the sync was retried and can't say so to the organizer. But we will only retry for a very short period of time, so you could assume that if the organizer sees that the sync failed, we already stopped retrying.

If the retries fail, we would inform the organizers as shown above (apart from the retries) and show the list of participants that failed to be sent to the dashboard.

We do not store this information (i.e., what participants were synced last time). We would need a schema change to do that, which would increase scope and delay the completion of the epic. I also don't think it's worth changing the schema just to support the very unlikely scenario of a sync fail.

However, considering the effort versus the impact of implementing this feature for a rare occurrence, showing just concise information and linking to event details for more would be best.

+1, I would not recommend spending much time and effort on this. It should be an extremely unlikely scenario. If, for some reason, it becomes more likely than we can tolerate, we will look into making a better job preventing it.

Current Design explorations

LGTM but I would suggest excluding the middle column ("not in sync but retries to be done"), and only using the first one (when in sync) or the last one (when out of sync). For the last one, I'm a bit uncertain about saying "multiple attempts" as I think that depends on the site configuration and there's no guarantee as to the number of attempts. Also what I said above about showing the usernames.

Updated Design:
Design Specs
The sync status would only be on the event details page

Screenshot 2023-06-06 at 16.11.43.png (1×2 px, 354 KB)

cc @Daimona

Updated Design:
Design Specs
The sync status would only be on the event details page

Screenshot 2023-06-06 at 15.43.16.png (1×2 px, 368 KB)

Thank you, this is looking good to me. I'll update the AC.

Change 929336 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CampaignEvents@master] Show tracking tools in Special:EventDetails

https://gerrit.wikimedia.org/r/929336

Change 929336 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] Show tracking tools in Special:EventDetails

https://gerrit.wikimedia.org/r/929336

✅ Special:EventDetails has a section for the P&E Dashboard, if linked to the event
✅ The section should contain the link of the course on the dashboard
✅ If the participants are synced, the section should contain a "success"-type notice informing the user that participants are synced, and show the date & time of the last update
All of the above AC are displayed in the image below:

Screenshot 2023-06-30 at 1.35.06 AM.png (1×1 px, 192 KB)

🚫 If the participants are not synced, the section should contain an "error"-type notice informing the user that participants are not synced, and show the date & time of the last successful update
In the below example, the participants are not correctly synced, but there is no error message shown. The participant count is incorrect on the p and e dashboard:

Screen Recording 2023-06-30 at 1.11.32 AM.gif (1×2 px, 2 MB)
same as what was mentioned in another example at T317708#8979600

✅ Special:EventDetails has a section for the P&E Dashboard, if linked to the event
✅ The section should contain the link of the course on the dashboard
✅ If the participants are synced, the section should contain a "success"-type notice informing the user that participants are synced, and show the date & time of the last update
All of the above AC are displayed in the image below:

Screenshot 2023-06-30 at 1.35.06 AM.png (1×1 px, 192 KB)

🚫 If the participants are not synced, the section should contain an "error"-type notice informing the user that participants are not synced, and show the date & time of the last successful update
@Daimona In the below example, the participants are not correctly synced, but there is no error message shown. The participant count is incorrect on the p and e dashboard:

Screen Recording 2023-06-30 at 1.11.32 AM.gif (1×2 px, 2 MB)
same as what was mentioned in another example at T317708#8979600

Another example of it not syncing correctly but displaying no errors, which may be a separate issue but I am listing it here because it pertains to this ticket as well:
To reproduce: Enable event. Edit event to add a tracking link. Note the participants in that tracking link. Edit the event again to a new tracking link. The new tracking link is updated, but the former tracking link should now be zero since it is no longer tracking that event. There is no error thrown in either the registration page or the p and e dashboard. See gif below for runthrough. You can see that the tracking link that was removed still has two participants in the p and e dashboard, but it should have zero.

Screen Recording 2023-06-30 at 1.52.12 AM.gif (1×2 px, 2 MB)

🚫 If the participants are not synced, the section should contain an "error"-type notice informing the user that participants are not synced, and show the date & time of the last successful update
@Daimona In the below example, the participants are not correctly synced, but there is no error message shown. The participant count is incorrect on the p and e dashboard:

Screen Recording 2023-06-30 at 1.11.32 AM.gif (1×2 px, 2 MB)
same as what was mentioned in another example at T317708#8979600

The sync was actually successful here; as I wrote in T317708#8980659, this is just an issue with testing this locally.

Another example of it not syncing correctly but displaying no errors, which may be a separate issue but I am listing it here because it pertains to this ticket as well:
To reproduce: Enable event. Edit event to add a tracking link. Note the participants in that tracking link. Edit the event again to a new tracking link. The new tracking link is updated, but the former tracking link should now be zero since it is no longer tracking that event. There is no error thrown in either the registration page or the p and e dashboard. See gif below for runthrough. You can see that the tracking link that was removed still has two participants in the p and e dashboard, but it should have zero.

Screen Recording 2023-06-30 at 1.52.12 AM.gif (1×2 px, 2 MB)

I think this might be a thing on the Dashboard side. I'm unsure what happens there when an event is unsynced, but maybe keeping the participants is intentional? @Ragesoss could you please confirm that the course QTE/T334142 is no longer synced with us?


Also, I just realized that this task didn't include instructions for simulating a sync failure. These instructions are in T336900, you can do the same thing here.

Also, I just realized that this task didn't include instructions for simulating a sync failure. These instructions are in T336900, you can do the same thing here.

✅ If the participants are not synced, the section should contain an "error"-type notice informing the user that participants are not synced, and show the date & time of the last successful update

see T336900#8983092 for testing for this. This ticket is ready for product sign off once we can confirm that QTE/T334142 is no longer synced with the dashboard.

see T336900#8983092 for testing for this. This ticket is ready for product sign off once we can confirm that QTE/T334142 is no longer synced with the dashboard.

Confirmed, it's no longer synced.

vaughnwalters added a subscriber: ifried.

see T336900#8983092 for testing for this. This ticket is ready for product sign off once we can confirm that QTE/T334142 is no longer synced with the dashboard.

Confirmed, it's no longer synced.

Okay great, sending this to product sign off. @ifried this is currently available only locally to test but testing notes are at T334142#8979706 and T336900#8983092 for the AC listed in the ticket.

Thanks for the notes. I'm marking this as Done.