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]

Reply via email to