Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions flowkit_ui_backend/impl/data_api_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,7 @@ async def get_time_range(

logger.debug(f"Formatting dates...", date_format=date_format)
dates = [row[0].strftime(date_format) for row in result]
populated_dates = dates[:]
min_value = min([row[1] for row in result]) if len(result) > 0 else None
max_value = max([row[2] for row in result]) if len(result) > 0 else None

Expand All @@ -278,6 +279,7 @@ async def get_time_range(
start_date=dates[0],
end_date=dates[-1],
all_dates=dates,
populated_dates=populated_dates,
min_value=min_value,
max_value=max_value,
)
Expand Down
1 change: 1 addition & 0 deletions flowkit_ui_backend/models/time_range.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class TimeRange(BaseModel):
start_date: Optional[str] = None
end_date: Optional[str] = None
all_dates: Optional[List[str]] = None
populated_dates: Optional[List[str]] = None
min_value: Optional[int] = None
max_value: Optional[int] = None

Expand Down
46 changes: 46 additions & 0 deletions resources/generate_translation_sql.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/usr/bin/env python3
"""
Generate SQL UPDATE statements to sync indicator translations from config.json
into the flowkit_ui_backend MySQL database.

Usage:
python3 resources/generate_translation_sql.py > /tmp/update_translations.sql
tailscale ssh root@mobdash-sql-prod "mysql --default-character-set=utf8mb4 -u root -A flowkit_ui_backend" < /tmp/update_translations.sql

Or pipe directly:
python3 resources/generate_translation_sql.py | tailscale ssh root@mobdash-sql-prod "mysql --default-character-set=utf8mb4 -u root -A flowkit_ui_backend"
"""

import json
import os
import sys

config_path = os.path.join(os.path.dirname(__file__), "config.json")

with open(config_path) as f:
config = json.load(f)

langs = {l["code"] for l in config["languages"] if not l.get("default")}

print(
"-- Generated from config.json - updates indicator translations in flowkit_ui_backend"
)
print("-- Languages:", sorted(langs))
print()

for ind in config["indicators"]:
iid = ind["indicator_id"]
translation = {}
for key, val in ind.items():
parts = key.rsplit("_", 1)
if len(parts) == 2 and parts[1] in langs:
translation.setdefault(parts[1], {})[parts[0]] = val
if translation:
escaped = (
json.dumps(translation, ensure_ascii=False)
.replace("\\", "\\\\")
.replace("'", "\\'")
)
print(
f"UPDATE indicator SET translation = '{escaped}' WHERE indicator_id = '{iid}';"
)
Loading