Xpolymer123 commited on
Commit
cfc1d6e
·
verified ·
1 Parent(s): bf51e2c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -3
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"): # The button is now correctly placed
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}")