diff --git a/src/main/java/org/ecocean/Encounter.java b/src/main/java/org/ecocean/Encounter.java index fb1851f5be..98ee533244 100644 --- a/src/main/java/org/ecocean/Encounter.java +++ b/src/main/java/org/ecocean/Encounter.java @@ -3055,7 +3055,7 @@ public ArrayList getMedia() { for (Annotation ann : annotations) { if (ann == null) continue; // really weird that this happens sometimes MediaAsset ma = ann.getMediaAsset(); - if (ma != null) m.add(ma); + if ((ma != null) && !m.contains(ma)) m.add(ma); } return m; } diff --git a/src/test/resources/expected_search_export.csv b/src/test/resources/expected_search_export.csv index cccc55f59e..14e5fa6d49 100644 --- a/src/test/resources/expected_search_export.csv +++ b/src/test/resources/expected_search_export.csv @@ -1,5 +1,5 @@ -Encounter.catalogNumber,Name0.label,Name0.value,Occurrence.occurrenceID,Occurrence.sightingPlatform,Occurrence.fieldSurveyCode,Encounter.decimalLatitude,Encounter.decimalLongitude,Encounter.locationID,Encounter.verbatimLocality,Encounter.country,Encounter.depth,Encounter.dateInMilliseconds,Encounter.year,Encounter.month,Encounter.day,Encounter.hour,Encounter.minutes,Encounter.submitterOrganization,Encounter.submitterID,Encounter.recordedBy,Occurrence.groupComposition,Occurrence.groupBehavior,Occurrence.minGroupSizeEstimate,Occurrence.bestGroupSizeEstimate,Occurrence.maxGroupSizeEstimate,Occurrence.numAdults,Occurrence.numJuveniles,Occurrence.numCalves,Occurrence.initialCue,Occurrence.seaState,Occurrence.seaSurfaceTemp,Occurrence.swellHeight,Occurrence.visibilityIndex,Occurrence.effortCode,Occurrence.observer,Occurrence.transectName,Occurrence.transectBearing,Occurrence.distance,Occurrence.bearing,Occurrence.comments,Occurrence.humanActivityNearby,Encounter.patterningCode,Encounter.flukeType,Encounter.behavior,Encounter.groupRole,Encounter.sex,Encounter.lifeStage,Encounter.genus,Encounter.specificEpithet,Encounter.otherCatalogNumbers,Encounter.occurrenceRemarks,Encounter.mediaAsset0,Encounter.mediaAsset0.filePath,Encounter.mediaAsset0.keyword0,Encounter.mediaAsset0.keyword1,Encounter.mediaAsset1,Encounter.mediaAsset1.filePath,Encounter.mediaAsset1.keyword0,Encounter.mediaAsset1.keyword1 -155165eb-9938-4903-ae77-9795e76e6206,,,a1b2c3d4-e5f6-7890-abcd-ef1234567890,,,37.15414445923345,-6.730740044168456,,iberia,,,1746316800000,2025,5,4,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,juvenile,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,Field Study,,test_image.jpg,/tmp/test_image.jpg,Field Study, -460ce580-faad-4e87-b90f-44f20cfaa84d,Default,Individual_2,f981b20f-330a-4e52-bb0f-dd8d13f1e76a,,,37.15414445923345,-6.730740044168456,,iberia,,,1746230400000,2025,5,3,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,senior,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,,,test_image.jpg,/tmp/test_image.jpg,, -6dfdc8ce-9dc4-483b-aafa-2335c8db1361,Default,Individual_1,c2dbf187-ac3b-450f-9886-aa4e49073844,,,37.15414445923345,-6.730740044168456,,iberia,,,1746144000000,2025,5,2,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,adult,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,Field Study,,test_image.jpg,/tmp/test_image.jpg,Field Study, -2ff3ecf9-8e6d-486d-92da-73afa913cc94,Default,Individual_1,9cf5a4e7-4c81-466e-a788-8d976f869086,,,37.15414445923345,-6.730740044168456,,iberia,,,1717200000000,2024,6,1,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,cub,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,Reference,Laboratory Study,test_image.jpg,/tmp/test_image.jpg,Reference,Laboratory Study +Encounter.catalogNumber,Name0.label,Name0.value,Occurrence.occurrenceID,Occurrence.sightingPlatform,Occurrence.fieldSurveyCode,Encounter.decimalLatitude,Encounter.decimalLongitude,Encounter.locationID,Encounter.verbatimLocality,Encounter.country,Encounter.depth,Encounter.dateInMilliseconds,Encounter.year,Encounter.month,Encounter.day,Encounter.hour,Encounter.minutes,Encounter.submitterOrganization,Encounter.submitterID,Encounter.recordedBy,Occurrence.groupComposition,Occurrence.groupBehavior,Occurrence.minGroupSizeEstimate,Occurrence.bestGroupSizeEstimate,Occurrence.maxGroupSizeEstimate,Occurrence.numAdults,Occurrence.numJuveniles,Occurrence.numCalves,Occurrence.initialCue,Occurrence.seaState,Occurrence.seaSurfaceTemp,Occurrence.swellHeight,Occurrence.visibilityIndex,Occurrence.effortCode,Occurrence.observer,Occurrence.transectName,Occurrence.transectBearing,Occurrence.distance,Occurrence.bearing,Occurrence.comments,Occurrence.humanActivityNearby,Encounter.patterningCode,Encounter.flukeType,Encounter.behavior,Encounter.groupRole,Encounter.sex,Encounter.lifeStage,Encounter.genus,Encounter.specificEpithet,Encounter.otherCatalogNumbers,Encounter.occurrenceRemarks,Encounter.mediaAsset0,Encounter.mediaAsset0.filePath,Encounter.mediaAsset0.keyword0,Encounter.mediaAsset0.keyword1 +155165eb-9938-4903-ae77-9795e76e6206,,,a1b2c3d4-e5f6-7890-abcd-ef1234567890,,,37.15414445923345,-6.730740044168456,,iberia,,,1746316800000,2025,5,4,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,juvenile,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,Field Study, +460ce580-faad-4e87-b90f-44f20cfaa84d,Default,Individual_2,f981b20f-330a-4e52-bb0f-dd8d13f1e76a,,,37.15414445923345,-6.730740044168456,,iberia,,,1746230400000,2025,5,3,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,senior,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,, +6dfdc8ce-9dc4-483b-aafa-2335c8db1361,Default,Individual_1,c2dbf187-ac3b-450f-9886-aa4e49073844,,,37.15414445923345,-6.730740044168456,,iberia,,,1746144000000,2025,5,2,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,adult,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,Field Study, +2ff3ecf9-8e6d-486d-92da-73afa913cc94,Default,Individual_1,9cf5a4e7-4c81-466e-a788-8d976f869086,,,37.15414445923345,-6.730740044168456,,iberia,,,1717200000000,2024,6,1,0,00,,,,,,,,,,,,,,,,,,,,,,,None,,,,,,,cub,lynx,pardinus,,,test_image.jpg,/tmp/test_image.jpg,Reference,Laboratory Study