Page MenuHomePhabricator

Participant informed of question removed when editing registration
Open, In Progress, Needs TriagePublic

Assigned To
Authored By
ifried
Feb 26 2024, 10:03 PM
Referenced Files
F47004043: image.png
Apr 16 2024, 4:27 PM
F45258379: image.png
Apr 8 2024, 8:19 PM
F42469207: image.png
Mar 8 2024, 4:23 PM
F42416363: image.png
Mar 6 2024, 1:14 PM
F42416244: image.png
Mar 6 2024, 1:05 PM
Restricted File
Mar 5 2024, 5:54 PM
Restricted File
Mar 5 2024, 5:53 PM
F42398382: Screenshot 2024-03-05 at 2.40.13 PM.png
Mar 5 2024, 2:52 PM

Description

As an event participant, I want to be informed if the participant questions have been removed when I edit my registration, so that I can have updated information on data retention related to participant data and so that I can make informed decisions about what I do or do not share.

Explanation of behavior: When an organizer removes a question, they no longer see the participant data in the organizer side of the user interface. However, from the data retention standpoint, we always aggregate the answers of the participants, even if the organizer has removed a question. When we do the final aggregation (when the event is over), we check if there is any aggregated data associated with questions that were removed. If there is aggregated data for removed questions, we delete this data. We will also not allow organizers to edit their selection of questions if the event has ended. Overall, by doing this, we change the behavior so organizers can still access data that they choose to collect again (if the event is not over), but it will still delete data if they do not choose to collect it again.

Acceptance Criteria:

  • Given that an organizer has opened registration,
    • And a participant has registered for the event,
      • And the organizer then removes participant question,
        • And the participant chooses to edit their registration,
          • The participant should see: "The organizer has removed the following questions. You can still change your responses in case the question is re-added."
  • Documentation of the "Get your registration information" API endpoint is updated to mention the removed property in the response.

Design:
Design specs

image.png (1×506 px, 135 KB)

Event Timeline

When a participant edits the registration form and deletes some responses, the organizer will no longer see them. But with this feature, if the organizer deletes a question the organizer can still see them but the participant cannot delete them.

We probably need to allow participants to still be able to remove responses to a question even if it has been deleted by the organizer as long as it is still visible to the organizer. cc @Daimona @ifried

When a participant edits the registration form and deletes some responses, the organizer will no longer see them. But with this feature, if the organizer deletes a question the organizer can still see them but the participant cannot delete them.

I'm not following: if the organizer removes a question, they can no longer see any answers to that question, as described in T354880. Also, the participant would still be able to change or remove their previous answer T354880.

We probably need to allow participants to still be able to remove responses to a question even if it has been deleted by the organizer

We do, isn't it what the AC of T354880 and this task state?

as long as it is still visible to the organizer.

Did you mean "participant" instead of "organizer"? Organizers can't see responses to deleted questions, per above.

Okay, @Daimona I understand it now. My comment above was incorrect.

