User story:
A user should be able to filter wishes
Acceptance criteria:
Volunteers should be able to filter by:
- Tag
- Status
- Focus Area
Users should be able to copy a link to the wishlist with filters applied, and send that link to someone, who opens to the same view
QA details:
Testing can be done for all filters through this task, as it is the parent of all filter tasks.
Subtasks:
- introduce API changes to query for wishes for filtering
- add form fields that groups filter (accordion) an call API on update with multiselects
- add PHP interface to parse interface messages for stewards and components
(shouldn't be a subtask of this task):
- add tags column to table
- change title to include the focus area
Derived Requirement
Implement volunteer-facing filters on the Community Wishlist page that allow users to narrow down visible wishes by Tag, Status, and Focus Area.
The system should support multi-select filters, dynamically update the wishlist table when filters are applied, and allow users to share filtered views via URL links (preserving selected filters).
When a user opens a shared link containing filters, the same filter view should automatically be applied on load.
Additionally, ensure the filter form fields are grouped logically (accordion style), the API supports filtered wish queries, and the PHP interface properly parses localized interface messages for filter components.
Test Steps
Test Case 1: Verify filter by Tag
- Navigate to the Community Wishlist page.
- Expand the filter accordion and select a specific Tag (e.g., “UX Improvement”).
- ✅❓❌⬜ AC1: Confirm that the displayed wishes are filtered to show only those tagged with the selected tag.
Test Case 2: Verify filter by Status
- Open the filter accordion and select a Status (e.g., “In Progress”).
- ✅❓❌⬜ AC2: Confirm that only wishes with the selected status appear in the table.
Test Case 3: Verify filter by Focus Area
- Open the filter accordion and select a Focus Area (e.g., “Accessibility”).
- ✅❓❌⬜ AC3: Confirm that only wishes within the selected Focus Area are displayed.
Test Case 4: Verify multi-select filter functionality
- Apply multiple filters (e.g., Tag = “UI”, Status = “Open”, Focus Area = “Performance”).
- ✅❓❌⬜ AC4: Confirm that only wishes matching all selected criteria appear in the list.
Test Case 5: Verify filter persistence via shared URL
- After applying filters, copy the URL from the browser address bar.
- Open the same URL in a new browser tab or share it with another user.
- ✅❓❌⬜ AC5: Confirm that the same filters are pre-applied and the same filtered results are displayed on load.
Test Case 6: Verify removal of filters restores full wish list
- Clear all applied filters using the “Reset” or “Clear Filters” option.
- ✅❓❌⬜ AC6: Confirm that the full, unfiltered list of wishes is displayed again.
Test Case 7: Verify UI grouping (accordion structure)
- Observe the filter interface on the page.
- ✅❓❌⬜ AC7: Confirm that the filter categories (Tag, Status, Focus Area) are grouped in an accordion layout that can expand or collapse.
Test Case 8: Verify API call behavior
- Open the browser developer tools and monitor the network requests when filters are applied.
- ✅❓❌⬜ AC8: Confirm that the API call includes the selected filter parameters and returns filtered results.
Test Case 9: Verify translation and interface message handling
- Switch the interface language (e.g., to French or Hebrew).
- ✅❓❌⬜ AC9: Confirm that all filter labels and category names are properly localized based on the selected language.
Test Case 10: Regression check – verify wishlist table updates without full page reload
- Apply or remove a filter.
- ✅❓❌⬜ AC10: Confirm that only the wishlist content updates dynamically without reloading the entire page.
QA Results - Meta Beta
| AC | Status | Details |
|---|---|---|
| 1 | ✅ | T399514#11274831 |
| 2 | ✅ | T399514#11274831 |
| 3 | ✅ | T399514#11279500 |
| 4 | ✅ | T399514#11274831 |
| 5 | ⬜ | T399514#11279500 |
| 6 | ✅ | T399514#11274831 |
| 7 | ✅ | T399514#11274831 |
| 8 | ✅ | T399514#11274831 |
| 9 | ⬜ | T399514#11279500 |
| 10 | ✅ | T399514#11279500 |
