Implement upvoting and downvoting system for Jira External Share

Description

Enable users to create an upvoting and downvoting system for Jira External Share board share to allow clients to vote on issues and help prioritize initiatives.


On share config user can “enable voting”.
It should be possible to pick issue field (numeric field) that we will update with number of votes.

We store in db table:

Column name

type

id

bigint

host_id

int

issue_id

text

project_id

text

voted_external_user_id

bitint

value

smallint

Value: 1 - mean upvote
Value: -1 - mean downvote

created

date-time

last_updated

date-time

On external user dashboard we present list of issue where user voted.
On internal issue view we present who voted, when and what value.
New votes table on issue view, project view, global view:


For Testing:

In project config / share config user should be able to enable/disable voting
In the share config, the user should be able to select the field into which the number of votes on the ticket in Jira will be saved. Saving is possible only if field is added to appropriate screen
Logged in user should be able to add or remove vote for issue
All votes for current issue should be listed in issue share in activity section
All user votes should be listed in user dashboard
All issue votes should be listed in view as below
All project votes should be listed in view as below

Linked issues

relates to
Issue Type Icon ESFJ-1515 E2E Playwright Test - Voting Priority: Lowest Assignee:
To Do
Issue Type Icon ESFJ-1531 Vote timestamp does not take user's time zone setting into consideration Priority: Lowest Assignee:
Released