Skip to content

add skills filter to the opportunity list - #936

Open
ivannissimrch wants to merge 2 commits into
developfrom
ivannissimrch/905-filter-opportunities-by-skills
Open

add skills filter to the opportunity list#936
ivannissimrch wants to merge 2 commits into
developfrom
ivannissimrch/905-filter-opportunities-by-skills

Conversation

@ivannissimrch

Copy link
Copy Markdown
Collaborator

Description

Adds a skills filter to the opportunity list, following the existing activity filter pattern.

This needs a backend change first. getOpportunityWhere has no skill branch. So the filter renders and reaches the URL. Still, nothing is filtered until that lands. filter.skill is already declared in QuerystringOpportunityFiltering and the list route already eager-loads deal.dealSkill.skill, so only the where-clause is missing. No SDK change needed.

I have the backend side working locally with a unit test, verified end-to-end against my own backend, but I could not open the BE PR. The pre-push hook runs the full test suite, and it does not pass on my machine: getDateObj expects day 11 and I get 10, and the onetimer test expects 2026-08-01, and I get 2026-07-31. Both are one day off because I am in UTC-5, and those tests assume a European time zone. swagger.test.ts also times out at 5s intermittently. None of them touch my change.

One more thing worth knowing. While adding the skill branch, I found a separate bug in the same function: language, district and activity all write the same deal key, and object spread replaces rather than merges on a repeated key, so combining two of them silently drops one. Measured: one activity alone returns 1, and that same activity plus a language that does not apply still returns 1 instead of 0. It is on develop now and unrelated to this feature.

And when you test this: the skills dropdown depends on /option returning skills. If an environment has no option rows with item_type='skill', the accordion renders empty. My local database had none until I seeded them.

Related Issues

Closes #905

Changes

  • skill added to OpportunityCardsFilter and defaultOpportunityCardsFilter
  • skillFilters in createOpportunityFilterItems, plus the selected-filters flat array
  • One more AccordionFilter in FiltersContent.tsx
  • URL serialize and deserialize, so the filter is shareable like the others
  • skills translation key in en and de

Screenshots / Demos

Screenshot from 2026-08-19 19-39-35

Checklist

  • WITHIN THE SCOPE OF AN ISSUE; No unnecessary files included
  • Tests added/updated
  • Documentation updated
  • CI passes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Filter opportunities by skills in the dashboard list view

1 participant