From bf66009dadddd2410b140c2dd632404feb3efe39 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 5 Aug 2020 13:55:58 +0200 Subject: [PATCH] Don't display download link for optional, non-existant metadata files --- lib/galaxy/managers/datasets.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/galaxy/managers/datasets.py b/lib/galaxy/managers/datasets.py index 15f88f33b88..4c19ec966ef 100644 --- a/lib/galaxy/managers/datasets.py +++ b/lib/galaxy/managers/datasets.py @@ -523,12 +523,13 @@ class _UnflattenedMetadataDatasetAssociationSerializer(base.ModelSerializer, """ meta_files = [] for meta_type in dataset_assoc.metadata_file_types: - meta_files.append( - dict(file_type=meta_type, - download_url=self.url_for('history_contents_metadata_file', - history_id=self.app.security.encode_id(dataset_assoc.history_id), - history_content_id=self.app.security.encode_id(dataset_assoc.id), - metadata_file=meta_type))) + if getattr(dataset_assoc.metadata, meta_type, None): + meta_files.append( + dict(file_type=meta_type, + download_url=self.url_for('history_contents_metadata_file', + history_id=self.app.security.encode_id(dataset_assoc.history_id), + history_content_id=self.app.security.encode_id(dataset_assoc.id), + metadata_file=meta_type))) return meta_files def serialize_metadata(self, dataset_assoc, key, excluded=None, **context): @@ -554,6 +555,8 @@ class _UnflattenedMetadataDatasetAssociationSerializer(base.ModelSerializer, # If no value for metadata, look in datatype for metadata. elif val is None and hasattr(dataset_assoc.datatype, name): val = getattr(dataset_assoc.datatype, name) + if val is None and spec.get("optional"): + continue metadata[name] = val return metadata