Page MenuHomePhabricator

Add Special:WishlistIntake to save and edit wishes
Closed, ResolvedPublicGoal

Assigned To
Authored By
MusikAnimal
May 14 2025, 8:39 PM
Referenced Files
F65689475: 2025-07-29_11-00-11.png
Jul 29 2025, 6:18 PM
F65689474: 2025-07-29_11-00-21.png
Jul 29 2025, 6:18 PM
F65689405: 2025-07-29_10-44-11.png
Jul 29 2025, 5:57 PM
F65689403: 2025-07-29_10-45-53.png
Jul 29 2025, 5:57 PM
F64386974: 2025-07-14_09-08-55.png
Jul 14 2025, 4:13 PM
F64386961: 2025-07-14_09-05-42.mp4.gif
Jul 14 2025, 4:13 PM
F63965196: Comm_wishlist_editw1.webm
Jul 11 2025, 8:58 PM
F63963824: 2025-07-11_13-34-06.png
Jul 11 2025, 8:58 PM

Description

This task encompasses all the work of getting Special:WishlistIntake fully functioning in MediaWiki-extensions-CommunityRequests.

The form itself should be identical to the current Wishlist gadget (further changes to the form will come later). The difference is we'll use the server to save the wish and assign the page title, instead of doing this in JS.

Acceptance criteria

  • Should be able to create new wishes using Special:WishlistIntake
  • The wishes should be saved to Community Wishlist/Wishes/W123 where 123 is the auto-incrementing wish title (T392001)
  • The Codex-styled success message should be shown after saving, just like the gadget
  • When viewing a wish page, an "Edit with form" tab should be shown (just as before) Will do at a later time…
    • The tab should also be shown when viewing translation subpages
  • Should be able to edit a wish, either with the "Edit with form" tab or browsing to Special:WishlistIntake/123 where 123 corresponds to the wish title W123
  • When creating a wish when your language is set to non-English, the page itself should have the language set to that language.

Derived Requirement
Ensure that the Special:WishlistIntake page allows users to create and edit wishes server-side with proper wish page creation, form handling, and success feedback—matching the current gadget’s behavior but persisting through backend logic.

Test Steps

Test Case 1: Ensure new wish can be created via Special\:WishlistIntake

  1. Go to Special:WishlistIntake on the beta wiki.
  2. Fill out all required fields in the form (as seen in the current Wishlist gadget).
  3. Submit the form.
  4. ✅❓❌⬜ AC1: Confirm that a new page is created at Community Wishlist/Wishes/W### where ### is the next available number.
  5. ✅❓❌⬜ AC2: Confirm that a Codex-styled success message is shown after the form is submitted.

Test Case 2: Ensure wishes are saved to correct location with auto-incremented title

  1. Create a new wish using Special:WishlistIntake.
  2. ✅❓❌⬜ AC3: Confirm that the new wish is saved at Community Wishlist/Wishes/W###, where the number increments based on the most recent wish.

Test Case 3: Ensure "Edit with form" tab appears on saved wish pages

  1. After creating a wish, navigate to its page (e.g., Community Wishlist/Wishes/W1).
  2. ✅❓❌⬜ AC4: Confirm that an "Edit with form" tab is visible on the page.

Test Case 4: Ensure "Edit with form" tab is visible on translation subpages

  1. Navigate to a translation subpage of a wish (e.g., Community Wishlist/Wishes/W1?uselang=es).
  2. ✅❓❌⬜ AC5: Confirm that the "Edit with form" tab appears on the translation subpage.

Test Case 5: Ensure existing wish can be edited using Special\:WishlistIntake/1

  1. Visit a previously created wish page (e.g., Community Wishlist/Wishes/W1).
  2. Go to Special:WishlistIntake/1.
  3. Edit some of the form fields and submit the changes.
  4. ✅❓❌⬜ AC6: Confirm that the changes are saved and reflected on the wish page.

QA Results - commtech.toolforge

Related Objects

Event Timeline

MusikAnimal changed the subtype of this task from "Task" to "Goal".

