ElPierrito commited on
Commit
400b909
·
verified ·
1 Parent(s): 9a1c576

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -7
app.py CHANGED
@@ -46,12 +46,12 @@ def add_campaign(name, goal, product, channel, start, end, budget, responsible):
46
  total = df["Budget (CHF)"].sum()
47
  return df, f"💰 Gesamtbudget: CHF {total:.2f}"
48
 
49
- def delete_campaign(index):
50
- if 0 <= index < len(campaigns):
51
- del campaigns[index]
52
  df = pd.DataFrame(campaigns)
53
  total = df["Budget (CHF)"].sum() if not df.empty else 0
54
- return df, f"💰 Gesamtbudget: CHF {total:.2f}"
55
 
56
  def export_csv():
57
  df = pd.DataFrame(campaigns)
@@ -109,8 +109,12 @@ with gr.Blocks() as app:
109
  delete_btn = gr.Button("🗑️ Kampagne löschen")
110
  output_table = gr.Dataframe()
111
  budget_total = gr.Textbox(label="Budget Gesamt", interactive=False)
112
- delete_index = gr.Number(label="Index der Kampagne zum Löschen", precision=0)
 
 
113
  delete_btn = gr.Button("🗑️ Kampagne löschen")
 
 
114
  export_btn = gr.Button("📤 Export CSV")
115
  csv_file = gr.File(label="📄 Herunterladen", interactive=False)
116
  gr.Markdown("### 📈 Gantt-Visualisierung")
@@ -127,9 +131,21 @@ with gr.Blocks() as app:
127
  start_btn.click(go_to_login, outputs=[start_page, login_page])
128
  login_btn.click(login, [user, pw], outputs=[start_page, login_page, planner_page, login_status])
129
  suggest_btn.click(suggest_campaign, [product, goal, channel], idea)
130
- submit_btn.click(add_campaign, [name, goal, product, channel, start, end, budget, responsible], [output_table, budget_total])
131
- delete_btn.click(delete_campaign, [delete_index], [output_table, budget_total])
 
 
 
 
 
 
 
 
 
 
132
  export_btn.click(export_csv, outputs=csv_file)
 
 
133
  update_chart.click(generate_gantt, outputs=gantt_html)
134
 
135
  # Optional: Logout oder Reset
 
46
  total = df["Budget (CHF)"].sum()
47
  return df, f"💰 Gesamtbudget: CHF {total:.2f}"
48
 
49
+ def delete_campaign_by_name(name):
50
+ global campaigns
51
+ campaigns = [c for c in campaigns if c["Name"] != name]
52
  df = pd.DataFrame(campaigns)
53
  total = df["Budget (CHF)"].sum() if not df.empty else 0
54
+ return df, f"💰 Gesamtbudget: CHF {total:.2f}", gr.update(choices=[c["Name"] for c in campaigns])
55
 
56
  def export_csv():
57
  df = pd.DataFrame(campaigns)
 
109
  delete_btn = gr.Button("🗑️ Kampagne löschen")
110
  output_table = gr.Dataframe()
111
  budget_total = gr.Textbox(label="Budget Gesamt", interactive=False)
112
+
113
+ # 🗑️ Kampagnen löschen (Dropdown)
114
+ delete_name = gr.Dropdown(label="Kampagne zum Löschen", choices=[], interactive=True)
115
  delete_btn = gr.Button("🗑️ Kampagne löschen")
116
+
117
+ # Export & Visualisierung
118
  export_btn = gr.Button("📤 Export CSV")
119
  csv_file = gr.File(label="📄 Herunterladen", interactive=False)
120
  gr.Markdown("### 📈 Gantt-Visualisierung")
 
131
  start_btn.click(go_to_login, outputs=[start_page, login_page])
132
  login_btn.click(login, [user, pw], outputs=[start_page, login_page, planner_page, login_status])
133
  suggest_btn.click(suggest_campaign, [product, goal, channel], idea)
134
+
135
+ # Kampagne speichern + Dropdown aktualisieren
136
+ submit_btn.click(
137
+ add_campaign,
138
+ [name, goal, product, channel, start, end, budget, responsible],
139
+ [output_table, budget_total]
140
+ ).then(lambda: gr.update(choices=[c["Name"] for c in campaigns]), None, delete_name)
141
+
142
+ # Kampagne löschen
143
+ delete_btn.click(delete_campaign_by_name, [delete_name], [output_table, budget_total, delete_name])
144
+
145
+ # CSV Export
146
  export_btn.click(export_csv, outputs=csv_file)
147
+
148
+ # Gantt aktualisieren
149
  update_chart.click(generate_gantt, outputs=gantt_html)
150
 
151
  # Optional: Logout oder Reset