Update app.py
Browse files
app.py
CHANGED
@@ -43,7 +43,13 @@ def create_tables():
|
|
43 |
|
44 |
create_tables()
|
45 |
|
46 |
-
# Sidebar Navigation
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
st.sidebar.title("CAFM Navigation")
|
48 |
|
49 |
# Define navigation options
|
@@ -55,21 +61,19 @@ pages = {
|
|
55 |
"Reporting & Analytics": "π"
|
56 |
}
|
57 |
|
58 |
-
selected_page = None
|
59 |
-
|
60 |
st.sidebar.markdown("---")
|
61 |
for page, icon in pages.items():
|
62 |
if st.sidebar.button(f"{icon} {page}"):
|
63 |
-
|
64 |
|
65 |
-
|
66 |
-
|
67 |
|
68 |
# Home Page
|
69 |
if selected_page == "Home":
|
70 |
st.title("Welcome to the Computer-Aided Facility Management (CAFM) System")
|
71 |
st.image(
|
72 |
-
"https://via.placeholder.com/800x300.png?text=CAFM+System",
|
73 |
use_container_width=True
|
74 |
)
|
75 |
st.markdown("""
|
@@ -82,7 +86,7 @@ elif selected_page == "Asset Management":
|
|
82 |
st.title("Asset Management")
|
83 |
st.markdown("Manage and monitor your facility's assets efficiently.")
|
84 |
|
85 |
-
with st.form("asset_form"
|
86 |
site_name = st.text_input("Site Name")
|
87 |
asset_name = st.text_input("Asset Name")
|
88 |
asset_type = st.text_input("Asset Type")
|
@@ -97,6 +101,7 @@ elif selected_page == "Asset Management":
|
|
97 |
''', (site_name, asset_name, asset_type, maintenance_history, warranty, current_condition))
|
98 |
conn.commit()
|
99 |
st.success("Asset added successfully!")
|
|
|
100 |
|
101 |
st.subheader("Asset List")
|
102 |
assets = pd.read_sql_query("SELECT * FROM assets", conn)
|
@@ -107,7 +112,7 @@ elif selected_page == "Work Order Management":
|
|
107 |
st.title("Work Order Management")
|
108 |
st.markdown("Streamline the management of work orders from creation to completion.")
|
109 |
|
110 |
-
with st.form("work_order_form"
|
111 |
site_name = st.text_input("Site Name")
|
112 |
work_order_description = st.text_area("Work Order Description")
|
113 |
assigned_to = st.text_input("Assigned To")
|
@@ -120,6 +125,7 @@ elif selected_page == "Work Order Management":
|
|
120 |
''', (site_name, work_order_description, assigned_to, status, datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
121 |
conn.commit()
|
122 |
st.success("Work order created successfully!")
|
|
|
123 |
|
124 |
st.subheader("Work Orders")
|
125 |
work_orders = pd.read_sql_query("SELECT * FROM work_orders", conn)
|
@@ -130,7 +136,7 @@ elif selected_page == "Preventive Maintenance":
|
|
130 |
st.title("Preventive Maintenance")
|
131 |
st.markdown("Plan and manage preventive maintenance tasks to ensure asset longevity.")
|
132 |
|
133 |
-
with st.form("maintenance_form"
|
134 |
site_name = st.text_input("Site Name")
|
135 |
task_name = st.text_input("Task Name")
|
136 |
schedule_date = st.date_input("Schedule Date")
|
@@ -143,6 +149,7 @@ elif selected_page == "Preventive Maintenance":
|
|
143 |
''', (site_name, task_name, schedule_date, status))
|
144 |
conn.commit()
|
145 |
st.success("Task scheduled successfully!")
|
|
|
146 |
|
147 |
st.subheader("Scheduled Maintenance")
|
148 |
maintenance = pd.read_sql_query("SELECT * FROM preventive_maintenance", conn)
|
|
|
43 |
|
44 |
create_tables()
|
45 |
|
46 |
+
# Sidebar Navigation with Session State to retain page state
|
47 |
+
if "page" not in st.session_state:
|
48 |
+
st.session_state.page = "Home"
|
49 |
+
|
50 |
+
def navigate_to(page):
|
51 |
+
st.session_state.page = page
|
52 |
+
|
53 |
st.sidebar.title("CAFM Navigation")
|
54 |
|
55 |
# Define navigation options
|
|
|
61 |
"Reporting & Analytics": "π"
|
62 |
}
|
63 |
|
|
|
|
|
64 |
st.sidebar.markdown("---")
|
65 |
for page, icon in pages.items():
|
66 |
if st.sidebar.button(f"{icon} {page}"):
|
67 |
+
navigate_to(page)
|
68 |
|
69 |
+
# Main Page Logic
|
70 |
+
selected_page = st.session_state.page
|
71 |
|
72 |
# Home Page
|
73 |
if selected_page == "Home":
|
74 |
st.title("Welcome to the Computer-Aided Facility Management (CAFM) System")
|
75 |
st.image(
|
76 |
+
"https://via.placeholder.com/800x300.png?text=CAFM+System",
|
77 |
use_container_width=True
|
78 |
)
|
79 |
st.markdown("""
|
|
|
86 |
st.title("Asset Management")
|
87 |
st.markdown("Manage and monitor your facility's assets efficiently.")
|
88 |
|
89 |
+
with st.form("asset_form"):
|
90 |
site_name = st.text_input("Site Name")
|
91 |
asset_name = st.text_input("Asset Name")
|
92 |
asset_type = st.text_input("Asset Type")
|
|
|
101 |
''', (site_name, asset_name, asset_type, maintenance_history, warranty, current_condition))
|
102 |
conn.commit()
|
103 |
st.success("Asset added successfully!")
|
104 |
+
st.experimental_rerun()
|
105 |
|
106 |
st.subheader("Asset List")
|
107 |
assets = pd.read_sql_query("SELECT * FROM assets", conn)
|
|
|
112 |
st.title("Work Order Management")
|
113 |
st.markdown("Streamline the management of work orders from creation to completion.")
|
114 |
|
115 |
+
with st.form("work_order_form"):
|
116 |
site_name = st.text_input("Site Name")
|
117 |
work_order_description = st.text_area("Work Order Description")
|
118 |
assigned_to = st.text_input("Assigned To")
|
|
|
125 |
''', (site_name, work_order_description, assigned_to, status, datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
126 |
conn.commit()
|
127 |
st.success("Work order created successfully!")
|
128 |
+
st.experimental_rerun()
|
129 |
|
130 |
st.subheader("Work Orders")
|
131 |
work_orders = pd.read_sql_query("SELECT * FROM work_orders", conn)
|
|
|
136 |
st.title("Preventive Maintenance")
|
137 |
st.markdown("Plan and manage preventive maintenance tasks to ensure asset longevity.")
|
138 |
|
139 |
+
with st.form("maintenance_form"):
|
140 |
site_name = st.text_input("Site Name")
|
141 |
task_name = st.text_input("Task Name")
|
142 |
schedule_date = st.date_input("Schedule Date")
|
|
|
149 |
''', (site_name, task_name, schedule_date, status))
|
150 |
conn.commit()
|
151 |
st.success("Task scheduled successfully!")
|
152 |
+
st.experimental_rerun()
|
153 |
|
154 |
st.subheader("Scheduled Maintenance")
|
155 |
maintenance = pd.read_sql_query("SELECT * FROM preventive_maintenance", conn)
|