v-pat opened a new pull request, #72575: URL: https://github.com/apache/airflow/pull/72575
closes: #72281 Add a **Has Events** filter to the Assets list page. ## What changes **API**: adds a boolean `has_events` query parameter to the UI assets endpoint that filters assets having at least one `AssetEvent`: - `has_events=true` → assets with at least one event - `has_events=false` → assets with no events - parameter absent → all assets (unchanged behaviour) The implementation mirrors the existing `_HasAssetScheduleFilter` precedent in `api_fastapi/common/parameters.py`, filtering `AssetModel.id` against a distinct subquery of `AssetEvent.asset_id`. A subquery is used rather than a null-check on the outer-joined `last_asset_event_timestamp` so it does not depend on the join aliasing. **UI**: adds a SELECT (Yes/No) filter control on the Assets list, held in the URL so a filtered view is shareable and survives reloads. A select (rather than a checkbox) is used so an unset filter is distinct from `false`, matching the existing `FAVORITE`/`MISSED` filter pattern. - `searchParams.ts`, `useFiltersHandler.ts`, `filterConfigs.tsx`, `AssetsList.tsx`, and the `assets:filters` translation namespace. **Generated**: OpenAPI spec (`_private_ui.yaml`) and UI client (`openapi-gen/`) regenerated via the codegen tooling — not hand-edited. ## Tests Added to `airflow-core/tests/unit/api_fastapi/core_api/routes/ui/test_assets.py` covering all three states (`true`, `false`, parameter absent), with an asset that has events and one that has none. ## Verification - `breeze testing core-tests airflow-core/tests/unit/api_fastapi/core_api/routes/ui/test_assets.py` → 35 passed - `pnpm tsc` and UI lint → clean - prek hooks pass for the changed files (ruff, mypy, black, i18n checks) cc @jroachgolf84 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
