351d1e5523
feat: add loading spinner to species search button
...
Shows Bootstrap spinner via htmx-indicator during the Perenual API
call, and disables the button to prevent double-submits.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 11:24:20 +02:00
6727d8b59b
fix: add CSRF_TRUSTED_ORIGINS support via env var
...
Django 5.2 rejects POSTs when the Origin header doesn't match
CSRF_TRUSTED_ORIGINS. Required for non-localhost deployments.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 11:19:14 +02:00
40e3419160
fix: surface Perenual API errors instead of silently returning no results
...
Timeout and rate-limit failures now show a warning message to the user.
Timeout increased to 10s.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:37:30 +02:00
d8d7899a26
fix: ensure CSRF cookie is set on plant_add page load
...
species_search.html has no form/csrf_token tag, so the cookie was
never set before the species select form was submitted.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:32:51 +02:00
34f6c3652e
fix: trigger species search on button click, not on input change
...
Avoids burning Perenual API quota on every keystroke.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:23:45 +02:00
4b1212c5ec
fix: use \$http_host in nginx to preserve port for CSRF validation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:20:56 +02:00
1e3fc4285d
fix: use data/ subdir for SQLite volume mount in Docker
...
Named volumes can't mount to a file path — use a directory.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:11:53 +02:00
a94cf6fe1e
feat: Docker Compose deployment with Nginx and Gunicorn
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:07:18 +02:00
370a02e00e
feat: pruning calendar grouped by urgency
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:06:55 +02:00
eb4dd82b88
feat: plant edit and delete with confirmation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:06:03 +02:00
3bc27a345f
feat: add plant form with species pre-fill
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:05:18 +02:00
88976bb351
feat: species search with HTMX and Perenual caching on select
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:04:02 +02:00
ef84af433e
feat: plant detail with photo hero and inline HTMX pruning log
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:03:01 +02:00
c7a9699acc
feat: plant list with HTMX live search and indoor/outdoor filter
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:01:15 +02:00
18e128549d
feat: dashboard with plant count and pruning summary
...
Adds the dashboard view, template, URL routing, and tests. Also upgrades
Django from 5.1.15 to 5.2.1 to fix a Python 3.14 incompatibility in
template context copy that prevented view tests from running.
2026-05-28 09:56:24 +02:00
81bb780ab5
feat: URL routing skeleton and base template
2026-05-28 09:51:11 +02:00
a6c3c683d4
feat: add Perenual API service with error fallback
2026-05-28 09:49:32 +02:00
b3f0a1cd40
feat: add PlantForm and PruningLogForm
2026-05-28 09:48:06 +02:00
62a0d32619
fix: pruning_status uses 6-month window for overdue detection
2026-05-28 09:46:49 +02:00
6b189842dc
fix: use months_before loop for correct 12-month rolling window in pruning_status
2026-05-27 20:13:01 +02:00
7983aa57b6
feat: add pruning_status logic with 12-month rolling window
2026-05-27 20:06:07 +02:00
4495a07407
fix: use related_name='pruning_logs' and PositiveIntegerField for max_height_cm
2026-05-27 19:59:35 +02:00
2c61b03519
feat: add Species, Plant, PruningLog models
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 19:51:11 +02:00
265d54050c
feat: scaffold Django project with plants app
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 19:40:58 +02:00
0b43830875
feat: add PlantDB implementation plan
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 19:35:18 +02:00
5b2cc87540
Add PlantDB design spec
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 19:23:20 +02:00