diff --git a/lib/galaxy/celery/tasks.py b/lib/galaxy/celery/tasks.py index 61833ba2be6..5e48a1e7b12 100644 --- a/lib/galaxy/celery/tasks.py +++ b/lib/galaxy/celery/tasks.py @@ -46,6 +46,7 @@ from galaxy.model import ( Job, User, ) +from galaxy.model.orm.now import now from galaxy.model.scoped_session import galaxy_scoped_session from galaxy.objectstore import BaseObjectStore from galaxy.objectstore.caching import check_caches @@ -168,6 +169,9 @@ def purge_history_datasets( user = history.user if user: user.calculate_and_set_disk_usage(object_store) + if not request.preserve_owner_update_time: + user.update_time = now() + sa_session.commit() # Remove underlying dataset files from object store dataset_manager.purge_datasets(PurgeDatasetsTaskRequest(dataset_ids=dataset_ids)) diff --git a/lib/galaxy/managers/histories.py b/lib/galaxy/managers/histories.py index 053d456e511..c357aef1af0 100644 --- a/lib/galaxy/managers/histories.py +++ b/lib/galaxy/managers/histories.py @@ -296,7 +296,11 @@ class HistoryManager(sharable.SharableModelManager[model.History], deletable.Pur if self.app.config.enable_celery_tasks: from galaxy.celery.tasks import purge_history_datasets - request = PurgeHistoryDatasetsTaskRequest(history_id=item.id) + preserve_owner_update_time = kwargs.get("preserve_owner_update_time", False) + request = PurgeHistoryDatasetsTaskRequest( + history_id=item.id, + preserve_owner_update_time=preserve_owner_update_time, + ) user = item.user result = purge_history_datasets.delay(request=request, task_user_id=user.id if user else None) else: diff --git a/lib/galaxy/schema/tasks.py b/lib/galaxy/schema/tasks.py index 4ae0e7f10dc..8fd84f7fd84 100644 --- a/lib/galaxy/schema/tasks.py +++ b/lib/galaxy/schema/tasks.py @@ -141,6 +141,7 @@ class PurgeDatasetsTaskRequest(Model): class PurgeHistoryDatasetsTaskRequest(Model): history_id: int + preserve_owner_update_time: bool = False class TaskState(str, Enum):