3morrrrr commited on
Commit
78977a5
·
verified ·
1 Parent(s): 26e101f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -5
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
- return "Main accounts generated successfully!"
 
 
 
 
 
 
 
 
 
 
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
- generate_main_btn.click(generate_main_accounts, outputs=[generate_main_status])
 
 
 
 
 
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()