Commit graph

69 commits

Author SHA1 Message Date
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
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