Page MenuHomePhabricator

Investigation: Allow deleted registration to be restored
Closed, ResolvedPublic3 Estimated Story Points

Description

NOTE: We may want to rename these actions as disable registration and re-enable registration.

As a Campaigns team member, I want to know how we can implement support to allow the restoration of deleted event pages, so that we can begin the implementation in the future.

Background: As part of V0, we created the ability for organizers to delete registration that had been enabled on an event page. However, with the current implementation, once registration is deleted, it cannot be restored or re-enabled. This needs to change in the future, since there may certainly be times when the organizer does want to restore registration. Note that, right now, the users who have rights to delete registration are the organizer for an event and other users on the wiki who have the rights to delete pages (which typically means admins).

Additional resources:

Acceptance Criteria:

  • Investigate how we can do the following and outline if there are any risks, dependencies, or blockers:
    • If registration has been deleted by organizer, organizers of the event or admins should be able to restore it
    • If an admin deletes registration, only other admins should be able to restore it
  • If registration is deleted and then restored, we should first focus on implementing for the most common use case: the user wants the registration data to be restored (rather than deleted). We can just focus on this use case for the scope of this investigation, and if we want to allow organizers the option of deleting all registration data in V2 that can be investigating in the future.
    • How can we do this? Any risks, concerns, or blockers?
  • Is there a way to indicate that the registration has been deleted to non-organizers in the UI?
    • Maybe: when deleting a registration, add a checkbox only for admins that says like "hard-delete the event", meaning only admins could restore it
  • Is there some way to display record of disabled registrations to admins?
    • For example: would we need to create a log? how would this be done? how much effort/complexity would be involved in this?

Note that we have not determined the UI, but some options include the following:

  • 'Enable registration' button is changed to 'Restore registration' for the organizer view (if they are allowed to restore registration)
  • "Restore registration" choice in the dropdown (if the user selected "Delete registration" --> but this would mean that we would need to start displaying deleted event registrations in MyEvents

Event Timeline

ifried updated the task description. (Show Details)
ifried added subscribers: CKMIE89, gonyeahialam.

@gonyeahialam and @CKMIE89: If the organizer deletes registration and then wants to restore it, do you have recommendations for how this should be handled in the user experience/user flows? Thanks in advance!

Also we should determine what any non organizer will see when the registration has been deleted. Right now there is nothing in the UI to indicate to users a distinction between the event registration being deleted for an event, or the event registration just not being enabled yet. Can we add something about this into the AC as well @ifried? If registration has been deleted by an organizer, we could have something in the UI on the event page to indicate to non organizers that the registration has been deleted.

@gonyeahialam and @CKMIE89: If the organizer deletes registration and then wants to restore it, do you have recommendations for how this should be handled in the user experience/user flows? Thanks in advance!

hello @ifried I have a few questions to better understand the problem and design appropriately.

  1. Why would an organizer delete a registration and what would prompt them to want to restore after deletion?
  2. Why do non-organizers need to know that an event registration was deleted?

@gonyeahialam: I think this is something for both of us to answer, since it is both a UX and product considerations, but here are my thoughts:

  1. An organizer deleting registration is probably very uncommon, and we do not have definitive research around it. However, we do generally want to give organizers the ability to undo their work in case they somehow made a mistake and never wanted to enable registration. Maybe they accidentally enabled registration because they wanted to try out the tool or they didn't understand its usage. Or perhaps they find another registration solution that they like better or prefer over our registration, so they no longer want to use our registration tool on their event page. Whatever their reason may be, we want to give them the ability to do delete since they have more control over their event and the choices around its management. What do you think?
  2. This was something we were exploring, but we don't know if non-organizers should see that registration was deleted. Perhaps if someone registered for an event and then, all of a sudden, the registration interface disappeared, it could be useful if they were informed somehow? What do you think?
ifried updated the task description. (Show Details)
ifried updated the task description. (Show Details)

@gonyeahialam Hello! I am checking in to see if you have any insights or feedback around the user experience for restoring deleted event registration?

ifried renamed this task from Allow deleted registration to be restored to Investigation: Allow deleted registration to be restored.Aug 24 2022, 5:32 PM
ifried updated the task description. (Show Details)
ldelench_wmf subscribed.

Discussed at 2022-08-25 Engineering/Design meeting:

@ldelench_wmf Hello! The AC already includes who should be able to restores deleted registration and when. Is there more information that the engineers need before launching the investigation?

vyuen set the point value for this task to 3.Sep 6 2022, 12:38 PM
  • Investigate how we can do the following and outline if there are any risks, dependencies, or blockers:
    • If registration has been deleted by organizer, organizers of the event or admins should be able to restore it
    • If an admin deletes registration, only other admins should be able to restore it

This is doable, although the implementation is not super simple. We would need an additional field in the DB, and the logic would be more convoluted than with the simpler options; there's also the edge case of an admin organizer who deletes the registration which I'm not sure how to handle. In general, it's a relatively risky approach, but it's doable.

  • If registration is deleted and then restored, we should first focus on implementing for the most common use case: the user wants the registration data to be restored (rather than deleted). We can just focus on this use case for the scope of this investigation, and if we want to allow organizers the option of deleting all registration data in V2 that can be investigating in the future.
    • How can we do this? Any risks, concerns, or blockers?

This is actually the easiest approach, so no particular risks, concerns, or blockers. OTOH, I do have questions about deleting all registration data. Would this be a hard deletion? Or is it something you can choose when restoring? At any rate, it shouldn't make any difference for the initial approach.

  • Is there a way to indicate that the registration has been deleted to non-organizers in the UI?
    • Maybe: when deleting a registration, add a checkbox only for admins that says like "hard-delete the event", meaning only admins could restore it

Possibly? I guess this is more of a design question.

  • Is there some way to display record of disabled registrations to admins?
    • For example: would we need to create a log? how would this be done? how much effort/complexity would be involved in this?

Yes, creating a log is an option. We would be logging to Special:Log, and this integration is not hard to build. The question is whether we want additional tools, like a list of deleted registrations, maybe filterable by user. There are several options here that are technically feasible, so the actual question is what we want product-wise.

Thank you for this investigation, @Daimona! Your findings were very helpful. I have created 2 follow-up tasks, based on your findings, which can be discussed in our next sprint planning meeting: T318159 and T318160. I am marking this work as Done.