diff --git a/packages/discovery-provider/src/tasks/entity_manager/entities/playlist.py b/packages/discovery-provider/src/tasks/entity_manager/entities/playlist.py index 6a9ae67d2d9..34e8b934c32 100644 --- a/packages/discovery-provider/src/tasks/entity_manager/entities/playlist.py +++ b/packages/discovery-provider/src/tasks/entity_manager/entities/playlist.py @@ -677,7 +677,10 @@ def populate_playlist_record_metadata( # Update the playlist_record when the corresponding field exists # in playlist_metadata if key == "playlist_contents": - if not playlist_metadata.get(key): + # Use `is None` rather than a truthiness check so that an explicit + # empty list (the user removing the last track) is applied instead + # of being silently treated as "field omitted". + if playlist_metadata.get(key) is None: continue playlist_record.playlist_contents = process_playlist_contents( playlist_record, diff --git a/packages/web/src/components/edit-collection/EditCollectionForm.tsx b/packages/web/src/components/edit-collection/EditCollectionForm.tsx index e1d9f4a0461..932eb3dbb3c 100644 --- a/packages/web/src/components/edit-collection/EditCollectionForm.tsx +++ b/packages/web/src/components/edit-collection/EditCollectionForm.tsx @@ -195,7 +195,7 @@ export const EditCollectionForm = (props: EditCollectionFormProps) => { ) : null} - + {isUpload ? : } {playlist_id ? ( <> diff --git a/packages/web/src/components/edit/fields/CollectionTrackFieldArray.tsx b/packages/web/src/components/edit/fields/CollectionTrackFieldArray.tsx index dc187dbee54..248bfcc1673 100644 --- a/packages/web/src/components/edit/fields/CollectionTrackFieldArray.tsx +++ b/packages/web/src/components/edit/fields/CollectionTrackFieldArray.tsx @@ -66,7 +66,13 @@ const makeTrackKey = (track: TrackForUpload | TrackForEdit, index: number) => { return `${track.metadata.track_id}${suffix}` } -export const CollectionTrackFieldArray = () => { +type CollectionTrackFieldArrayProps = { + isUpload?: boolean +} + +export const CollectionTrackFieldArray = ({ + isUpload = false +}: CollectionTrackFieldArrayProps = {}) => { const [{ value: tracks }] = useField<(TrackForUpload | TrackForEdit)[]>('tracks') @@ -104,7 +110,7 @@ export const CollectionTrackFieldArray = () => { )}