From 449f9f8b8339a03e11e152595fc13eb28612f061 Mon Sep 17 00:00:00 2001 From: Michael Mayer Date: Mon, 2 Jan 2023 18:43:18 +0100 Subject: [PATCH] Search: Ignore deleted albums when using the "unsorted" filter #3051 Signed-off-by: Michael Mayer --- internal/search/photos.go | 2 +- internal/search/photos_geo.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/search/photos.go b/internal/search/photos.go index 7afabe23d..e6a2520c2 100644 --- a/internal/search/photos.go +++ b/internal/search/photos.go @@ -637,7 +637,7 @@ func searchPhotos(f form.SearchPhotos, sess *entity.Session, resultCols string) // Find photos in albums or not in an album, unless search results are limited to a scope. if f.Scope == "" { if f.Unsorted { - s = s.Where("photos.photo_uid NOT IN (SELECT photo_uid FROM photos_albums pa WHERE pa.hidden = 0)") + s = s.Where("photos.photo_uid NOT IN (SELECT photo_uid FROM photos_albums pa JOIN albums a ON a.album_uid = pa.album_uid WHERE pa.hidden = 0 AND a.deleted_at IS NULL)") } else if txt.NotEmpty(f.Album) { v := strings.Trim(f.Album, "*%") + "%" s = s.Where("photos.photo_uid IN (SELECT pa.photo_uid FROM photos_albums pa JOIN albums a ON a.album_uid = pa.album_uid AND pa.hidden = 0 WHERE (a.album_title LIKE ? OR a.album_slug LIKE ?))", v, v) diff --git a/internal/search/photos_geo.go b/internal/search/photos_geo.go index 120c11982..01a7ea537 100644 --- a/internal/search/photos_geo.go +++ b/internal/search/photos_geo.go @@ -329,7 +329,7 @@ func UserPhotosGeo(f form.SearchPhotosGeo, sess *entity.Session) (results GeoRes // Find photos in albums or not in an album, unless search results are limited to a scope. if f.Scope == "" { if f.Unsorted { - s = s.Where("photos.photo_uid NOT IN (SELECT photo_uid FROM photos_albums pa WHERE pa.hidden = 0)") + s = s.Where("photos.photo_uid NOT IN (SELECT photo_uid FROM photos_albums pa JOIN albums a ON a.album_uid = pa.album_uid WHERE pa.hidden = 0 AND a.deleted_at IS NULL)") } else if txt.NotEmpty(f.Album) { v := strings.Trim(f.Album, "*%") + "%" s = s.Where("photos.photo_uid IN (SELECT pa.photo_uid FROM photos_albums pa JOIN albums a ON a.album_uid = pa.album_uid AND pa.hidden = 0 WHERE (a.album_title LIKE ? OR a.album_slug LIKE ?))", v, v)