From 7876ebed97694ef59a87bc324cf72ddf255862db Mon Sep 17 00:00:00 2001 From: Matthias Bernt Date: Wed, 23 Oct 2024 18:43:10 +0200 Subject: [PATCH 01/28] quota: do not complain on no-change of default also no message --- lib/galaxy/managers/quotas.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/galaxy/managers/quotas.py b/lib/galaxy/managers/quotas.py index 8b91b94a94a8..3c7c6e361b43 100644 --- a/lib/galaxy/managers/quotas.py +++ b/lib/galaxy/managers/quotas.py @@ -184,27 +184,25 @@ def set_quota_default(self, quota, params) -> str: if params.default != "no": self.quota_agent.set_default_quota(params.default, quota) message = f"Quota '{quota.name}' is now the default for {params.default} users." + elif quota.default: + message = f"Quota '{quota.name}' is no longer the default for {quota.default[0].type} users." + for dqa in quota.default: + self.sa_session.delete(dqa) + with transaction(self.sa_session): + self.sa_session.commit() else: - if quota.default: - message = f"Quota '{quota.name}' is no longer the default for {quota.default[0].type} users." - for dqa in quota.default: - self.sa_session.delete(dqa) - with transaction(self.sa_session): - self.sa_session.commit() - else: - message = f"Quota '{quota.name}' is not a default." + message = "" return message def unset_quota_default(self, quota, params=None) -> str: - if not quota.default: - raise ActionInputError(f"Quota '{quota.name}' is not a default.") - else: + message = "" + if quota.default: message = f"Quota '{quota.name}' is no longer the default for {quota.default[0].type} users." for dqa in quota.default: self.sa_session.delete(dqa) with transaction(self.sa_session): self.sa_session.commit() - return message + return message def delete_quota(self, quota, params=None) -> str: quotas = util.listify(quota) From 2666c2c0b00c1a7126cadf7f13f422f61fca0386 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Sat, 7 Dec 2024 20:57:56 +0000 Subject: [PATCH 02/28] Prefer our package index server when running tests with tox that install dependencies from requirements.txt files. Workaround for https://github.com/astral-sh/uv/issues/7496 . --- tox.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tox.ini b/tox.ini index bf7909a66f1c..ab1153917d2e 100644 --- a/tox.ini +++ b/tox.ini @@ -46,6 +46,8 @@ setenv = first_startup: GALAXY_CONFIG_DATABASE_AUTO_MIGRATE=true mulled: marker=external_dependency_management mulled,unit: GALAXY_VIRTUAL_ENV={envdir} + mypy,test_galaxy_packages,test_galaxy_packages_for_pulsar: PIP_INDEX_URL=https://wheels.galaxyproject.org/simple + mypy,test_galaxy_packages,test_galaxy_packages_for_pulsar: PIP_EXTRA_INDEX_URL=https://pypi.python.org/simple unit: GALAXY_ENABLE_BETA_COMPRESSED_GENBANK_SNIFFING=1 unit: marker=not external_dependency_management deps = From 9220710a8255e9375eb874abfe71d48c77e8238b Mon Sep 17 00:00:00 2001 From: davelopez <46503462+davelopez@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:47:30 +0100 Subject: [PATCH 03/28] Fix multiselect being clipped by ToolForm header --- client/src/style/scss/multiselect.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/src/style/scss/multiselect.scss b/client/src/style/scss/multiselect.scss index 05b4b3961220..55b70ab4f24c 100644 --- a/client/src/style/scss/multiselect.scss +++ b/client/src/style/scss/multiselect.scss @@ -95,3 +95,7 @@ } } } + +.multiselect--active { + z-index: 1500; // Should be on top of everything +} From f06988107f0eb652578bc6601eff0ca701df20fa Mon Sep 17 00:00:00 2001 From: davelopez <46503462+davelopez@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:59:29 +0100 Subject: [PATCH 04/28] Adjust modal height to accommodate selector in history operations --- .../CurrentHistory/HistoryOperations/SelectionOperations.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue b/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue index 59076e8063af..c723da9cb146 100644 --- a/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue +++ b/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue @@ -402,5 +402,6 @@ export default { From 69f2c18febe449c9eb83fc213b41d8f18437918a Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 11 Dec 2024 12:39:52 +0100 Subject: [PATCH 05/28] Fix import of previously-deleted TRS workflow By returning latest, non-deleted workflow in `get_workflow_by_trs_id_and_version`. Fixes https://github.com/galaxyproject/galaxy/issues/19263 --- lib/galaxy/managers/workflows.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/managers/workflows.py b/lib/galaxy/managers/workflows.py index 20354c029198..c55d64067370 100644 --- a/lib/galaxy/managers/workflows.py +++ b/lib/galaxy/managers/workflows.py @@ -2083,6 +2083,7 @@ def to_json(column, keys: List[str]): .join(model.Workflow, model.Workflow.id == model.StoredWorkflow.latest_workflow_id) .filter( and_( + model.StoredWorkflow.deleted == false(), to_json(model.Workflow.source_metadata, ["trs_tool_id"]) == trs_id, to_json(model.Workflow.source_metadata, ["trs_version_id"]) == trs_version, ) @@ -2094,7 +2095,7 @@ def to_json(column, keys: List[str]): ) else: stmnt = stmnt.filter(model.StoredWorkflow.importable == true()) - return sa_session.execute(stmnt).scalar() + return sa_session.execute(stmnt.order_by(model.StoredWorkflow.id.desc()).limit(1)).scalar() class RefactorRequest(RefactorActions): From 722b7c407fa3678f0f38b7cd7e7a546efdca9b86 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 11 Dec 2024 12:55:59 +0100 Subject: [PATCH 06/28] Don't show published workflows in workflow activity of workflow editor If we want to do this we need to separate owned and published, then make a new copy or reference as we insert the public workflow. As it stands you won't be finding your own workflows, since the public workflows are far more numerous then any one user's workflows. Fixes https://github.com/galaxyproject/galaxy/issues/19265 --- client/src/components/Panels/WorkflowPanel.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/Panels/WorkflowPanel.vue b/client/src/components/Panels/WorkflowPanel.vue index d5e56f332d5c..b16b1cf1d16b 100644 --- a/client/src/components/Panels/WorkflowPanel.vue +++ b/client/src/components/Panels/WorkflowPanel.vue @@ -52,7 +52,7 @@ const loadWorkflowsOptions = { sortBy: "update_time", sortDesc: true, limit: 20, - showPublished: true, + showPublished: false, skipStepCounts: false, } as const; From 151612c2c2bd5582dc09fa8fe084945cf986bc32 Mon Sep 17 00:00:00 2001 From: davelopez <46503462+davelopez@users.noreply.github.com> Date: Wed, 11 Dec 2024 19:46:23 +0100 Subject: [PATCH 07/28] Use min-height for selector accommodation --- .../CurrentHistory/HistoryOperations/SelectionOperations.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue b/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue index c723da9cb146..7873e6c4bb2c 100644 --- a/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue +++ b/client/src/components/History/CurrentHistory/HistoryOperations/SelectionOperations.vue @@ -402,6 +402,6 @@ export default { From f2eca1b5534015db4f16f7401eb58aeebcf357bd Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Wed, 11 Dec 2024 12:59:54 -0500 Subject: [PATCH 08/28] Fix activity-bar-id handling --- client/src/components/ActivityBar/ActivityBar.vue | 3 +++ client/src/components/ActivityBar/Items/InteractiveItem.vue | 5 +++-- client/src/components/ActivityBar/Items/NotificationItem.vue | 3 ++- client/src/components/ActivityBar/Items/UploadItem.vue | 3 ++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/client/src/components/ActivityBar/ActivityBar.vue b/client/src/components/ActivityBar/ActivityBar.vue index aee942c40ee9..dd2f0bbffc09 100644 --- a/client/src/components/ActivityBar/ActivityBar.vue +++ b/client/src/components/ActivityBar/ActivityBar.vue @@ -230,6 +230,7 @@ defineExpose({ v-if="activity.id === 'upload'" :id="`${activity.id}`" :key="activity.id" + :activity-bar-id="props.activityBarId" :icon="activity.icon" :title="activity.title" :tooltip="activity.tooltip" /> @@ -237,6 +238,7 @@ defineExpose({ v-else-if="activity.to && activity.id === 'interactivetools'" :id="`${activity.id}`" :key="activity.id" + :activity-bar-id="props.activityBarId" :icon="activity.icon" :is-active="isActiveRoute(activity.to)" :title="activity.title" @@ -274,6 +276,7 @@ defineExpose({ (); @@ -27,7 +28,7 @@ const emit = defineEmits<{ const tooltip = computed(() => totalCount.value === 1 - ? `You currently have 1 active interactive tool` + ? "You currently have 1 active interactive tool" : `You currently have ${totalCount.value} active interactive tools` ); @@ -36,7 +37,7 @@ const tooltip = computed(() =>