iterminate
fa22e98060
Add page-size dropdown to pagination controls
2026-04-30 20:42:35 -05:00
iterminate
4ec7d22138
Add pagination, device detail unassign-all, and batch install with slot limit
2026-04-30 18:31:48 -05:00
iterminate
3b2029d3b8
Add logbook entries, data export page, and JSON import
2026-04-26 20:03:58 -05:00
iterminate
52d1105997
Make device.battery_size NOT NULL in schema and tests
2026-04-19 19:00:33 -05:00
iterminate
3e75bb3ab4
Add required battery_size to devices, filter install panels by size
2026-04-19 14:48:55 -05:00
iterminate
aabe273172
Add location and fill-status filters to device list
2026-04-19 08:54:50 -05:00
iterminate
b90ab7b2b6
Add location field to devices with dropdown selector
2026-04-18 15:36:01 -05:00
iterminate
66062faac6
Add size-in-label checkbox to battery add form
2026-04-18 11:12:37 -05:00
iterminate
f64e14e713
Replace migrate_to_mariadb.py with sbin/setup_mariadb.py
...
Covers all 5 models/tables, prompts for credentials, snapshots SQLite,
and prints env/service config at the end.
2026-04-15 17:34:45 -05:00
iterminate
8721254476
Update README, MIGRATION.md, and CLAUDE.md for current feature set
2026-04-15 03:55:14 -05:00
iterminate
75d0e05f59
Move charge logging to bulk panel, remove per-row button
2026-04-15 03:42:11 -05:00
iterminate
4b534db605
Show checkmark and label on charge button
2026-04-15 03:39:55 -05:00
iterminate
73ee821cc1
Label charge button 'Charged' instead of checkmark
2026-04-15 03:39:18 -05:00
iterminate
fa5891d073
Hide retired batteries by default, filter to show them
2026-04-14 20:09:56 -05:00
iterminate
e4130bb329
Exclude retired batteries from dashboard warnings
2026-04-14 19:40:11 -05:00
iterminate
5d8fb5aa68
Make low battery summary card clickable to reveal which batteries
2026-04-14 19:05:38 -05:00
iterminate
c7b7c24a7e
Add needs-attention alerts, last charged, health %, quick charge, sortable columns
2026-04-14 18:49:07 -05:00
iterminate
8fb03e1fa3
Reduce HA live fetch timeout to 1s
2026-04-14 16:25:11 -05:00
iterminate
0d79972dae
Enforce unique constraint on Battery.label
2026-04-14 16:03:45 -05:00
iterminate
270acc0430
Fix XSS, CSRF, input validation, and related security issues
2026-04-14 16:00:50 -05:00
iterminate
e0f04ea971
Clarify BQ-CC65 measures capacity during refresh cycle only
2026-04-14 14:37:04 -05:00
iterminate
ec731988e2
Add BQ-CC65 capacity-measurement tip to README
2026-04-14 14:36:16 -05:00
iterminate
86512e2c4f
Update README with app icon and feature overview
2026-04-14 09:13:53 -05:00
iterminate
cd3eb046d7
Collapse history sections to latest+modal; add charts and dashboard stats
2026-04-14 09:06:10 -05:00
iterminate
080768bf92
Improve icon-192.png resampling quality
2026-04-14 02:57:08 -05:00
iterminate
e223a33c7b
Regenerate PWA icons and favicon from updated source image
2026-04-14 02:45:45 -05:00
iterminate
3fc54cda87
Regenerate PWA icons and favicon from updated source image
2026-04-14 02:41:04 -05:00
iterminate
121e26c1a4
Update static/rawicon.png
2026-04-14 02:35:46 -05:00
iterminate
cb5af9f252
Upload files to "static"
2026-04-14 02:35:21 -05:00
iterminate
cc3091fe97
Delete static/icon-512.png
2026-04-14 02:35:01 -05:00
iterminate
a4dcb5859d
Delete static/icon-192.png
2026-04-14 02:34:57 -05:00
iterminate
0f6366e871
Regenerate PWA icons and favicon from updated source image
2026-04-14 02:26:13 -05:00
iterminate
1ea3af0dce
Upload files to "static"
2026-04-14 02:25:02 -05:00
iterminate
60a8d64fbc
Add PWA icons and favicon from source image
2026-04-14 02:19:48 -05:00
iterminate
d57522a01d
Upload files to "/"
2026-04-14 02:17:53 -05:00
iterminate
f08441e799
Restrict HA entity list to sensor. domain only
2026-04-14 02:02:50 -05:00
iterminate
24feeb4fe4
Exclude binary_sensor entities from HA battery entity list
2026-04-14 01:59:26 -05:00
iterminate
d00695cd51
Device detail UI cleanup: battery icon, HA live % unknown state, remove redundant entity row
2026-04-14 01:55:29 -05:00
iterminate
a9d0b3fc63
Replace datalist with custom autocomplete dropdown for HA entity field (mobile fix)
2026-04-14 01:38:42 -05:00
iterminate
b6a3533fed
HA improvements: entity overflow fix, live % fetch on device page, searchable entity dropdown
2026-04-14 01:17:53 -05:00
iterminate
d7ba64a2f3
Track battery percentage history; skip poll write when value unchanged
2026-04-13 21:15:19 -05:00
iterminate
279a1f3f3e
Update README and CLAUDE.md for Home Assistant integration
2026-04-13 20:12:49 -05:00
iterminate
8c06478bca
Add optional Home Assistant integration for battery percentage tracking
2026-04-13 20:10:23 -05:00
iterminate
9d2b1d0d51
Add Select all/Deselect all button to filter bar for mobile
2026-04-13 12:44:19 -05:00
iterminate
39b52a3fa4
Replace browser confirm() dialogs with custom modal; add live label preview on battery add form
...
- base.html: add CSS/HTML/JS for styled in-app confirmation modal (dark-mode compatible via CSS vars)
- device_list, battery_detail: convert onsubmit confirm() to declarative data-confirm attributes
- dashboard: convert bulk Delete/Install buttons to use modal helpers (submitWithAction pattern)
- app.py: pass brand_counts dict to battery_add template
- battery_add.html: show live "Will create: Brand 001 → Brand 003" preview as brand/quantity change
- tests: add two tests covering brand_counts server-side rendering
2026-04-13 09:53:21 -05:00
iterminate
3c2b2dc389
Add bulk Log Charged action to dashboard toolbar
...
Select multiple batteries, pick a date, and optionally increment charge
cycles for all of them in one shot. Reuses the existing bulk-action form
and POST /battery/bulk-action route; no new routes or migrations needed.
2026-04-13 09:30:56 -05:00
iterminate
b1bc02e963
Three features: device dropdown filter, charge log history, unassign-all
...
- Device dropdowns (quick-assign, bulk install, assign page) now only show
devices with free slots; full devices are excluded entirely
- New ChargeLog model tracks charge dates with optional cycle increment;
battery detail page gets a Charge History card with add/delete rows
- Device list page gets per-device Unassign All button (with confirmation)
via new POST /device/<id>/unassign-all route
2026-04-13 08:12:23 -05:00
iterminate
6597fcd4ac
Sticky bulk toolbar on dashboard; anchor scroll on device unassign
2026-04-13 07:23:36 -05:00
iterminate
65596eee2b
Add PWA support — installable as home screen app
...
Adds Web App Manifest, a minimal Service Worker, and Apple/Android meta
tags so the app can be added to a phone home screen and opens full-screen
in standalone mode (no browser chrome).
- static/manifest.json: name, short_name, display=standalone, icons
- static/sw.js: minimal SW served at /sw.js (root scope) via new Flask route
- static/icon-192.png, icon-512.png: generated by sbin/gen_icons.py (stdlib only)
- base.html: manifest link, theme-color, apple-mobile-web-app-* tags, SW registration
2026-04-13 04:28:11 -05:00
iterminate
2f8a8a2b77
Add capacity test history and chart to battery detail
...
- New CapacityTest model (battery_id FK CASCADE, mah, date, notes)
- DB migration: create capacity_test table, migrate existing single-test data
- Two new routes: add and delete capacity test records
- Battery.tested_capacity_mah/tested_date kept in sync with latest test
so dashboard display requires no changes
- Battery detail: Capacity History card with sortable table, health %
per reading, and a canvas line chart (shown when >= 2 records)
- Chart uses CSS variables for colors — works in light and dark mode
- Remove tested_capacity_mah/tested_date from Edit Details form
- 3 new acceptance tests (48 total)
2026-04-13 04:15:55 -05:00