Repository navigation
Add Filtering to External Resources on Toolkit Page #8558
Copy link
Copy link
Closed
Labels
Complexity: LargeHLC: SHomepage Launch Countdown Should HaveHomepage Launch Countdown Should HaveP-Feature: Toolkithttps://www.hackforla.org/toolkit/https://www.hackforla.org/toolkit/role: back end/devOpsTasks for back-end developersTasks for back-end developerssize: 2ptCan be done in 7-12 hoursCan be done in 7-12 hours
Milestone
Description
Prerequisite
- Be a member of Hack for LA. (There are no fees to join.) If you have not joined yet, please follow the steps on our Getting Started page and attend an onboarding session.
- Before you claim or start working on an issue, please make sure you have read our How to Contribute to Hack for LA Guide.
Overview
We need to add filtering functionality to the Toolkit page so that selected filters are applied to the External Resources cards in addition to the Guide Pages cards.
Details
Currently, the Toolkit page includes two types of cards:
- Guide Pages cards, e.g. 2FA Guide, Building a Survey Reporting Dashboard
- External Resources cards, e.g. Figma, GitHub
Filters are currently generated only from Guide Page card attributes and are applied only to Guide Page cards. This functionality should be preserved for the Guide Page cards, and expanded so External Resource cards can also be filtered by 'Practice Area' and 'Tools' selections. This issue requires the following changes:
- Update the External Resource card HTML to add a new "tools" data attribute in addition to the existing "practice area" attribute for storing card info, and add a new class to help JS querying these cards.
- Update the filter generation JS to include External Resource card attributes, and update the filtering to apply to the External Resource cards.
Action Items
- In
/assets/js/toolkit.js, examine theapplyFiltersandretrieveFilterCategoriesfunctions to understand how filters are currently generated and applied to the Guide Page cards. The following files will also be helpful to view to understand how the External Resource cards are created:includes/current-guides.htmldata/internal/toolkitresources.ymlincludes/guide-card.html
- In
current-guides.html, make the following changes:- External Resource card div elements should have an attribute
data-project-toolsalongside thedata-article-typeattribute.data-project-toolsshould be populated from thetoolslisted intoolkitresources.yml. - Each External Resource card div should have the class
resource-card.
- External Resource card div elements should have an attribute
- In
toolkit.js, edit theretrieveFilterCategoriesfunction to add Practice Area and Tools categories from External Resource cards to the filters list, using the attributes you added in the previous steps. - Edit the
applyFiltersfunction to filter the External Resources cards when a Practice Area or Tools filter is selected. The other filter categories Status, Source, and Contributors will not apply to External Resources, so if one of them is selected, all External Resource cards should be hidden. - Test that the filters work as expected to filter both Guide Cards and External Resource cards.
- Verify that the URL parameters are still updated when filters are selected and deselected.
- If it was necessary to make changes to other functions or files in the course of this issue, make note of these additional changes in your PR.
Resources/Instructions
- Toolkit Page: https://www.hackforla.org/toolkit/
- JS file containing filtering function: assets/js/toolkit.js
- HTML file template for toolkit cards: includes/current-guides.html
- YAML file with External Resource card data: data/internal/toolkitresources.yml
- HTML template for Guide Page cards: /includes/guide-card.html
- This issue initiated by: ER: Add filtering to External Resources on Toolkit page #8509
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Complexity: LargeHLC: SHomepage Launch Countdown Should HaveHomepage Launch Countdown Should HaveP-Feature: Toolkithttps://www.hackforla.org/toolkit/https://www.hackforla.org/toolkit/role: back end/devOpsTasks for back-end developersTasks for back-end developerssize: 2ptCan be done in 7-12 hoursCan be done in 7-12 hours
Type
Projects
- StatusShow more project fieldsDone
Activity
13 remaining items
Tomomi-K1 commentedon Sep 23, 2026
i. Availability: Weekday 10am - 7pm
ii. ETA: 9/29/2026
Tomomi-K1 commentedon Sep 25, 2026
@daras-cu I have a question, not sure who to ask. Currently External Resources are not included in the count ( take a look at under Tools in Filter section, we see Zoom (0)).
When we include the external resources, do we want to update these count also to include the external resource card data? I am assuming that's probably what we want but I wanted to confirm.
daras-cu commentedon Sep 26, 2026
@Tomomi-K1 yes, we do want to include the external resources in this count. If it ends up being overly complex to add that functionality as part of this issue, let me know and we can split it off into an additional issue.
Tomomi-K1 commentedon Sep 29, 2026
Thank you @daras-cu for the response! I will update the code to include the count 👍
Tomomi-K1 commentedon Sep 30, 2026
@daras-cu I have another question. Do we want to remove text "External Resources" when filter removes all resources cad like below? or in this issue I don't need to worry about that?
Tomomi-K1 commentedon Sep 30, 2026
Discussed in the dev meeting 9/29/2026 -> we can leave "External Resources" text even if resource cards are not shown due to filter.
Tomomi-K1 commentedon Oct 1, 2026
@daras-cu I found existing bug on filtering no result found message. It shows
undefined: Githubbut I believe the undefined supposed to be filter category name? I didn't fix that with my issue. If we need to make an issue let me know. I may need the instruction on how to make it tho 😄daras-cu commentedon Oct 2, 2026
@Tomomi-K1 good catch, we definitely need an issue to fix that. The first step is writing an ER, you can just fill in the ER template with the basic info about the problem and your screenshot. It can be pretty simple, one or two sentences explaining the problem and why it needs to be resolved. If you have any ideas about how to fix it, you can add them under "Potential solutions", but this is optional.
You can find some more info about the ER process in this comment
Tomomi-K1 commentedon Oct 3, 2026
@daras-cu I created a ER for the bug #8819 let me know if I need to update something!
daras-cu commentedon Oct 4, 2026
@Tomomi-K1 thanks for writing the ER, it looks good at first glance so I marked it ready for merge team. We will review it and let you know if it needs any changes.