@ifried @gonyeahialam One important thing I forgot to mention: informing participants that a question has been recently added is gonna be way harder than informing them that a question has been removed. While the latter can be inferred by simply looking at the saved answers for that user (if one of the answers is for a question that isn't currently enabled, then the question must have been removed), we can't do something similar for the former. It might become possible if we decide to distinguish "no answer because the question was not available" vs "no answer because the user chose not to provide one". However, that's a larger change. If we want to get this done now rather than later, I would suggest making this task only about removed questions, and create another task for added questions that can then be parked in the backlog.

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

[mediawiki/extensions/CampaignEvents@master] GetOwnRegistrationInfoHandler: mark answers to removed questions

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

@Daimona I think it is fine to focus on removed questions first, since I think participants will be more concerned about how the data is handled for questions that they answered already rather than questions they have not answered (so there is no data on them). I will create a separate task for added questions and make this one about informing the participant that a question has been removed. One question: Where could we put the text that states a question we removed? Could we put it below the individual question, or no?

@gonyeahialam, hello! Can you create a basic visual example of what it may look like to inform the participant that a participant question was added or removed? This way, I can share the examples with internal stakeholders and get their feedback on the language. It doesn't need to be perfect, but just as a way for people to understand what we're trying to do. For adding a question, the text we can use for now is: "The organizer of this event added this question after you registered." For removing a question, the text we can use for now is: "The organizer of this event removed this question. Your response will be deleted without aggregation after the event ends, unless the organizer adds back the question."

Where could we put the text that states a question we removed? Could we put it below the individual question, or no?

This is a really hard one. I'm not sure where we could put it, especially given OOUI / MediaWiki-HTMLForm capabilities. But even regardless of that, I'm not sure what the best approach would be. I can provide feedback on technical feasibility if given some options, though.

@Daimona I think it is fine to focus on removed questions first, since I think participants will be more concerned about how the data is handled for questions that they answered already rather than questions they have not answered (so there is no data on them). I will create a separate task for added questions and make this one about informing the participant that a question has been removed. One question: Where could we put the text that states a question we removed? Could we put it below the individual question, or no?

@gonyeahialam, hello! Can you create a basic visual example of what it may look like to inform the participant that a participant question was added or removed? This way, I can share the examples with internal stakeholders and get their feedback on the language. It doesn't need to be perfect, but just as a way for people to understand what we're trying to do. For adding a question, the text we can use for now is: "The organizer of this event added this question after you registered." For removing a question, the text we can use for now is: "The organizer of this event removed this question. Your response will be deleted without aggregation after the event ends, unless the organizer adds back the question."

@ifried I am working on it

Still exploring various ways to implement this

Screenshot 2024-03-04 at 2.11.18 PM.png (1×3 px, 735 KB)

Hello @Daimona,
Currently, when a participant clears their registration form or just a particular question is their response also deleted from the db immediately?

Hello @Daimona,
Currently, when a participant clears their registration form or just a particular question is their response also deleted from the db immediately?

Yes, as soon as they submit it.

@Daimona Some explorations on this. Let me know your thoughts

Screenshot 2024-03-05 at 2.40.13 PM.png (1×1 px, 441 KB)

@ifried the AC says that participants will be informed that they can still change their answer in case the organizer re-enables before the event ends but that isn't mentioned in your proposed copy. I have added it and made the other parts shorter, what do you think?

Copy:
The event organizer has removed this question. Your response will be deleted without aggregation after the event ends unless the question is re-added. You can still change your response in case the question is re-added.

@Daimona Some explorations on this. Let me know your thoughts

These aren't standard OOUI widgets, are they? In general, I don't think OOUI has any show-on-hover dialog widget. In some cases it can maybe be achieved with tooltips or custom CSS but it wouldn't look like the spec above (and accessibility needs to be considered carefully).

Hello, @gonyeahialam! I was just discussing this ticket with @Daimona, and he brought up the idea of perhaps including the information on changes in a separate section at the bottom (between 'your information' and 'data retention information.' What do you think? And perhaps you can create an example visual of this too, and then can we share all of the visual examples with internal stakeholders to get their feedback on the visual presentation and language? Thanks!

Screenshot examples:
{F42400292}
{F42400285}

@ifried your screenshot examples above aren't showing

Here are some design explorations on having a separate section for Removed questions @ifried @Daimona

image.png (5×6 px, 2 MB)

The image I added above seems to not be showing properly (I don't know why) but if you click on it will show well.

@Daimona @ifried Would love your feedback on the designs above. Here is the Figma link for a more detailed view.

@Daimona @ifried Would love your feedback on the designs above. Here is the Figma link for a more detailed view.

Yup, your ideas are pretty much what I had in mind and shared with Ilana. Of all the options, I'm not convinced by the one with "Removed questions" and "Other questions", as I would see things marked as "Other" as being less important, but here it's actually the opposite. I'm also unsure if we can implement this with subsections or accordions in OOUI. But overall, I do like the idea of having sections (even if it's just two sibling sections).

@Daimona Thanks for your feedback. The 'other questions' is just a temporary label. I will work more on improving the 2 section idea. When can you investigate implementing subsections in OOUI?

@ifried What is the reason for this AC in T354880: Organizers of the event should be able to see previous responses to the re-added participant question

@Daimona Thanks for your feedback. The 'other questions' is just a temporary label. I will work more on improving the 2 section idea. When can you investigate implementing subsections in OOUI?

Judging from https://www.mediawiki.org/wiki/OOUI/Layouts/Fields_and_Fieldsets and the code, it seems that fieldsets can only have fields as children, and not other fieldsets.

@gonyeahialam: What I mean in the AC is that, if an organizer removes a question before an event ends, and then if they decide to add back the question before the event ends, they should be able to see the answers to that question shared by participants before they initially removed that question.

As for my feedback: I like the separate sections, and perhaps the accordion (if technically feasible) could be nice, since we're providing a lot of information that could be potentially confusing to participants, and it may not terribly important to many of them since it's telling them that their data will be deleted anyway (so the accordion gives more choice to participants around whether they need to really read and understand this extra information).

I think these designs are at least ready for an internal review. @gonyeahialam, which designs shall I include in the Asana task for review of this work? Would it be the last set of images you shared?

You can use this for the Asana task @ifried

image.png (2×2 px, 735 KB)

@ifried Regarding the AC, I meant what the rationale was behind allowing organizers to see responses to removed questions if they re-add it

@gonyeahialam If an organizer adds a question, and then some participants answer the question, and then they remove the question, and then if the organizer re-adds the question (perhaps because they made a mistake when they removed it or change their mind about removing it) before the event ends, I think it makes sense to retain & display the data of the responses from the participants who previously answered the question, since the organizer has again decided that this question should be included and the participants chose to answer the question.

ifried renamed this task from Participant informed of participant question changes when editing registration to Participant informed of participant question removed when editing registration.Mar 29 2024, 4:35 PM
ifried updated the task description. (Show Details)
ifried updated the task description. (Show Details)

@gonyeahialam We have finished the internal review related to this ticket, including an update to the text that is more simplified (see AC). In that case, can we update the visual examples with the updated text? Also, do you know what feedback we received from the engineers on the two different possibilities? Are they both feasible and generally doable? If yes, do you have a recommendation/preference on which one of the two is a better user experience?

ifried renamed this task from Participant informed of participant question removed when editing registration to Participant informed of question removed when editing registration.Mar 29 2024, 4:59 PM

Updated the copy

image.png (1×506 px, 136 KB)

Can we use re-added instead of re-enabled? Re-added goes better with removed. Disabled goes with re-enabled. @ifried

@gonyeahialam We have finished the internal review related to this ticket, including an update to the text that is more simplified (see AC). In that case, can we update the visual examples with the updated text? Also, do you know what feedback we received from the engineers on the two different possibilities? Are they both feasible and generally doable? If yes, do you have a recommendation/preference on which one of the two is a better user experience?

@Daimona mentioned that there may be some difficulty with the accordion

Change #1007424 merged by jenkins-bot:

[mediawiki/extensions/CampaignEvents@master] GetOwnRegistrationInfoHandler: mark answers to removed questions

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

ifried updated the task description. (Show Details)

I have discussed this ticket with @gonyeahialam and we have decided upon the following copy: "The organizer has removed the following questions. You can still change your responses in case the question is re-added." He will now create a new visual example for this ticket, and then it should be ready to estimate.

@gonyeahialam Can we get an updated visual example?