Commit graph

100 commits

Author SHA1 Message Date
2c45a6f2ee feat: restyle identify_upload as camera-first viewfinder screen 2026-06-01 17:53:33 +02:00
4cac6cd0ce feat: restyle pruning_strip and photo_gallery partials — Bootstrap to Tailwind 2026-06-01 17:37:20 +02:00
78f5f3b54a feat: restyle plant_detail — hero, care row, gradient CTA buttons 2026-06-01 17:34:04 +02:00
cbd58fd2dc feat: restyle plant_list with Tailwind — search, filter chips, plant cards 2026-06-01 17:26:14 +02:00
d7cb9ea25d feat: restyle dashboard as camera-first Home screen 2026-06-01 17:24:23 +02:00
b320b1a471 feat: restyle location_edit.html with cover photo upload field 2026-06-01 16:47:12 +02:00
3149206c3e feat: add location_detail.html — area detail with cover photo header + plant grid 2026-06-01 16:46:24 +02:00
c9905851c2 feat: restyle locations.html as My Garden screen with cover photo thumbnails 2026-06-01 16:45:29 +02:00
e699ddb62d feat: add LocationForm with cover_photo, location_detail view, update location_edit 2026-06-01 16:44:05 +02:00
2d7ca494bd feat: add Location.cover_photo ImageField + migration + test 2026-06-01 16:40:59 +02:00
ea627ad4ef feat: rewrite base.html — Tailwind CDN, 5-tab bottom nav, canvas decorations 2026-06-01 16:39:20 +02:00
69837d88b2 feat: add bloombase.css — fonts, blobs, canvas flowers, shared components 2026-06-01 16:36:23 +02:00
29fd14c06e docs: add BloomBase redesign implementation plan 2026-05-31 21:09:58 +02:00
ff4ff7645c docs: add BloomBase UI redesign spec
Covers visual system (Tailwind, Great Vibes/Timeless font, coral palette),
5-tab bottom nav, all screen designs, Location.cover_photo model change,
and file change summary.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 20:59:47 +02:00
c1d0f0a346 feat: add area management — list, add, edit, delete locations
Adds /locations/ page with full CRUD for plant areas. Edit redirects
to dedicated form; delete unlinks plants and shows confirm dialog if
area has plants. Gear icon in plant list filter bar links to management.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 15:17:36 +02:00
d8b125fd18 feat: add Google search link on plant detail page
Small Google favicon icon next to the scientific name (falls back to
plant name if no species). Opens google.com/search in a new tab.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 15:10:01 +02:00
7d9d61cbba feat: add Caddy reverse proxy stack for bloombase.kerkman.io
xcaddy build with caddy-dns/cloudflare for DNS-01 TLS. Host network mode
so Caddy can reach other Docker stacks on localhost. Designed as general
reverse proxy — add new site blocks to Caddyfile for future services.

