From 9dac51b62e141db38ed8ec9b1c670eb8056a6332 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Thu, 11 Sep 2025 09:03:49 +0200 Subject: [PATCH] add LDDA purged property Fixes https://github.com/galaxyproject/galaxy/issues/20894 --- lib/galaxy/model/__init__.py | 5 +++++ lib/galaxy/model/store/__init__.py | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index ca16ab825d8..53b434cddeb 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -6276,6 +6276,11 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, Serializable): self.library_dataset = library_dataset self.user = user + @property + def purged(self): + # For uniformity with HistoryDatasetAssociation + return self.dataset and self.dataset.purged + def to_history_dataset_association( self, target_history, parent_id=None, add_to_history=False, visible=None, commit=True ): diff --git a/lib/galaxy/model/store/__init__.py b/lib/galaxy/model/store/__init__.py index 8c19cb8deaf..43753098bf1 100644 --- a/lib/galaxy/model/store/__init__.py +++ b/lib/galaxy/model/store/__init__.py @@ -651,7 +651,9 @@ class ModelImportStore(metaclass=abc.ABCMeta): if dataset_state == dataset_instance.states.DEFERRED: dataset_instance.state = dataset_instance.states.DEFERRED dataset_instance.deleted = False - dataset_instance.purged = False + if isinstance(dataset_instance, model.HistoryDatasetAssociation): + dataset_instance.purged = False + assert dataset_instance.dataset dataset_instance.dataset.deleted = False dataset_instance.dataset.purged = False elif ( @@ -666,7 +668,9 @@ class ModelImportStore(metaclass=abc.ABCMeta): dataset_instance.state = target_state deleted = is_discarded and (discarded_data == ImportDiscardedDataType.FORBID) dataset_instance.deleted = deleted - dataset_instance.purged = deleted + if isinstance(dataset_instance, model.HistoryDatasetAssociation): + dataset_instance.purged = deleted + assert dataset_instance.dataset dataset_instance.dataset.state = target_state dataset_instance.dataset.deleted = deleted dataset_instance.dataset.purged = deleted