in src/backend/entrypoints/streamlit_frontend/state.py [0:0]
def alert_edit_callback(alert_id, keycloak_access_token):
# Get alert info for session restoring
request_headers = {"Authorization": f"Bearer {keycloak_access_token}"}
alert_json = requests.get(f"{ALERTS_BACKEND_SERVICE_URL}/api/v0/alerts/{alert_id}", headers=request_headers)
if alert_json.status_code != 200:
raise ConnectionError(f"Cant obtain alert \n{alert_json.content}")
alert = json.loads(alert_json.content)
# Full current session clear
st.session_state.clear()
restore_indicators(alert)
# Call alert step to restore fields that are not presented in the alert json
alerts_dialogue = alert["alerts_prompt"].split(PROMPTS_SEPARATOR)
st.session_state["alerts_dialogue"] = alerts_dialogue
alert_step(st.session_state)
# Restore alert creation fields
st.session_state["alert_title"] = alert["title"]
for trigger_type_index, trigger_type in enumerate(TRIGGER_TYPES.values()):
if trigger_type == alert["trigger_type"]:
break
st.session_state["trigger_type_index"] = trigger_type_index
st.session_state["alert_message"] = alert["alert_text_template"]
st.session_state["alert_email_receivers"] = alert["alert_emails"]
# Restore timezone and activation time if periodicity == 1 day (86400000 ms)
if alert["periodicity"] == 86400000:
available_timezones = alerts_backend_proxy_singleton.get_available_timezones()
for index, zone in enumerate(available_timezones):
if zone == alert["time_zone"]:
break
st.session_state["timezone_index"] = index
st.session_state["trigger_time"] = convert_ms_to_activation_time(alert["activation_time"])
# Don't know why, but this thing switches to the first tab, which we exactly need
st.empty()