Improved readability

parent 5b0da3e1
...@@ -2080,6 +2080,66 @@ class Migration_027_AddDefaultIntroTemplatesConfig(DatabaseMigration): ...@@ -2080,6 +2080,66 @@ class Migration_027_AddDefaultIntroTemplatesConfig(DatabaseMigration):
logger.error(f"Failed to remove default intro templates configuration: {e}") logger.error(f"Failed to remove default intro templates configuration: {e}")
return False return False
class Migration_028_AddFixtureRefreshIntervalConfig(DatabaseMigration):
"""Add fixture refresh interval configuration for web dashboard"""
def __init__(self):
super().__init__("028", "Add fixture refresh interval configuration for web dashboard")
def up(self, db_manager) -> bool:
"""Add fixture refresh interval configuration to game_config table"""
try:
with db_manager.engine.connect() as conn:
# Check if fixture_refresh_interval already exists
result = conn.execute(text("""
SELECT COUNT(*) FROM game_config WHERE config_key = 'fixture_refresh_interval'
"""))
exists = result.scalar() > 0
if not exists:
conn.execute(text("""
INSERT INTO game_config
(config_key, config_value, value_type, description, is_system, created_at, updated_at)
VALUES (:config_key, :config_value, :value_type, :description, :is_system, datetime('now'), datetime('now'))
"""), {
'config_key': 'fixture_refresh_interval',
'config_value': '15',
'value_type': 'int',
'description': 'Auto-refresh interval in seconds for fixture pages in web dashboard',
'is_system': False
})
logger.info("Added fixture refresh interval configuration (15 seconds)")
else:
logger.info("Fixture refresh interval configuration already exists")
conn.commit()
logger.info("Fixture refresh interval configuration migration completed successfully")
return True
except Exception as e:
logger.error(f"Failed to add fixture refresh interval configuration: {e}")
return False
def down(self, db_manager) -> bool:
"""Remove fixture refresh interval configuration"""
try:
with db_manager.engine.connect() as conn:
# Remove the fixture refresh interval configuration
conn.execute(text("""
DELETE FROM game_config WHERE config_key = 'fixture_refresh_interval'
"""))
conn.commit()
logger.info("Fixture refresh interval configuration removed")
return True
except Exception as e:
logger.error(f"Failed to remove fixture refresh interval configuration: {e}")
return False
# Registry of all migrations in order # Registry of all migrations in order
MIGRATIONS: List[DatabaseMigration] = [ MIGRATIONS: List[DatabaseMigration] = [
Migration_001_InitialSchema(), Migration_001_InitialSchema(),
...@@ -2109,6 +2169,7 @@ MIGRATIONS: List[DatabaseMigration] = [ ...@@ -2109,6 +2169,7 @@ MIGRATIONS: List[DatabaseMigration] = [
Migration_025_AddResultOptionModel(), Migration_025_AddResultOptionModel(),
Migration_026_AddExtractionStatsTable(), Migration_026_AddExtractionStatsTable(),
Migration_027_AddDefaultIntroTemplatesConfig(), Migration_027_AddDefaultIntroTemplatesConfig(),
Migration_028_AddFixtureRefreshIntervalConfig(),
] ]
......
...@@ -244,8 +244,8 @@ let isInitialLoad = true; ...@@ -244,8 +244,8 @@ let isInitialLoad = true;
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
loadFixtureDetails(); loadFixtureDetails();
// Set up auto-refresh every 5 seconds // Set up auto-refresh every 15 seconds
setInterval(loadFixtureDetails, 5000); setInterval(loadFixtureDetails, 15000);
}); });
function loadFixtureDetails() { function loadFixtureDetails() {
......
...@@ -167,8 +167,8 @@ document.addEventListener('DOMContentLoaded', function() { ...@@ -167,8 +167,8 @@ document.addEventListener('DOMContentLoaded', function() {
resetBtn.addEventListener('click', resetFixtures); resetBtn.addEventListener('click', resetFixtures);
} }
// Auto-refresh fixtures every 5 seconds // Auto-refresh fixtures every 15 seconds
setInterval(loadFixtures, 5000); setInterval(loadFixtures, 15000);
}); });
let isInitialLoad = true; let isInitialLoad = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment