Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meta: Polls #5114

Open
stefanceriu opened this issue Nov 9, 2021 · 0 comments
Open

Meta: Polls #5114

stefanceriu opened this issue Nov 9, 2021 · 0 comments
Labels
A-Timeline T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements

Comments

@stefanceriu
Copy link
Member

stefanceriu commented Nov 9, 2021

MSC

https://github.com/matrix-org/matrix-doc/blob/travis/msc/polls/proposals/3381-polls.md

Designs

https://www.figma.com/file/tepA3ELWBE5v4O2WB8PqWn/Polls?node-id=247%3A56744

Tickets

https://element-io.atlassian.net/browse/PSF-424

  • As a user with permission to send a message in a room
  • I can interact with a poll button in the composer
  • So that I can open the poll creation window

https://element-io.atlassian.net/browse/PSF-317

  • As a user creating a poll
  • I can enter a question
  • So that I can show respondents the question they need to answer

https://element-io.atlassian.net/browse/PSF-318

  • As a user creating a poll
  • I can enter from 2 to 20 (inclusive) responses
  • So that I can give respondents options to select from
  • To enforce the minimum of 2 requirement, the ‘create poll’ CTA is disabled unless there are at least two response options with text entered in them.
  • With respect to the above - options 1 and 2 do not have any special status that prevents them from being deleted; it is possible to add options 3 and 4, enter text in those two, then delete 1 and 2 and the CTA will still be enabled. It is also possible to delete options 1 and 2 (i.e going down to 0 choices), and then re-add them.
  • To enforce the maximum of 20 requirement, the ‘add option’ button is disabled if there are 20 options added (even if not all of them have text in). 
  • Option numbering is re-generated whenever an option is deleted. E.g. if options 1 and 2 are deleted, options 3 and 4 become 1 and 2 respectively. It is not possible to have a gap in numbering.
  • If options are deleted to bring the total to 19 or fewer, the ‘add option’ button is re-enabled.
  • If an option is left with no text entered at the point that the ‘create poll’ CTA is clicked, it is treated as if it had been deleted.

Display poll in timeline - https://element-io.atlassian.net/browse/PSF-508

Register a Vote - https://element-io.atlassian.net/browse/PSF-319
User Story

  • As a user with permission to post in a room
  • I can register a single vote on any active poll
  • So that I can register my response and have it seen in the results

Notes

  • Voting is by means of a radio button so that clicking a different option switches my vote.
  • Users can change their vote up until the poll is ended.
  • They can only change their vote but cannot vote twice.

View results - https://element-io.atlassian.net/browse/PSF-322
User Story

  • As a user who can view posts in a room with a poll in it
  • I can see results of the poll once I have voted
  • So I am able to see which choices were most popular

Notes

  • This is the MVP-version of the story, where all polls are open. Once PSF-342: Enable secret polls - is implemented, there will be the option to only show results once a poll has been ended.
  • Only users who have voted can see results while poll is in progress, but all users can see results when it is closed

Delete the Poll - https://element-io.atlassian.net/browse/PSF-321
User Story

  • As a user who created a poll
  • I can delete the poll
  • So that it is removed from the room

Notes

  • A poll can be deleted at any point, even if there already votes on it - this matches the functionality for deleting other items I have posted, such as text, images or a voice message.

End the Poll - https://element-io.atlassian.net/browse/PSF-320

  • As a user who created a poll
  • I can end the poll
  • So that no further votes can be registered and, if it was a closed poll, the results are visible

Edit polls - https://element-io.atlassian.net/browse/PSF-343
User Story

  • As a user who has created a poll
  • I can edit it up until the moment it receives at least one vote
  • So that I can quickly correct any mistakes

Notes

  • Element allows editing of standard messages, however editing polls allows the creator to manipulate the results. Therefore it should be barred once a vote has been received.
  • Editing could be simply disabled altogether on polls (and this may be an option for MVP) but it would be preferable to allow users to quickly rectify a typo or other error.

Enabled undisclosed polls - https://element-io.atlassian.net/browse/PSF-342
User Story

  • As a user creating a poll
  • I can select to show results only after the poll has ended
  • So that participants are only able to see the results after the poll is closed

Notes

  • This could be done by selecting between ‘Open poll` and ‘Closed poll’ polls.
  • The default is ‘Open poll` where results are visible as soon as a user votes.
@stefanceriu stefanceriu self-assigned this Nov 9, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 9, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 10, 2021
stefanceriu added a commit that referenced this issue Nov 11, 2021
stefanceriu added a commit that referenced this issue Nov 11, 2021
stefanceriu added a commit that referenced this issue Nov 11, 2021
- added input toolbar poll creation action.
- reordered input toolbar actions as per designs.
- added multiline text field and extracted common components.
stefanceriu added a commit that referenced this issue Nov 11, 2021
- added input toolbar poll creation action.
- reordered input toolbar actions as per designs.
- added multiline text field and extracted common components.
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 11, 2021
…intregration tests. Added simple poll aggregator.
stefanceriu added a commit that referenced this issue Nov 11, 2021
- added input toolbar poll creation action.
- reordered input toolbar actions as per designs.
- added multiline text field and extracted common components.
@pixlwave pixlwave added A-Timeline T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements labels Nov 12, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 15, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 15, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 16, 2021
…ing code review. Introduced immutable poll interface exposed by the aggregator and builder.
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 16, 2021
element-hq/element-ios/issues/5114 -  Added poll event methods, poll aggregator and model builder
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 19, 2021
…value, fixed poll question key path, made aggregator and models public.
stefanceriu added a commit to matrix-org/matrix-ios-kit that referenced this issue Nov 19, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 23, 2021
stefanceriu added a commit to matrix-org/matrix-ios-kit that referenced this issue Nov 23, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 24, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 24, 2021
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Nov 24, 2021
…e updates coming from read receipts and only listen to events relating to the original poll in the poll aggregator event listener.
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 18, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 18, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 18, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 18, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 18, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 18, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 18, 2022
stefanceriu added a commit that referenced this issue Jan 18, 2022
stefanceriu added a commit that referenced this issue Jan 18, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 19, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Jan 19, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Feb 11, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Feb 11, 2022
stefanceriu added a commit to matrix-org/matrix-ios-sdk that referenced this issue Feb 11, 2022
@stefanceriu stefanceriu removed their assignment Dec 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Timeline T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements
Projects
None yet
Development

No branches or pull requests

2 participants