From 271254037717dc15e0208b3d945087676dad058a Mon Sep 17 00:00:00 2001 From: Saleem Latif Date: Thu, 13 Jul 2023 14:28:57 +0500 Subject: [PATCH] fix: Filter jobs based on job source attribute. Job in algolia either originate from course skills data or industry skills data. We want to ignore jobs that ignore from industry skills data at some places on the UI. This PR takes care of that. --- src/components/my-career/SearchJobRole.jsx | 8 ++++++-- src/components/search/data/hooks.js | 2 +- src/components/skills-quiz/SearchJobCard.jsx | 2 ++ src/components/skills-quiz/constants.js | 8 ++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/components/my-career/SearchJobRole.jsx b/src/components/my-career/SearchJobRole.jsx index edf720405b..e3f8b63359 100644 --- a/src/components/my-career/SearchJobRole.jsx +++ b/src/components/my-career/SearchJobRole.jsx @@ -2,7 +2,7 @@ import React, { useContext, useState } from 'react'; import PropTypes from 'prop-types'; import { getConfig } from '@edx/frontend-platform/config'; import { logError } from '@edx/frontend-platform/logging'; -import { InstantSearch } from 'react-instantsearch-dom'; +import { Configure, InstantSearch } from 'react-instantsearch-dom'; import { SearchContext, deleteRefinementAction } from '@edx/frontend-enterprise-catalog-search'; import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; import FacetListRefinement from '@edx/frontend-enterprise-catalog-search/FacetListRefinement'; @@ -10,7 +10,7 @@ import { camelCaseObject } from '@edx/frontend-platform/utils'; import { Button, Form, StatefulButton, } from '@edx/paragon'; -import { CURRENT_JOB_FACET } from '../skills-quiz/constants'; +import { CURRENT_JOB_FACET , JOB_FILTERS } from '../skills-quiz/constants'; import { patchProfile, fetchJobDetailsFromAlgolia } from './data/service'; import { CURRENT_JOB_PROFILE_FIELD_NAME, SAVE_BUTTON_LABELS } from './data/constants'; import { useAlgoliaSearch } from '../../utils/hooks'; @@ -90,6 +90,10 @@ const SearchJobRole = (props) => { searchClient={searchClient} >

Search for your job role

+ { const { refinements } = useContext(SearchContext); @@ -37,6 +38,7 @@ const SearchJobCard = ({ index }) => { async function fetchJobs() { setIsLoading(true); const { hits } = await index.search('', { + filters: JOB_FILTERS.JOB_SOURCE_COURSE_SKILL, facetFilters: [ jobsToFetch, ], diff --git a/src/components/skills-quiz/constants.js b/src/components/skills-quiz/constants.js index da73e9430d..18094a2779 100644 --- a/src/components/skills-quiz/constants.js +++ b/src/components/skills-quiz/constants.js @@ -66,3 +66,11 @@ export const HITS_PER_PAGE = 500; export const LOADING_NO_OF_CARDS = 9; export const JOB_DESCRIPTION_DISCLAIMER = 'This job description has been created by an artificial intelligence, and should be reviewed carefully.'; + +export const JOB_SOURCE_COURSE_SKILL = 'course_skill'; +export const JOB_SOURCE_INDUSTRY = 'industry'; + +export const JOB_FILTERS = { + JOB_SOURCE_COURSE_SKILL: `job_sources:${JOB_SOURCE_COURSE_SKILL}`, + JOB_SOURCE_INDUSTRY: `job_sources:${JOB_SOURCE_INDUSTRY}`, +};