summaryrefslogtreecommitdiffstats
path: root/views/person.erb
AgeCommit message (Collapse)AuthorFilesLines
18 hoursAdd bulk photo selection panel to person page (admin)Ken D'Ambrosio1-7/+122
On /people/:slug, admins see a sticky left panel and selectable photo tiles. Clicking a tile (or its checkbox overlay) toggles selection; clicking without modifier still opens the photo in a new tab. The panel shows the selection count and two actions: - Reassign to person: moves the selected photos' face entries from the current person's cluster to the chosen person. - Move to album: moves the photo files on disk and updates album.json, faces.json, and people.json rel paths accordingly. Album paths are offered via a datalist autocomplete. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 daysAdd people/face clustering featureKen D'Ambrosio1-0/+26
- scripts/cluster_faces.py: greedy centroid clustering (numpy) with 3 refinement passes; preserves existing UUID/name mappings across re-runs; writes MEDIA_ROOT/people.json atomically. - app.rb: GET /face/* serves cropped+padded face thumbnails (100x100, cached under cache/faces/); GET|POST /admin/people for cluster management; POST /admin/people/recluster runs cluster_faces.py as a background job; POST /admin/people/:uuid saves names+slugs; GET /people public grid of named people; GET /people/:slug photos for one person. - views/admin/people.erb: lists all clusters (named first, then by size), face crop samples, inline name form, re-cluster button with live log. - views/people.erb: public grid of named people. - views/person.erb: photo grid for one person, linking back to album lightbox for each photo. - views/layout.erb: People link in nav (conditional on FACES_ENABLED). - public/css/style.css: styles for people admin list and public tiles. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>