Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -19,7 +19,7 @@ end_date = st.date_input("Project End Date:", value=datetime.today() + timedelta
|
|
| 19 |
|
| 20 |
num_activities = st.number_input("Number of Activities (Minimum 1):", min_value=1, value=5)
|
| 21 |
|
| 22 |
-
activities =
|
| 23 |
for i in range(num_activities):
|
| 24 |
col1, col2 = st.columns(2)
|
| 25 |
with col1:
|
|
@@ -28,7 +28,7 @@ for i in range(num_activities):
|
|
| 28 |
activity_duration = st.number_input(f"Activity {i+1} Duration (days):", min_value=1, key=f"duration_{i}")
|
| 29 |
activities.append({"Task": activity_name, "Duration": activity_duration})
|
| 30 |
|
| 31 |
-
if st.button("Create Gantt Chart"):
|
| 32 |
if not project_name:
|
| 33 |
st.error("Please enter a project name.")
|
| 34 |
elif any(not activity["Task"] for activity in activities):
|
|
@@ -43,4 +43,28 @@ if st.button("Create Gantt Chart"): # The button is now correctly placed
|
|
| 43 |
|
| 44 |
for i in range(len(df)):
|
| 45 |
if i > 0:
|
| 46 |
-
df.loc[i, 'Start'] = df.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
num_activities = st.number_input("Number of Activities (Minimum 1):", min_value=1, value=5)
|
| 21 |
|
| 22 |
+
activities = [] # Corrected line 22: Placed outside the loop
|
| 23 |
for i in range(num_activities):
|
| 24 |
col1, col2 = st.columns(2)
|
| 25 |
with col1:
|
|
|
|
| 28 |
activity_duration = st.number_input(f"Activity {i+1} Duration (days):", min_value=1, key=f"duration_{i}")
|
| 29 |
activities.append({"Task": activity_name, "Duration": activity_duration})
|
| 30 |
|
| 31 |
+
if st.button("Create Gantt Chart"):
|
| 32 |
if not project_name:
|
| 33 |
st.error("Please enter a project name.")
|
| 34 |
elif any(not activity["Task"] for activity in activities):
|
|
|
|
| 43 |
|
| 44 |
for i in range(len(df)):
|
| 45 |
if i > 0:
|
| 46 |
+
df.loc[i, 'Start'] = df.loc[i - 1, 'Finish']
|
| 47 |
+
df.loc[i, 'Finish'] = df.loc[i, 'Start'] + pd.to_timedelta(df.loc[i, 'Duration'], unit='D')
|
| 48 |
+
|
| 49 |
+
df['Start_str'] = df['Start'].dt.strftime('%Y-%m-%d')
|
| 50 |
+
df['Finish_str'] = df['Finish'].dt.strftime('%Y-%m-%d')
|
| 51 |
+
|
| 52 |
+
data = []
|
| 53 |
+
for _, row in df.iterrows():
|
| 54 |
+
data.append(dict(Task=row['Task'], Start=row['Start_str'], Finish=row['Finish_str']))
|
| 55 |
+
|
| 56 |
+
fig = ff.create_gantt(data, colors=[generate_random_color() for _ in range(len(df))],
|
| 57 |
+
index_col='Task', show_colorbar=False, group_tasks=True, bar_width=0.4,
|
| 58 |
+
showgrid_x=True, showgrid_y=True)
|
| 59 |
+
|
| 60 |
+
fig.update_layout(title_text=f"Gantt Chart for: {project_name}", title_x=0.5,
|
| 61 |
+
margin=dict(l=20, r=20, t=60, b=20),
|
| 62 |
+
xaxis=dict(range=[start_date, end_date]),
|
| 63 |
+
height=600)
|
| 64 |
+
|
| 65 |
+
fig.update_yaxes(autorange="reversed")
|
| 66 |
+
|
| 67 |
+
st.plotly_chart(fig, use_container_width=True)
|
| 68 |
+
|
| 69 |
+
except Exception as e:
|
| 70 |
+
st.error(f"An error occurred during chart creation: {e}")
|