feat: Enhance navigation and filtering in AutoMatch and Identify components

This commit introduces new navigation buttons in the AutoMatch component, allowing users to easily move between persons being matched. Additionally, the Identify component has been updated to include a collapsible filters section, improving the user interface for managing face identification. The unique faces filter is now enabled by default, enhancing the identification process. Documentation and tests have been updated to reflect these changes, ensuring a reliable user experience.
This commit is contained in:
tanyar09
2025-11-04 13:30:40 -05:00
parent 0a960a99ce
commit 7945b084a4
4 changed files with 68 additions and 27 deletions
+4
View File
@@ -335,6 +335,8 @@ class SearchStats:
def get_photos_without_faces(self) -> List[Tuple]:
"""Get photos that have no detected faces
Only includes processed photos (photos that have been processed for face detection).
Returns:
List of tuples: (photo_path, filename)
"""
@@ -343,11 +345,13 @@ class SearchStats:
with self.db.get_db_connection() as conn:
cursor = conn.cursor()
# Find photos that have no faces associated with them
# Only include processed photos
cursor.execute('''
SELECT p.path, p.filename
FROM photos p
LEFT JOIN faces f ON p.id = f.photo_id
WHERE f.photo_id IS NULL
AND p.processed = 1
ORDER BY p.filename
''')
for row in cursor.fetchall():
+2
View File
@@ -182,12 +182,14 @@ def get_photos_without_faces(
) -> Tuple[List[Photo], int]:
"""Get photos that have no detected faces.
Only includes processed photos (photos that have been processed for face detection).
Matches desktop behavior exactly.
"""
query = (
db.query(Photo)
.outerjoin(Face, Photo.id == Face.photo_id)
.filter(Face.photo_id.is_(None))
.filter(Photo.processed == True) # Only include processed photos
)
# Apply folder filter if provided