Skip to content

Add NONE support for filter logic operators#2933

Merged
gantoine merged 2 commits intomasterfrom
none-filter-support
Jan 23, 2026
Merged

Add NONE support for filter logic operators#2933
gantoine merged 2 commits intomasterfrom
none-filter-support

Conversation

@gantoine
Copy link
Copy Markdown
Member

@gantoine gantoine commented Jan 22, 2026

Description
Explain the changes or enhancements you are proposing with this pull request.

This PR adds support for a 'none' (NOT) logic operator to various filters in the ROMs endpoint.

Checklist
Please check all that apply.

  • I've tested the changes locally
  • I've updated relevant comments
  • I've assigned reviewers for this PR
  • I've added unit tests that cover the changes

Screenshots (if applicable)

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @gantoine, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the filtering capabilities of the application by introducing a 'none' (NOT) logic operator. This allows users to define filters that exclude items matching specific criteria, providing much more flexible and precise search results. The changes are comprehensive, covering API endpoint descriptions, backend query logic, frontend UI components, state management, and smart collection creation, ensuring a consistent and robust implementation of this new feature.

Highlights

  • New 'NONE' Filter Logic Operator: Introduced a 'none' (NOT) logic operator for various filters (genres, franchises, collections, companies, age ratings, regions, languages, statuses, player counts) in both the backend API and frontend UI, allowing users to exclude items based on selected criteria.
  • Backend Filter Logic Enhancement: Modified the backend roms_handler.py to accept a match_none parameter in filter functions, applying a NOT condition to queries when this logic is selected.
  • Frontend Filter UI and Logic Updates: Updated the frontend filter drawer components to include the 'none' option, adjusted the conditions for applying logic operators from length > 1 to length > 0, and refined the UI icons for filter logic selection.
  • Smart Collection Filter Criteria: Enhanced the 'Create Smart Collection' dialog to correctly incorporate the new filter logic operators and to include the current platform in filter criteria when creating smart collections.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 22, 2026

Test Results

703 tests  ±0   702 ✅ ±0   1m 22s ⏱️ -6s
  1 suites ±0     1 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit b49522e. ± Comparison against base commit 12c1572.

♻️ This comment has been updated with latest results.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for a 'none' (NOT) logic operator to various filters in the ROMs endpoint. The changes are well-implemented across the backend and frontend, including API definitions, database handlers, and UI components.

I've found a couple of issues in the backend:

  • A leftover debug print statement.
  • The new 'none' logic is not implemented for the player_counts filter.

Please see my specific comments for details and suggestions.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 22, 2026

☂️ Python Coverage

current status: ✅

Overall Coverage

Lines Covered Coverage Threshold Status
12269 7963 65% 0% 🟢

New Files

No new covered files...

Modified Files

File Coverage Status
backend/endpoints/rom.py 45% 🟢
backend/handler/database/roms_handler.py 55% 🟢
TOTAL 50% 🟢

updated for commit: b49522e by action🐍

@gantoine gantoine requested a review from zurdi15 January 23, 2026 02:54
@gantoine gantoine marked this pull request as ready for review January 23, 2026 02:54
@gantoine gantoine merged commit bbab9a3 into master Jan 23, 2026
9 checks passed
@gantoine gantoine deleted the none-filter-support branch January 23, 2026 13:35
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.

2 participants