Refactor settings system and improve context initialization
Backend: - Add type validation and coercion for settings API - Implement SettingStorage and SettingType in registry - Improve CRUD operations for settings Frontend: - Refactor Theme, Language, Sidebar, ViewMode contexts - Simplify admin components (GeneralTab, SettingsTab, UsersTab) - Add new settings endpoints to API client - Improve App initialization flow Infrastructure: - Update Dockerfile and docker-compose.yml - Add .dockerignore - Update Makefile and README 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -138,16 +138,17 @@ async def startup_event():
|
||||
# Seed default settings from registry
|
||||
from sqlalchemy.orm import Session
|
||||
from app import crud
|
||||
from app.core.settings_registry import get_database_defaults
|
||||
from app.core.settings_registry import SettingScope, get_database_settings
|
||||
|
||||
with Session(engine) as db:
|
||||
# Get all database settings with defaults from registry
|
||||
default_settings = get_database_defaults()
|
||||
# Seed only GLOBAL database settings with defaults from registry
|
||||
for setting_def in get_database_settings():
|
||||
if setting_def.scope != SettingScope.GLOBAL:
|
||||
continue
|
||||
|
||||
for key, value in default_settings.items():
|
||||
if crud.settings.get_setting(db, key) is None:
|
||||
logger.info(f"Seeding default setting: {key}={value}")
|
||||
crud.settings.update_setting(db, key, value)
|
||||
if crud.settings.get_setting(db, setting_def.key) is None:
|
||||
logger.info(f"Seeding default setting: {setting_def.key}={setting_def.default}")
|
||||
crud.settings.update_setting(db, setting_def.key, setting_def.default)
|
||||
|
||||
|
||||
# Shutdown event
|
||||
|
||||
Reference in New Issue
Block a user