jessikitty
480dd4993b
Add Organise pages button to the edit set page
2026-10-02 23:52:33 +10:00
jessikitty
f6a3b760fa
Register the flask pages CLI group
2026-10-02 19:56:37 +10:00
jessikitty
95425986d8
Add flask pages CLI group for auditing and fixing page order
2026-10-02 19:56:13 +10:00
jessikitty
42956cff97
Register instructions.organise as an owner-only editing surface
2026-10-02 19:55:38 +10:00
jessikitty
48c82ab763
Add page organiser routes; fix bulk upload tuple unpack and harden reorder
2026-10-02 19:55:21 +10:00
jessikitty
2e2f2d66d6
Add drag-and-drop page organiser template
2026-10-02 19:54:34 +10:00
jessikitty
9e0fc343f7
Add page_order service for ordering image instruction pages
2026-10-02 19:53:38 +10:00
jessikitty
f7c20de5ac
Add owner-only logging and Brickset API call tracking
...
LIM configured no logging at all, so the instruction fetcher had no trail to follow. Adds a rotating file handler on the root logger plus two owner-only admin pages.
- Admin > Logs: filter by level, source and text; tracebacks kept with their error; auto-refresh, raw download, rotated-file browsing and rotate-now
- Admin > Logs > Brickset API calls: every outbound call recorded with method, params, caller, duration, result count and error, plus daily quota accounting (only getSets counts) and a comparison against getKeyUsageStats
- New owner concept (services/ownership.py): a single account, distinct from is_admin, since these pages expose other admins activity. Defaults to the first admin; flask owner show/set to change
- Services now log through module loggers; retention setting and pruning for call records
- New CLI: flask owner show/set, flask logs path/prune
- New table brickset_api_calls, created automatically at boot; LOG_* env vars, /data/logs in Docker
2026-09-27 10:42:49 +10:00
jessikitty
89f65e2d74
Add automatic instruction fetcher for official sets
...
Downloads official instruction PDFs from LEGO, located via the Brickset API, one set per interval (10 minutes by default) so neither API gets hammered. Official sets only; MOCs are excluded throughout.
- New admin page at /admin/instruction-fetch: queue builder, pacing controls, live countdown and per-set job history
- Database-backed queue (instruction_fetch_jobs) and last-run timestamp, so pacing survives restarts
- Background worker thread, plus 'flask instructions queue/run/status' for Task Scheduler or cron
- SHA-256 dedupe (instructions.sha256), PDF header check, size cap and streaming downloads via temp files
- brickset_api: getInstructions2 by set number and getInstructions by setID (the old code sent a set number to the setID method); getSets params now proper JSON; getKeyUsageStats added
- Schema top-ups applied automatically at boot: new table plus instructions.sha256/source
- Docker: fetcher env vars passed through compose, no worker thread in the entrypoint bootstrap
2026-09-26 13:43:17 +10:00
jessikitty
aac2b60517
Implement site settings backend and bulk visibility apply
2026-09-25 00:48:03 +10:00
jessikitty
70d3ad8f96
Wire schema upgrade, access guard and registration flag into the app factory
2026-09-25 00:47:01 +10:00
jessikitty
25401c229c
Add AUTO_SCHEMA_UPGRADE toggle
2026-09-25 00:46:43 +10:00
jessikitty
a82c77b0ef
Build out the Site Settings page: signup, visibility defaults, navigation, bulk apply
2026-09-25 00:46:23 +10:00
jessikitty
6d20037cdf
Hide the register prompt when signups are closed
2026-09-25 00:45:57 +10:00
jessikitty
f241e5f6ed
Scope set list to visible sets; add visibility and sharing routes
2026-09-25 00:45:45 +10:00
jessikitty
23d6a45584
Gate registration behind the site setting; land on dashboard after login
2026-09-25 00:44:57 +10:00
jessikitty
aafdaa5045
Redirect logged-in users to dashboard; scope dashboard stats to visible sets
2026-09-25 00:44:44 +10:00
jessikitty
dcd205fc6a
Export SetShare and SiteSetting
2026-09-25 00:44:31 +10:00
jessikitty
eb796b6884
Add visibility column, access helpers and visible_to query to Set
2026-09-25 00:44:26 +10:00
jessikitty
19a2d7ad9e
Add idempotent additive schema upgrader
2026-09-25 00:44:00 +10:00
jessikitty
8d5cccc4e3
Add central access guard for set-scoped routes
2026-09-25 00:43:50 +10:00
jessikitty
af714e7b9d
Add SetShare model for per-user set sharing
2026-09-25 00:43:33 +10:00
jessikitty
f03b3bfdaf
Add SiteSetting model for admin-configurable settings
2026-09-25 00:43:26 +10:00
jessikitty
ac38227dac
Add drag-and-drop archive upload with progress to the backup page
2026-09-24 20:31:21 +10:00
jessikitty
f60339a60f
Add BACKUP_MAX_UPLOAD (0 = no limit)
2026-09-24 20:29:58 +10:00
jessikitty
db1d577996
Add GUI archive upload: streams raw body to disk, bypassing the 50MB form cap
2026-09-24 20:29:40 +10:00
jessikitty
842ef065e1
Add Docker deployment runbook
2026-09-24 19:49:48 +10:00
jessikitty
8a9966f7b0
Add compose env template
2026-09-24 19:49:23 +10:00
jessikitty
077eba9950
Add .dockerignore - keep local data and venv out of the image
2026-09-24 19:49:17 +10:00
jessikitty
889f611cd5
Add container requirements (psycopg3 + gunicorn)
2026-09-24 19:49:12 +10:00
jessikitty
686ec17c43
Add compose stack: app + Postgres 16, named volumes
2026-09-24 19:49:04 +10:00
jessikitty
b5aa982794
Add container entrypoint: wait for DB, create schema, drop privileges
2026-09-24 19:48:53 +10:00
jessikitty
333c5143cf
Add Dockerfile (python 3.12-slim, gunicorn, non-root)
2026-09-24 19:48:38 +10:00
jessikitty
6821b67941
Serve uploads from UPLOAD_FOLDER so it can live on a mounted volume
2026-09-24 19:48:29 +10:00
jessikitty
04c5eddd17
Make UPLOAD_FOLDER env-configurable; resolve relative paths from project root
2026-09-24 19:48:09 +10:00
jessikitty
6dcd163edb
Document backup and restore; refresh schema and structure sections
2026-09-24 15:48:45 +10:00
jessikitty
03873b37e1
Fix NameError: import current_app (bulk_import logged without it)
2026-09-24 15:48:16 +10:00
jessikitty
1199ec4766
Link Backup and Restore from site settings
2026-09-24 15:47:17 +10:00
jessikitty
5e34840465
Fix footer crash (no Jinja date filter), add admin/backup nav links and credit
2026-09-24 15:47:05 +10:00
jessikitty
fb992e31f4
Document BACKUP_FOLDER and BACKUP_KEEP
2026-09-24 15:46:28 +10:00
jessikitty
27fa8ab2df
Ignore backup archives
2026-09-24 14:34:31 +10:00
jessikitty
a974ec5fa3
Register backup blueprint, CLI commands and current_year context var
2026-09-24 14:34:07 +10:00
jessikitty
af937daebb
Add BACKUP_FOLDER and BACKUP_KEEP config
2026-09-24 14:33:52 +10:00
jessikitty
f01d4b3f58
Add backup and Docker migration runbook
2026-09-24 14:33:34 +10:00
jessikitty
b16106db7d
Add Backup and Restore admin page
2026-09-24 14:33:00 +10:00
jessikitty
ca3232c515
Add flask backup CLI: create/list/inspect/verify/restore
2026-09-24 14:31:56 +10:00
jessikitty
c6ffe7f153
Add admin backup routes (create/status/download/verify/delete/restore)
2026-09-24 14:31:28 +10:00
jessikitty
c9ef418cdd
Add backup/restore service: full archive of DB + all uploaded files
2026-09-24 14:31:07 +10:00
jessikitty
4d505a84e7
Export ExtraFile from app.models
2026-09-24 14:29:34 +10:00
jessikitty
2b021723e1
docs: add .claude-context project overview
2026-09-24 01:32:15 +10:00
jessikitty
c0f465e424
docs: fix commit hash in visual refresh session
2026-09-24 01:32:05 +10:00
jessikitty
ea58775921
docs: add session log for LEGO-themed visual refresh
2026-09-24 01:31:45 +10:00
jessikitty
3a7e497452
docs: add session log for MOC auto-numbering
2026-09-24 01:31:35 +10:00
jessikitty
5301ead1d7
docs: add session log for Python 3.14 compatibility and auto-start
2026-09-24 01:31:25 +10:00
jessikitty
62acef92ff
Enhanced home page with improved hero section, feature cards, detailed benefits, and CTA
2026-01-05 17:57:56 +11:00
jessikitty
7f583f1ac4
Enhanced dashboard with improved stat cards, better layout, getting started guide, and refined typography
2026-01-05 17:57:14 +11:00
jessikitty
9de38dfbe2
Enhanced base template with better fonts, icons in alerts, auto-hide messages, loading states, and micro-interactions
2026-01-05 17:56:32 +11:00
jessikitty
689147d622
Visual enhancement: Modern LEGO-themed design with gradients, improved cards, animations, and better UX
2026-01-05 17:55:56 +11:00
jessikitty
cd0b5f17f5
Add MOC generator with leading zeros support (MOC-0001 format)
2025-12-15 09:23:53 +11:00
jessikitty
3aa81f5b6d
Add auto-fill MOC number feature with refresh button
2025-12-15 07:58:47 +11:00
jessikitty
0aca212d70
Update summary: Global numbering is now the default standard
2025-12-15 00:43:12 +11:00
jessikitty
d09732cf78
Update documentation: Global numbering is now the default standard
2025-12-15 00:41:57 +11:00
jessikitty
fdb9211dd2
Change to GLOBAL numbering as default (user_scoped=false)
2025-12-15 00:40:09 +11:00
jessikitty
ec6deb3fc2
Add feature update summary for MOC auto-generation and favicon status
2025-12-15 00:37:40 +11:00
jessikitty
7216fa00b7
Add comprehensive documentation for MOC auto-generation feature
2025-12-15 00:36:55 +11:00
jessikitty
a72346b68c
Add MOCNumberGenerator to services exports
2025-12-15 00:36:07 +11:00
jessikitty
4de5127b24
Register MOC blueprint in Flask app
2025-12-15 00:35:37 +11:00
jessikitty
0a9ae94706
Add MOC blueprint to routes
2025-12-15 00:35:13 +11:00
jessikitty
35d32d1a00
Add MOC API routes for auto-generation and validation
2025-12-15 00:34:48 +11:00
jessikitty
944a679372
Add MOC auto-generation service with sequential numbering
2025-12-15 00:34:34 +11:00
jessikitty
33dea53c0b
Update compatibility guide to include SQLAlchemy 2.0.35+ fix for Python 3.14
2025-12-12 10:31:26 +11:00
jessikitty
c1d67890c0
Fix SQLAlchemy version for Python 3.14 - requires 2.0.35+ (fixes TypingOnly assertion error)
2025-12-12 10:30:15 +11:00
jessikitty
b8724be2f8
Add Python 3.14 compatibility guide with detailed package matrix
2025-12-12 10:28:50 +11:00
jessikitty
9f55b1e455
Update all dependencies for Python 3.14 full compatibility with flexible version ranges
2025-12-12 10:24:47 +11:00
jessikitty
4930d9315c
Update Pillow to >=11.0.0 for Python 3.14+ compatibility (fixes wheel build error)
2025-12-12 10:22:48 +11:00
jessikitty
c561c8ba1a
Update PyMuPDF to >=1.24.0 for Python 3.14+ compatibility (fixes wheel build error)
2025-12-12 10:20:11 +11:00
jessikitty
5e62fc132f
Add documentation for startup scripts
2025-12-12 10:14:56 +11:00
jessikitty
0ec5f2701f
Add Windows Task Scheduler setup script for automatic startup
2025-12-12 10:14:45 +11:00
jessikitty
7cdad10101
Add startup batch file for automatic LEGO Instructions Manager startup
2025-12-12 10:14:34 +11:00
jessikitty
63496b1ccd
Initial commit - LEGO Instructions Manager v1.5.0
2025-12-09 17:20:41 +11:00