Change #1148400 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] WishStore: add getDataFromWikitext() to parse description from source

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

Change #1148985 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] [WIP]: SpecialWishlistIntake: move saving of wishes to the server

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

Change #1156742 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] WishlistConfig: service for retrieving and transforming config values

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

Change #1148985 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] SpecialWishlistIntake: move saving of wishes to the server

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

Change #1156742 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] WishlistConfig: service for retrieving and transforming config values

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

Change #1159984 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] Render wishes server-side instead of through the template

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

Change #1160942 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] Make filed/attr/param names consistent

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

Change #1160968 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] SpecialWishlistIntake: add hidden fields for missing wish data

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

Change #1161018 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] Display 'All projects' instead of listing each one individually

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

Change #1161054 had a related patch set uploaded (by MusikAnimal; author: MusikAnimal):

[mediawiki/extensions/CommunityRequests@master] SpecialWishlistIntake: pass in baserevid when saving pages

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

Change #1160942 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] Make field, attribute, and param names consistent

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

Change #1160968 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] SpecialWishlistIntake: add hidden fields for missing wish data

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

Change #1161018 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] Display 'All projects' instead of listing each one individually

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

Change #1148400 abandoned by MusikAnimal:

[mediawiki/extensions/CommunityRequests@master] WishStore: add getDataFromWikitext() to parse description from source

Reason:

done in I927bbb9f32

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

Change #1161054 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] SpecialWishlistIntake: pass in baserevid when saving pages

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

Change #1159984 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] Render wishes server-side instead of through the template

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

Can be tested at https://commtech.toolforge.org/Special:WishlistIntake

Note again that only the viewing, editing, and creation of wishes works. All other pages such as "View all wishes" don't work yet.

@MusikAnimal Can please review AC5?

Test Result - commtech.toolforge.org/Special:WishlistIntake

Status: ✅ PASS / ❓Need More Info
Environment: commtech.toolforge.org/Special:WishlistIntake
OS: macOS Sequoia 15.5
Browser: Chrome 138
Device: MBA
Emulated Device: NA

Test Artifact(s):
https://commtech.toolforge.org/Special:WishlistIntake
https://commtech.toolforge.org/Community_Wishlist/Wishes/W1
https://commtech.toolforge.org/Community_Wishlist/Wishes/W2

Test Steps

Test Case 1: Ensure new wish can be created via Special\:WishlistIntake

  1. Go to Special:WishlistIntake on the beta wiki.
  2. Fill out all required fields in the form (as seen in the current Wishlist gadget).
  3. Submit the form.
  4. AC1: Confirm that a new page is created at Community Wishlist/Wishes/W### where ### is the next available number.

gif

2025-07-11_12-37-03.mp4.gif (994×1 px, 3 MB)

  1. AC2: Confirm that a Codex-styled success message is shown after the form is submitted.

See AC1

Test Case 2: Ensure wishes are saved to correct location with auto-incremented title

  1. Create a new wish using Special:WishlistIntake.
  2. AC3: Confirm that the new wish is saved at Community Wishlist/Wishes/W###, where the number increments based on the most recent wish.
Older Created WishMost Recent Created Wish
2025-07-11_12-44-55.png (1×1 px, 180 KB)
2025-07-11_12-44-44.png (1×1 px, 174 KB)

Test Case 3: Ensure "Edit with form" tab appears on saved wish pages

  1. After creating a wish, navigate to its page (e.g., Community Wishlist/Wishes/W123).
  2. AC4: Confirm that an "Edit with form" tab is visible on the page.

gif

2025-07-11_13-21-10.mp4.gif (1×1 px, 3 MB)

Test Case 4: Ensure "Edit with form" tab is visible on translation subpages

  1. Navigate to a translation subpage of a wish (e.g., Community Wishlist/Wishes/W123?uselang=es).
  2. AC5: Confirm that the "Edit with form" tab appears on the translation subpage.

Can I test this yet when changing a language? When preference is set to es, is it only side menus that are only translated? Also I guess uselang does not work yet.