Deployed to dockerhost:/home/stephan/stacks/caddy/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 15:00:15 +02:00
300f14eb42 feat: replace native file input with styled button in photo gallery
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 14:41:10 +02:00
665d5196d1 feat: add 'Add a plant' button to top of plant list
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 14:39:17 +02:00
ba69a1b74a feat: show 6 most recently added plants on dashboard with images
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 14:37:55 +02:00
d573dfbbda fix: rewrite backup script — extract via Docker, rsync from host
Avoids SSH-inside-container complexity. Docker cp to /tmp,
native rsync to NAS, Docker cleanup for root-owned files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:36:39 +02:00
42e81c3609 feat: NAS backup script for db and media volumes
Runs via Docker, rsync over SSH to 192.168.178.110.
Cron: daily at 3am.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:23:12 +02:00
1fe2b9fad8 docs: add Pl@ntNet to README (features, env vars, data sources)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:18:59 +02:00
b5cdda54f8 feat: location filter, mobile overflow fixes, card scan icon
- Replace indoor/outdoor filter with dynamic location buttons
- Fix pruning strip date/badge overflow on narrow screens (flex-shrink-0, gap-2, text-nowrap, flex-wrap)
- Fix pruning calendar badges compressing on long plant names
- Re-add pruning strip to plant detail (was missing)
- Change card scan nav icon from 📷 to 🪪

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:11:22 +02:00
21f9759d3a feat: require Naomi verification before closing Forgejo issues
Done items stay open in Forgejo until Naomi ticks the new Verified
checkbox in Notion. Shows ' Awaiting Naomi's verification' or
' Verified by Naomi' in the issue body accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:57:17 +02:00
92b682a1bd feat: show Pl@ntNet reference images on confirm screen + save as thumbnail
Extract image_url from Pl@ntNet API response (medium size). Show thumbnail
in each match card on identify_confirm. On plant creation, download the
selected match's reference image and save as PlantPhoto thumbnail. Scan
photos saved as gallery photos (non-thumbnail) with fallback to first scan
photo as thumbnail when Pl@ntNet has no image.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:51:28 +02:00
70c2213d98 feat: add Notion→Forgejo sync script
Idempotent sync via notion-id marker in issue body.
Initial 10 issues already created from BloomBase Notion workspace.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:40:36 +02:00
99fd95ee80 chore: rename PlantDB to BloomBase
Rename Django project module plantdb/ → bloombase/, update all
references in manage.py, docker-compose.yml, wsgi/asgi/settings.
Replace PlantDB with BloomBase in all template titles and navbar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 12:36:20 +02:00
798240f968 chore: add Django logging config to route errors to stderr/Docker logs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 22:10:03 +02:00
d1e588bbc3 feat: save identify photos as plant thumbnails after wizard completes
Temp images uploaded during Pl@ntNet identification are now copied to
PlantPhoto records when the plant is created in step 3. First image is
auto-set as thumbnail. Temp files still deleted after transfer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 22:03:33 +02:00
bee9fe0cd8 fix: catch all exceptions in identify_upload, log unexpected errors 2026-05-30 21:59:37 +02:00
6e2f477c09 fix: restore hero OOB swap after gallery innerHTML fix 2026-05-30 21:46:02 +02:00
1a9aa24ebf fix: use hx-swap=innerHTML so #photo-gallery id survives HTMX swaps 2026-05-30 21:36:54 +02:00
be9d6caf94 fix: re-fetch plant after photo upload so gallery and hero see new photo 2026-05-30 21:33:22 +02:00
cbd4ba09aa fix: revert auto-submit — keep visible file input, remove capture only 2026-05-30 21:30:44 +02:00
0f53adc6a8 fix: photo upload UX — remove camera capture, auto-submit on pick, update hero via HTMX OOB 2026-05-30 21:21:04 +02:00
fdbe821c8a feat: add frost_hardiness_c and planting_density_m2 to Species model 2026-05-30 21:04:25 +02:00
c75757a70c fix: guard against malformed API response and empty matches list 2026-05-30 21:01:47 +02:00
f308d006e4 feat: update nav, remove Perenual UI, fix delete button alignment
- Nav '+' button now links to identify_upload instead of plant_add
- Remove Perenual toggle, results section, and 'Also search Perenual'
  link from species_results partial
- Wrap Plant card / Crop thumbnail / Delete plant buttons in flex
  container for consistent mobile alignment
- Fix pre-existing test assertion to match actual crop-thumbnail URL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 20:55:32 +02:00
e93809ccbf fix: match spec wording for no-VPC banner 2026-05-30 17:49:56 +02:00
adea702a77 feat: implement step 3 field picker view and template
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 17:48:53 +02:00
62fdbf7029 fix: show selected species name in confirm button 2026-05-30 17:46:27 +02:00
b16df6caa4 feat: implement step 2 species confirm view and template
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 17:45:35 +02:00
c10c4ebc2f feat: implement identify views and upload template
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 17:41:10 +02:00
ae919a3fce feat: wire identify URL routes and stub views 2026-05-30 17:37:46 +02:00
a2da8e6457 fix: correct misleading test name in test_plantnet 2026-05-30 17:36:47 +02:00
b884852f05 feat: add Pl@ntNet identification service
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 17:34:48 +02:00
2ceed3b083 feat: add PLANTNET_API_KEY setting 2026-05-30 17:32:28 +02:00
1fa1f71291 docs: add Pl@ntNet photo ID implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 17:25:19 +02:00
ed21c41b53 docs: add Pl@ntNet photo ID design spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 16:58:40 +02:00