Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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
|
| 50 |
-
|
| 51 |
-
|
| 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 |
-
|
|
|
|
|
|
|
| 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 |
-
|
| 131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|