diff --git a/airflow/models/dag.py b/airflow/models/dag.py index ba14c7b519982..7adfdc45898df 100644 --- a/airflow/models/dag.py +++ b/airflow/models/dag.py @@ -200,13 +200,16 @@ def get_last_dagrun(dag_id, session, include_externally_triggered=False): return query.first() -def get_dataset_triggered_next_run_info(dag_ids: list[str], *, session: Session) -> dict[str, str]: +def get_dataset_triggered_next_run_info(dag_ids: list[str], *, session: Session) -> dict[str, dict[str, int]]: """ Given a list of dag_ids, get string representing how close any that are dataset triggered are their next run, e.g. "1 of 2 datasets updated" """ return { - x.dag_id: f"{x.ready} of {x.total} datasets updated" + x.dag_id: { + "ready": x.ready, + "total": x.total, + } for x in session.query( DagScheduleDatasetReference.dag_id, func.count().label("total"), @@ -3416,7 +3419,7 @@ def calculate_dagrun_date_fields( ) @provide_session - def get_dataset_triggered_next_run_info(self, *, session=NEW_SESSION) -> str | None: + def get_dataset_triggered_next_run_info(self, *, session=NEW_SESSION) -> dict[str, int] | None: if self.schedule_interval != "Dataset": return None return get_dataset_triggered_next_run_info([self.dag_id], session=session)[self.dag_id] diff --git a/airflow/www/templates/airflow/dags.html b/airflow/www/templates/airflow/dags.html index 0884a06c179fb..c675b4a05aa0a 100644 --- a/airflow/www/templates/airflow/dags.html +++ b/airflow/www/templates/airflow/dags.html @@ -308,7 +308,9 @@