Update app.py
Browse files
app.py
CHANGED
|
@@ -1461,34 +1461,24 @@ if 'show_admin' not in st.session_state:
|
|
| 1461 |
st.session_state.show_admin = False
|
| 1462 |
|
| 1463 |
def show_save_status_indicator():
|
| 1464 |
-
"""Visa status-indikator för auto-save
|
| 1465 |
if st.session_state.saving_in_progress:
|
| 1466 |
st.markdown("""
|
| 1467 |
<div class='auto-save-indicator saving'>
|
| 1468 |
-
💾 Sparar
|
| 1469 |
</div>
|
| 1470 |
""", unsafe_allow_html=True)
|
| 1471 |
-
|
| 1472 |
elif st.session_state.last_save_time:
|
| 1473 |
-
|
| 1474 |
-
|
| 1475 |
-
|
| 1476 |
-
|
| 1477 |
-
|
| 1478 |
-
|
| 1479 |
-
✅ Sparad automatiskt! <span style='font-size: 0.85em; opacity: 0.8;'>({timestamp})</span>
|
| 1480 |
-
</div>
|
| 1481 |
-
""", unsafe_allow_html=True)
|
| 1482 |
-
else:
|
| 1483 |
-
st.markdown(f"""
|
| 1484 |
-
<div class='auto-save-indicator'>
|
| 1485 |
-
💾 Auto-sparar vid ändringar <span style='font-size: 0.85em; opacity: 0.7;'>• Senast sparad: {timestamp}</span>
|
| 1486 |
-
</div>
|
| 1487 |
-
""", unsafe_allow_html=True)
|
| 1488 |
else:
|
| 1489 |
st.markdown("""
|
| 1490 |
<div class='auto-save-indicator'>
|
| 1491 |
-
💾
|
| 1492 |
</div>
|
| 1493 |
""", unsafe_allow_html=True)
|
| 1494 |
|
|
@@ -1656,16 +1646,6 @@ else:
|
|
| 1656 |
st.error(f"❌ Inga områden hittades för Account ID: {account_id}")
|
| 1657 |
st.stop()
|
| 1658 |
|
| 1659 |
-
# Visa tydlig bekräftelse om autosave just körts
|
| 1660 |
-
if 'show_save_success' in st.session_state and st.session_state.show_save_success:
|
| 1661 |
-
save_info = st.session_state.show_save_success
|
| 1662 |
-
num_changes = save_info['count']
|
| 1663 |
-
|
| 1664 |
-
st.success(f"✅ {num_changes} ändring{'ar' if num_changes > 1 else ''} har sparats!", icon="✅")
|
| 1665 |
-
st.toast(f"✅ Sparad!", icon="✅")
|
| 1666 |
-
|
| 1667 |
-
del st.session_state.show_save_success
|
| 1668 |
-
|
| 1669 |
# Välkomstmeddelande med företagsinfo
|
| 1670 |
hardware_summary = get_hardware_summary(company_areas)
|
| 1671 |
main_contact_name = get_main_contact_name(company_areas)
|
|
@@ -2002,10 +1982,6 @@ else:
|
|
| 2002 |
print(f"[DEBUG] Totalt {len(changes_list)} ändringar hittade")
|
| 2003 |
print(f"[DEBUG] === AUTO-SAVE CHECK END ===")
|
| 2004 |
|
| 2005 |
-
# Visa i UI om ändringar upptäckts (för debug)
|
| 2006 |
-
if changes_list and not st.session_state.saving_in_progress:
|
| 2007 |
-
st.info(f"🔍 Upptäckte {len(changes_list)} ändring{'ar' if len(changes_list) > 1 else ''} - sparar...", icon="💾")
|
| 2008 |
-
|
| 2009 |
if changes_list:
|
| 2010 |
# Sätt flagga för att förhindra flera samtidiga sparningar
|
| 2011 |
st.session_state.saving_in_progress = True
|
|
@@ -2027,10 +2003,18 @@ else:
|
|
| 2027 |
|
| 2028 |
if success:
|
| 2029 |
print(f"[DEBUG] Sparning lyckades!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2030 |
st.session_state.last_save_time = datetime.now()
|
| 2031 |
st.session_state.saving_in_progress = False
|
| 2032 |
|
| 2033 |
-
#
|
|
|
|
|
|
|
|
|
|
| 2034 |
st.cache_resource.clear()
|
| 2035 |
new_df = get_sheet_data(sheet)
|
| 2036 |
if new_df is not None:
|
|
@@ -2039,12 +2023,6 @@ else:
|
|
| 2039 |
st.session_state.original_data = company_areas.drop(columns=HIDDEN_COLUMNS, errors='ignore').copy()
|
| 2040 |
|
| 2041 |
print(f"[DEBUG] Data uppdaterad, kör rerun...")
|
| 2042 |
-
|
| 2043 |
-
# Spara meddelande för att visa efter rerun
|
| 2044 |
-
st.session_state.show_save_success = {
|
| 2045 |
-
'count': len(changes_list),
|
| 2046 |
-
'message': message
|
| 2047 |
-
}
|
| 2048 |
st.rerun()
|
| 2049 |
else:
|
| 2050 |
st.session_state.saving_in_progress = False
|
|
|
|
| 1461 |
st.session_state.show_admin = False
|
| 1462 |
|
| 1463 |
def show_save_status_indicator():
|
| 1464 |
+
"""Visa enkel status-indikator för auto-save"""
|
| 1465 |
if st.session_state.saving_in_progress:
|
| 1466 |
st.markdown("""
|
| 1467 |
<div class='auto-save-indicator saving'>
|
| 1468 |
+
💾 Sparar ändringar...
|
| 1469 |
</div>
|
| 1470 |
""", unsafe_allow_html=True)
|
|
|
|
| 1471 |
elif st.session_state.last_save_time:
|
| 1472 |
+
timestamp = st.session_state.last_save_time.strftime('%H:%M:%S')
|
| 1473 |
+
st.markdown(f"""
|
| 1474 |
+
<div class='auto-save-indicator'>
|
| 1475 |
+
💾 Auto-sparar vid ändringar <span style='font-size: 0.85em; opacity: 0.7;'>• Senast: {timestamp}</span>
|
| 1476 |
+
</div>
|
| 1477 |
+
""", unsafe_allow_html=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1478 |
else:
|
| 1479 |
st.markdown("""
|
| 1480 |
<div class='auto-save-indicator'>
|
| 1481 |
+
💾 Ändrar du något sparas det automatiskt
|
| 1482 |
</div>
|
| 1483 |
""", unsafe_allow_html=True)
|
| 1484 |
|
|
|
|
| 1646 |
st.error(f"❌ Inga områden hittades för Account ID: {account_id}")
|
| 1647 |
st.stop()
|
| 1648 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1649 |
# Välkomstmeddelande med företagsinfo
|
| 1650 |
hardware_summary = get_hardware_summary(company_areas)
|
| 1651 |
main_contact_name = get_main_contact_name(company_areas)
|
|
|
|
| 1982 |
print(f"[DEBUG] Totalt {len(changes_list)} ändringar hittade")
|
| 1983 |
print(f"[DEBUG] === AUTO-SAVE CHECK END ===")
|
| 1984 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1985 |
if changes_list:
|
| 1986 |
# Sätt flagga för att förhindra flera samtidiga sparningar
|
| 1987 |
st.session_state.saving_in_progress = True
|
|
|
|
| 2003 |
|
| 2004 |
if success:
|
| 2005 |
print(f"[DEBUG] Sparning lyckades!")
|
| 2006 |
+
|
| 2007 |
+
# Visa success DIREKT (innan rerun)
|
| 2008 |
+
st.success(f"✅ {len(changes_list)} ändring{'ar' if len(changes_list) > 1 else ''} har sparats i Google Sheets!", icon="✅")
|
| 2009 |
+
|
| 2010 |
+
# Uppdatera timestamps
|
| 2011 |
st.session_state.last_save_time = datetime.now()
|
| 2012 |
st.session_state.saving_in_progress = False
|
| 2013 |
|
| 2014 |
+
# Ge användaren tid att se meddelandet
|
| 2015 |
+
time.sleep(1.5)
|
| 2016 |
+
|
| 2017 |
+
# Uppdatera data från Google Sheets
|
| 2018 |
st.cache_resource.clear()
|
| 2019 |
new_df = get_sheet_data(sheet)
|
| 2020 |
if new_df is not None:
|
|
|
|
| 2023 |
st.session_state.original_data = company_areas.drop(columns=HIDDEN_COLUMNS, errors='ignore').copy()
|
| 2024 |
|
| 2025 |
print(f"[DEBUG] Data uppdaterad, kör rerun...")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2026 |
st.rerun()
|
| 2027 |
else:
|
| 2028 |
st.session_state.saving_in_progress = False
|