Preference set to esuselang=es
2025-07-11_13-32-54.png (1×1 px, 191 KB)
2025-07-11_13-34-06.png (1×1 px, 191 KB)

Test Case 5: Ensure existing wish can be edited using Special\:WishlistIntake/1

  1. Visit a previously created wish page (e.g., Community Wishlist/Wishes/W1).
  2. Go to Special:WishlistIntake/1.
  3. Edit some of the form fields and submit the changes.
  4. AC6: Confirm that the changes are saved and reflected on the wish page.

Can I test this yet when changing a language? When preference is set to es, is it only side menus that are only translated? Also I guess uselang does not work yet.

The buttons (part of the content) will go by the page language. Try creating a wish with Spanish set as your language, and then the buttons should appear in Spanish.

I don't know why uselang= doesn't work on CommTechWiki, but I can look into it. That wouldn't change the language of the content anyway, so I don't think it's important for testing this, specifically.

Can I test this yet when changing a language? When preference is set to es, is it only side menus that are only translated? Also I guess uselang does not work yet.

The buttons (part of the content) will go by the page language. Try creating a wish with Spanish set as your language, and then the buttons should appear in Spanish.

I don't know why uselang= doesn't work on CommTechWiki, but I can look into it. That wouldn't change the language of the content anyway, so I don't think it's important for testing this, specifically.

@MusikAnimal You are saying the "Edit" button should be in Spanish when the language is already set in Spanish? Check out my gif below and the screenshot.

GifScreenshot
2025-07-14_09-05-42.mp4.gif (1×1 px, 1 MB)
2025-07-14_09-08-55.png (1×1 px, 220 KB)
KSiebert changed the task status from Open to In Progress.Jul 16 2025, 9:50 AM

You are saying the "Edit" button should be in Spanish when the language is already set in Spanish?

When the page content language is in Spanish, not the interface/user language. I.e. create the wish when you have your language set to Spanish, and then you should see Spanish translations of the buttons. The Page information link under "Tools" will tell you what language it is set to. I see from https://commtech.toolforge.org/index.php?title=Community_Wishlist/Wishes/W4&action=info that this was created as English. W6 was created in Spanish, and you can see the "Edit wish" button is translated there: https://commtech.toolforge.org/Community_Wishlist/Wishes/W6 (the "Discuss this wish" message doesn't have a Spanish translation yet).

You are saying the "Edit" button should be in Spanish when the language is already set in Spanish?

When the page content language is in Spanish, not the interface/user language. I.e. create the wish when you have your language set to Spanish, and then you should see Spanish translations of the buttons. The Page information link under "Tools" will tell you what language it is set to. I see from https://commtech.toolforge.org/index.php?title=Community_Wishlist/Wishes/W4&action=info that this was created as English. W6 was created in Spanish, and you can see the "Edit wish" button is translated there: https://commtech.toolforge.org/Community_Wishlist/Wishes/W6 (the "Discuss this wish" message doesn't have a Spanish translation yet).

@MusikAnimal Got it. Spanish looks good now, but Hebrew did not translate, even though the Page info is set to Hebrew. This could be due to the parser cache issue, though. If that is the case, then we can pass this task. Just let me know, thanks!

Test Case 4: Ensure "Edit with form" tab is visible on translation subpages

  1. Navigate to a translation subpage of a wish (e.g., https://commtech.toolforge.org/Community_Wishlist/Wishes/W6#).
  2. AC5: Confirm that the "Edit with form" tab appears on the translation subpage.

✅ Spanish

Page InfoWish Page
2025-07-29_10-45-53.png (1×1 px, 198 KB)
2025-07-29_10-44-11.png (1×1 px, 183 KB)

❌ Hebrew - https://commtech.toolforge.org/Community_Wishlist/Wishes/W7

Page InfoWish Page
2025-07-29_11-00-21.png (1×1 px, 179 KB)
2025-07-29_11-00-11.png (1×1 px, 175 KB)

We're going to remove the "Edit wish" and "Discuss this wish" buttons in favour of a tab and the existing "Discussion" tab. See T400187. So, you can ignore any issues with those buttons while testing this task.