Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -40,7 +40,7 @@ def upload_files(creators_file, overnight_file, day_file, prime_file):
|
|
40 |
return f"Error uploading files: {e}"
|
41 |
|
42 |
|
43 |
-
def generate_main_accounts():
|
44 |
creators_file = os.path.join(UPLOAD_FOLDER, "creators_file.xlsx")
|
45 |
chatter_files = [
|
46 |
os.path.join(UPLOAD_FOLDER, "overnight_file.xlsx"),
|
@@ -49,14 +49,35 @@ def generate_main_accounts():
|
|
49 |
]
|
50 |
|
51 |
if not all(os.path.exists(path) for path in [creators_file] + chatter_files):
|
52 |
-
return "Missing required files. Please upload all necessary files."
|
53 |
|
54 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
main_assignments = assign_main_accounts(creators_file, chatter_files)
|
56 |
save_processed_files(main_assignments, PROCESSED_FOLDER)
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
except Exception as e:
|
59 |
-
return f"Error during main account generation: {e}"
|
|
|
60 |
|
61 |
|
62 |
def generate_full_schedule():
|
@@ -105,8 +126,22 @@ def app():
|
|
105 |
with gr.Tab("Generate Main Accounts"):
|
106 |
generate_main_btn = gr.Button("Generate Main Accounts")
|
107 |
generate_main_status = gr.Textbox(label="Status", interactive=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
|
109 |
-
|
|
|
|
|
|
|
|
|
|
|
110 |
|
111 |
with gr.Tab("Generate Full Schedule"):
|
112 |
generate_full_btn = gr.Button("Generate Full Schedule")
|
@@ -117,6 +152,7 @@ def app():
|
|
117 |
return interface
|
118 |
|
119 |
|
|
|
120 |
# Launch Gradio App
|
121 |
if __name__ == "__main__":
|
122 |
app().launch()
|
|
|
40 |
return f"Error uploading files: {e}"
|
41 |
|
42 |
|
43 |
+
def generate_main_accounts(updated_data=None):
|
44 |
creators_file = os.path.join(UPLOAD_FOLDER, "creators_file.xlsx")
|
45 |
chatter_files = [
|
46 |
os.path.join(UPLOAD_FOLDER, "overnight_file.xlsx"),
|
|
|
49 |
]
|
50 |
|
51 |
if not all(os.path.exists(path) for path in [creators_file] + chatter_files):
|
52 |
+
return "Missing required files. Please upload all necessary files.", None
|
53 |
|
54 |
try:
|
55 |
+
if updated_data is not None:
|
56 |
+
# If updated data is provided, save it back as the new assignments
|
57 |
+
assignments = {
|
58 |
+
shift: pd.DataFrame([record for record in updated_data if record["Shift"] == shift.capitalize()])
|
59 |
+
for shift in ["overnight", "day", "prime"]
|
60 |
+
}
|
61 |
+
save_processed_files(assignments, PROCESSED_FOLDER)
|
62 |
+
return "Assignments updated successfully!", pd.concat(assignments.values())
|
63 |
+
|
64 |
+
# Generate assignments for preview
|
65 |
main_assignments = assign_main_accounts(creators_file, chatter_files)
|
66 |
save_processed_files(main_assignments, PROCESSED_FOLDER)
|
67 |
+
|
68 |
+
# Combine all shifts into a single DataFrame for preview
|
69 |
+
preview_data = []
|
70 |
+
for shift, data in main_assignments.items():
|
71 |
+
if shift != "creator_names": # Skip creator names
|
72 |
+
for record in data:
|
73 |
+
record["Shift"] = shift.capitalize()
|
74 |
+
preview_data.append(record)
|
75 |
+
|
76 |
+
preview_df = pd.DataFrame(preview_data)
|
77 |
+
return "Main accounts generated successfully!", preview_df
|
78 |
except Exception as e:
|
79 |
+
return f"Error during main account generation: {e}", None
|
80 |
+
|
81 |
|
82 |
|
83 |
def generate_full_schedule():
|
|
|
126 |
with gr.Tab("Generate Main Accounts"):
|
127 |
generate_main_btn = gr.Button("Generate Main Accounts")
|
128 |
generate_main_status = gr.Textbox(label="Status", interactive=False)
|
129 |
+
preview_table = gr.DataFrame(label="Main Account Assignments Preview", interactive=True)
|
130 |
+
update_btn = gr.Button("Update Assignments")
|
131 |
+
|
132 |
+
# Generate assignments and preview
|
133 |
+
generate_main_btn.click(
|
134 |
+
generate_main_accounts,
|
135 |
+
inputs=[],
|
136 |
+
outputs=[generate_main_status, preview_table],
|
137 |
+
)
|
138 |
|
139 |
+
# Update assignments based on supervisor input
|
140 |
+
update_btn.click(
|
141 |
+
generate_main_accounts,
|
142 |
+
inputs=[preview_table],
|
143 |
+
outputs=[generate_main_status, preview_table],
|
144 |
+
)
|
145 |
|
146 |
with gr.Tab("Generate Full Schedule"):
|
147 |
generate_full_btn = gr.Button("Generate Full Schedule")
|
|
|
152 |
return interface
|
153 |
|
154 |
|
155 |
+
|
156 |
# Launch Gradio App
|
157 |
if __name__ == "__main__":
|
158 |
app().launch()
|