Unreleased
- perf: Added caching to XBlockSkillsViewSet list endpoint to improve performance and reduce redundant database queries
- perf: Introduced db_index on the created and is_blacklisted fields in XBlockSkillData model for performance improvements of xblocks endpoint
- feat: Added a search feature on skill field in CourseSkills
- feat: Added safeguard for nulls before saving job description
- feat: Replaced client for ai chat
- feat: Skill validation can be disbaled for a course or an organization
- feat: Optimized finalize_xblockskill_tags command for memory via chunking
- feat: Modify prefetch related to select related for whitelisted product skills.
- feat: Removed direct usages of JobSkills and IndustryJobSkills objects in favour of whitelisted or blacklisted query sets.
- feat: Added the ability to blacklist job-skill relationship.
- perf: improve xblock skills api performance.
- fix: chunked data at 50000 byte in EMSI client for xblock-skills job
- feat: add prefetch related to the whitelisted product skills
- feat: Added the ability to ignore unrelated jobs from being indexed on algolia.
- fix: Added missing comma in algolia constants that was masking the b2c_opt_in attribute.
- fix: Fixed some implementation issues in job recommendation logic.
- perf: Further performance enhancements for the algolia index command.
- perf: Performance enhancements in job recomendations calculation.
- feat: reuse tags from similar product for xblock skills.
- fix: remove duplicates from xblocks skills api.
- refactor: update logic to mark course run complete in refresh_xblock_skills command.
- perf: memory optimisation for job recommendations.
- perf: pandas dataframe loading memory optimisation
- fix: Use autocomplete field for selecting job in B2CJobAllowlist.
- feat: Added a new field job_sources in job's algolia index.
- feat: change B2C Job Allowlist to admin config.
- feat: Added pagination in JobHolderUsernamesAPIView API.
- feat: Added JobHolderUsernamesAPIView to fetch current job of learners by LMS.
- feat: Added CourseRunMetadataProvider to fetch course run info.
- feat: Added CourseRunXBlockSkillsTracker model to track xblock tagging under courses.
- Switch from
edx-sphinx-theme
tosphinx-book-theme
since the former is deprecated. See https://github.com/openedx/edx-sphinx-theme/issues/184 for more details.
- fix: Update the attributesForFaceting list to include the b2c_opt_in field
- feat: Added a new attribute (b2c_opt_in) to the JobSerializer
- feat: generate job description only if job has name and description is empty
- feat: Generate ai based job descriptions
- feat: making sub_category skills to job specific in career tab.
- Added the ability to remove unused jobs from django admin.
- fix: Do not create a job if all of the releated skills does not exist in database
- fix: remove validations on skills in skill quiz
- Index industry data with skills in Algolia.
- Added handler for openedx-events: XBLOCK_SKILL_VERIFIED.
- Enabled ordering in SkillsQuizViewSet.
- Added logic to avoid 429 errors and handle these errors if they still appear while communicating with LightCast API.
- Added similar jobs list in jobs algolia jobs index.
- openedx/openedx-events#143 merged, so adding back changes reverted in version 1.32.1
- Added refresh_xblock_skills command to update skills for xblocks.
- Added handlers for openedx-events: XBLOCK_DELETED, XBLOCK_PUBLISHED and XBLOCK_PUBLISHED.
- Added finalize_xblockskill_tags to mark skills as verified or blacklisted.
- Added log for EMSI client access token and raising error for error status.
- updated requirements.
- Reverts changes depending on openedx-events till upstream MR is merged. openedx/openedx-events#143
- Added refresh_xblock_skills command to update skills for xblocks.
- Added ACCESS_TOKEN_EXPIRY_THRESHOLD_IN_SECONDS in EMSI client.
- Handle repeating industry names in algolia index and test
- Added handlers for openedx-events: XBLOCK_DELETED, XBLOCK_PUBLISHED and XBLOCK_PUBLISHED.
- Added xblocks to skill API.
- Added xblocks API.
- Added industry_names facet in Algolia Jobs Index.
- Added XBlockSkills and XBlockSkillData models.
- Added related celery tasks, abstract provider, signals and commands.
- Added management command to verify xblockskill tags.
- Added industry_names field in Algolia serializer.
- Added JobHolderUsernamesAPIView which returns a list of 100 usernames from SkillsQuiz.
- Updated refresh_job_skills command to save industry relation with job and skills.
- Removed industry foreign key from JobSkills table and create a new table IndustryJobSkill.
- Added relation between JobSkill and Industry Table.
- Added JobTopSkillCategoriesAPIView.
- Added a new model to store industry data using NAICS2 codes.
- Do no concatenate if short_description is `None.
- Fix CourseSkills update_or_create call.
- Expand course skills tagging to include title, short_description and full_description.
- Fixes product type issue by using ProductTypes choices.
- Updated utils to support program skills.
- Added support to filter Skills by names.
- Register Program associated models on Admin.
- Change verbose name for RefreshProgramSkillsConfig model
- Added id field in JobSerializer for Algolia.
- Added a new model for storing user response for skills quiz.
- Added new REST endpoints for performing CRUD operations on skills quiz.
- feat: add task to update program skills through EMSI api
- feat: add caching to
utils.get_whitelisted_serialized_skills()
- feat: add provider and validator for Programs
- feat: add program skill model
- feat: Update SkillSerializer to include Category and Subcategory details.
- feat: use program update signal to call EMSI API
- refactor: Remove EdxRestApiClient usage in taxonomy-connector
- Added handling for None values for median salary from EMSI.
- Fixed error causes by null values returned by EMSI API.
- Fixed API 429 error and updated admin list display for skills for better usability.
- Added category and subcategory for skill.
- fix: Add limit to EMSI API calls
- fix: Check the course description length after encoding
- feat: Added Support for large size course description translation
- fix: Made the median_posting_duration in JobPosting Nullable to avoid errors on jenkins.
- chore: Removed Django22, 30 and 31 support and added support for Django40
- feat: Added Support for course description translation
- feat: Add Translation model
- fix: Make job names unique and handle exception where ever job is created/updated
- Fixed an issue that was causing an error while index jobs data to algolia.
- Decreased skills query chunk_size from 2000 to 50 to fetch more jobs.
- Added managment command and related code to index jobs data to algolia.
- Added Skill, Job and JobPostings viewsets.
- Add job posting information in utility method get_course_jobs.
- Add utility method get_course_jobs to return job associated with a course.
- Added support for django 3.1 and 3.2
- Added utility method to return serialized course skills.
- Fixed .rst issues in CHANGELOG.rst
- Mention currency in median salary field and add verbose name for models.
- Remove all the usages of old course_id field including the column definition in CourseSkills model.
- Replace the usages of old course_id in CourseSkills with the new course_key field.
- Added a new field named course_key in CourseSkills model to deprecate and replace the old course_id field in future.
- Removed RefreshCourseSkill view.
- Handled edge cases in refresh_course_skills command.
- Updated logging structure for refresh_course_skills command.
- Added support for --all param in refresh_course_skills command to back populate data.
- Added populate_job_names command.
- Added description field in Skill model and update the refresh_course_skill command to save skill description.
- Pinning EMSI skills API version to 7.35
- Updated refresh_job_skill command to get jobs related only to skills that are in our system
- Updated refresh_job_postings command to get job_posting only related to job we already have in our system.
- Added constrains on the Job, Skill, JobPostings, CourseSkill and JobSkill table.
- Added migration to remove all previous taxonomy data.
- Added utility to chuck the queryset provided.
- Remove caching from EMSI API client.
- Added some utility functions for adding/removing course skills to/from blacklist.
- More logging.
- Improve logging.
- Added logs for signals and tasks.
- Added the ability to black list course skills.
- Added JobSkills.skill column and removed JobSkills.name column.
- Added course update signal and handler to trigger the celery task
- Added celery task to update course skills
- Refactored refresh_course_skills management command
- Fixed TypeError that pops up sometimes while communicating with the EMSI API.
- Updated the README description.
- Fixed travis issue related to PyPI upload.
- Fixed the bug where EMSI API was returning 404 for job posting data.
- Updating travis configuration.
- Updating jobs-salary data's query.
- Updating skills-jobs data's query.
- Renamed main package name from taxonomy-service to taxonomy-connector.
- Added package data, so that migrations and python packages are included in the final build.
- Added Providers and Validators for integrations and upgraded to the first stable release.
- Enable Travis integration
- Added Basic skeleton and clients to call EMSI endpoint.