We get a lot of duplicate wishes. The way we typically deal with them is to redirect the duplicate to the original, along with copying/pasting any relevant content.
Instead I think we should do it like Phabricator, where the old wish remains fully intact (not a redirect), but we just hide it from the list of wishes.
Acceptance criteria
- Add a "Reason" dropdown when declining a wish that allows user to select "Duplicate"
- When "Duplicate" is selected as the "Declined" reason , users will see a text field where they can enter the duplicate wish ID (ex. W123)
- Wish selection can just be an input for the wish ID, until we have a better search in place
- After submission, change to the "declined" status.
- Insert template community wishlist decline wikitext in the wish's description (ex: {{Community Wishlist/Decline|duplicate|W456}} )
- If the proposer of the duplicate wish has a vote, it should be transferred to the other wish
- This doesn't include a way to merge descriptions of both wishes
Derived Requirement
Ensure that Wishlist moderators can close a wish as a duplicate without redirecting it.
- A "Duplicate" option is available in the "Reason" dropdown when declining a wish.
- When "Duplicate" is selected, a text field is displayed allowing entry of a duplicate wish ID (e.g., W123).
- Upon submission:
- The wish status changes to "Declined".
- The {{Community Wishlist/Decline|duplicate|W###}} template is inserted into the wish description using the provided wish ID.
- The declined duplicate wish remains accessible but is removed from the active wish list.
- If the proposer of the duplicate wish has voted on it, their vote is transferred to the referenced original wish.
- No automatic merging of descriptions occurs.
Test Steps
Preconditions:
- User has moderator or appropriate permission to decline wishes.
- Two wishes exist:
- Original wish (e.g., W100).
- Duplicate wish (e.g., W200).
- The proposer of W200 has cast a vote on W200.
Test Case 1: Ensure "Duplicate" appears as a decline reason
- Navigate to a wish page eligible for decline.
- Initiate the decline workflow.
- Open the "Reason" dropdown.
- ✅❓❌⬜ AC1: The dropdown includes a "Duplicate" option.
Test Case 2: Ensure duplicate ID field appears when "Duplicate" is selected
- Select "Duplicate" from the "Reason" dropdown.
- Observe the decline form.
- ✅❓❌⬜ AC2: A text input field appears allowing entry of a duplicate wish ID (e.g., W100).
Test Case 3: Ensure wish status changes and template is inserted
- Enter a valid duplicate wish ID (e.g., W100).
- Submit the decline action.
- View the declined wish page in edit or wikitext mode.
- ✅❓❌⬜ AC3: The wish status is set to "Declined" and the template {{Community Wishlist/Decline|duplicate|W100}} is inserted into the wish description.
Test Case 4: Ensure duplicate wish is hidden from active list
- Navigate to the list of active/open wishes.
- Search for the declined duplicate wish.
- ✅❓❌⬜ AC4: The declined duplicate wish does not appear in the active wish list.
Test Case 5: Ensure proposer vote is transferred
- Before declining, record the vote count for both the original and duplicate wishes.
- Decline the duplicate wish as described above.
- Check the vote count of the original wish.
- ✅❓❌⬜ AC5: The proposer’s vote from the duplicate wish is removed from the duplicate and added to the original wish.
QA Results - Meta Beta
| AC | Status | Details |
|---|---|---|
| 1 | ✅ | T401638#11663921 |
| 2 | ✅ | T401638#11663921 |
| 3 | ✅ | T401638#11663921 |
| 4 | ✅ | T401638#11663921 |
| 5 | ⬜ | T401638#11670817 |


