Dries Peeters
69f9f1140d
feat(i18n): add translations, locale switcher, and user language preference
...
- Integrate Flask-Babel and i18n utilities; initialize in app factory
- Add `preferred_language` to `User` with Alembic migration (011_add_user_preferred_language)
- Add `babel.cfg` and `scripts/extract_translations.py`
- Add `translations/` for en, de, fr, it, nl, fi
- Update templates to use `_()` and add language picker in navbar/profile
- Respect locale in routes and context processors; persist user preference
- Update requirements and Docker/Docker entrypoint for Babel/gettext support
- Minor copy and style adjustments across pages
Migration: run `alembic upgrade head`
2025-09-11 23:08:41 +02:00
Dries Peeters
7486037307
feat: local SQLite test env, UI fixes, and DB migrations
...
- UI/UX: Refine layouts and responsive styles; fix task and timer views; update
shared components and dashboard templates
- Updates across `app/templates/**`, `templates/**`, `app/static/base.css`,
and `app/static/mobile.css`
- Backend: Route cleanups and minor fixes for admin, auth, invoices, and timer
- Touches `app/routes/admin.py`, `app/routes/auth.py`, `app/routes/api.py`,
`app/routes/invoices.py`, `app/routes/timer.py`
- DevOps: Improve Docker setup and add local testing workflow
- Update `Dockerfile`, `docker/start-fixed.py`
- Add `docker-compose.local-test.yml`, `.env.local-test`, start scripts
- Docs: Update `README.md` and add `docs/LOCAL_TESTING_WITH_SQLITE.md`
- Utilities: Adjust CLI and PDF generator behavior
Database (Alembic) migrations:
- 005_add_missing_columns.py
- 006_add_logo_and_task_timestamps.py
- 007_add_invoice_and_more_settings_columns.py
- 008_align_invoices_and_settings_more.py
- 009_add_invoice_created_by.py
- 010_enforce_single_active_timer.py
BREAKING CHANGE: Only one active timer per user is now enforced.
Note: Apply database migrations after deploy (e.g., `alembic upgrade head`).
2025-09-10 11:49:49 +02:00
Dries Peeters
1ac98b6baa
Update to fix displaying the correct version number.
2025-09-03 11:05:10 +02:00
Dries Peeters
8a378b7078
feat(clients,license,db): add client management, enhanced DB init, and tests
...
- Clients: add model, routes, and templates
- app/models/client.py
- app/routes/clients.py
- templates/clients/{create,edit,list,view}.html
- docs/CLIENT_MANAGEMENT_README.md
- Database: add enhanced init/verify scripts, migrations, and docs
- docker/{init-database-enhanced.py,start-enhanced.py,verify-database.py}
- docs/ENHANCED_DATABASE_STARTUP.md
- migrations/{add_analytics_column.sql,add_analytics_setting.py,migrate_to_client_model.py}
- Scripts: add version manager and docker network test helpers
- scripts/version-manager.{bat,ps1,py,sh}
- scripts/test-docker-network.{bat,sh}
- docs/VERSION_MANAGEMENT.md
- UI: tweak base stylesheet
- app/static/base.css
- Tests: add client system test
- test_client_system.py
2025-09-01 11:34:45 +02:00
Dries Peeters
1b3a703c04
feat: comprehensive project cleanup and timezone enhancement
...
- Remove redundant documentation files (DATABASE_INIT_FIX_*.md, TIMEZONE_FIX_README.md)
- Delete unused Docker files (Dockerfile.test, Dockerfile.combined, docker-compose.yml)
- Remove obsolete deployment scripts (deploy.sh) and unused files (index.html, _config.yml)
- Clean up logs directory (remove 2MB timetracker.log, keep .gitkeep)
- Remove .pytest_cache directory
- Consolidate Docker setup to two main container types:
* Simple container (recommended for production)
* Public container (for development/testing)
- Enhance timezone support in admin settings:
* Add 100+ timezone options organized by region
* Implement real-time timezone preview with current time display
* Add timezone offset calculation and display
* Remove search functionality for cleaner interface
* Update timezone utility functions for database-driven configuration
- Update documentation:
* Revise README.md to reflect current project state
* Add comprehensive timezone features documentation
* Update Docker deployment instructions
* Create PROJECT_STRUCTURE.md for project overview
* Remove references to deleted files
- Improve project structure:
* Streamlined file organization
* Better maintainability and focus
* Preserved all essential functionality
* Cleaner deployment options
2025-08-28 14:52:09 +02:00
Dries Peeters
c92f9e196b
V1.0.0 version push
2025-08-16 21:49:43 +02:00