mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-01-25 05:58:50 -06:00
Implement a configuration management system where settings changed via WebUI take priority over .env values, while .env values are used as initial startup values. Changes: - Update ConfigManager.get_setting() to check Settings model first, then environment variables, ensuring WebUI changes have highest priority - Add Settings._initialize_from_env() method to initialize new Settings instances from .env file values on first creation - Update Settings.get_settings() to automatically initialize from .env when creating a new Settings instance - Add Settings initialization in create_app() to ensure .env values are loaded on application startup - Add comprehensive test suite (test_config_priority.py) covering: * Settings priority over environment variables * .env values used as initial startup values * WebUI changes persisting and taking priority * Proper type handling for different setting types This ensures that: 1. .env file values are used as initial configuration on first startup 2. Settings changed via WebUI are saved to database and take priority 3. Configuration priority order: Settings (DB) > .env > app config > defaults Fixes configuration management workflow where users can set initial values in .env but override them permanently via WebUI without modifying .env.