diff --git a/lib/galaxy/model/view/__init__.py b/lib/galaxy/model/view/__init__.py index b1336284b40..6546fce74b4 100644 --- a/lib/galaxy/model/view/__init__.py +++ b/lib/galaxy/model/view/__init__.py @@ -10,36 +10,36 @@ from .utils import View metadata = MetaData() +AGGREGATE_STATE_QUERY = """ +SELECT + hdca.id as hdca_id, + SUM(CASE WHEN state = 'new' THEN 1 ELSE 0 END) AS new, + SUM(CASE WHEN state = 'resubmitted' THEN 1 ELSE 0 END) AS resubmitted, + SUM(CASE WHEN state = 'waiting' THEN 1 ELSE 0 END) AS waiting, + SUM(CASE WHEN state = 'queued' THEN 1 ELSE 0 END) AS queued, + SUM(CASE WHEN state = 'running' THEN 1 ELSE 0 END) AS running, + SUM(CASE WHEN state = 'ok' THEN 1 ELSE 0 END) AS ok, + SUM(CASE WHEN state = 'error' THEN 1 ELSE 0 END) AS error, + SUM(CASE WHEN state = 'failed' THEN 1 ELSE 0 END) AS failed, + SUM(CASE WHEN state = 'paused' THEN 1 ELSE 0 END) AS paused, + SUM(CASE WHEN state = 'deleted' THEN 1 ELSE 0 END) AS deleted, + SUM(CASE WHEN state = 'deleted_new' THEN 1 ELSE 0 END) AS deleted_new, + SUM(CASE WHEN state = 'upload' THEN 1 ELSE 0 END) AS upload, + SUM(CASE WHEN job.id IS NOT NULL THEN 1 ELSE 0 END) AS all_jobs +FROM history_dataset_collection_association hdca +LEFT JOIN implicit_collection_jobs icj + ON icj.id = hdca.implicit_collection_jobs_id +LEFT JOIN implicit_collection_jobs_job_association icjja + ON icj.id = icjja.implicit_collection_jobs_id +LEFT JOIN job + ON icjja.job_id = job.id +GROUP BY hdca.id +""" + class HistoryDatasetCollectionJobStateSummary(View): - __view__ = text(""" - SELECT - hdca.id as hdca_id, - SUM(CASE WHEN state = 'new' THEN 1 ELSE 0 END) AS new, - SUM(CASE WHEN state = 'resubmitted' THEN 1 ELSE 0 END) AS resubmitted, - SUM(CASE WHEN state = 'waiting' THEN 1 ELSE 0 END) AS waiting, - SUM(CASE WHEN state = 'queued' THEN 1 ELSE 0 END) AS queued, - SUM(CASE WHEN state = 'running' THEN 1 ELSE 0 END) AS running, - SUM(CASE WHEN state = 'ok' THEN 1 ELSE 0 END) AS ok, - SUM(CASE WHEN state = 'error' THEN 1 ELSE 0 END) AS error, - SUM(CASE WHEN state = 'failed' THEN 1 ELSE 0 END) AS failed, - SUM(CASE WHEN state = 'paused' THEN 1 ELSE 0 END) AS paused, - SUM(CASE WHEN state = 'deleted' THEN 1 ELSE 0 END) AS deleted, - SUM(CASE WHEN state = 'deleted_new' THEN 1 ELSE 0 END) AS deleted_new, - SUM(CASE WHEN state = 'upload' THEN 1 ELSE 0 END) AS upload, - SUM(CASE WHEN job.id IS NOT NULL THEN 1 ELSE 0 END) AS all_jobs - FROM history_dataset_collection_association hdca - LEFT JOIN implicit_collection_jobs icj - ON icj.id = hdca.implicit_collection_jobs_id - LEFT JOIN implicit_collection_jobs_job_association icjja - ON icj.id = icjja.implicit_collection_jobs_id - LEFT JOIN job - ON icjja.job_id = job.id - GROUP BY hdca.id - """) - - __view__ = __view__.columns( + __view__ = text(AGGREGATE_STATE_QUERY).columns( column('hdca_id', Integer), column('new', Integer), column('resubmitted', Integer), diff --git a/lib/galaxy_ext/expressions/handle_job.py b/lib/galaxy_ext/expressions/handle_job.py index 0001520bb01..e84c454d170 100644 --- a/lib/galaxy_ext/expressions/handle_job.py +++ b/lib/galaxy_ext/expressions/handle_job.py @@ -16,7 +16,7 @@ warnings.filterwarnings("ignore", message=r"[\n.]DEPRECATION: Python 2", module= try: from cwltool import expression except ImportError: - expression = None + expression = None # type: ignore from galaxy.tools.expressions import evaluate