bluenevus commited on
Commit
174db07
·
1 Parent(s): 15e0047

Update app.py via AI Editor

Browse files
Files changed (1) hide show
  1. app.py +32 -2
app.py CHANGED
@@ -179,6 +179,7 @@ def update_selected_doc_type(n_clicks_list, btn_ids):
179
  selected_type = btn_ids[idx[-1]]['index']
180
  else:
181
  selected_type = "Shred"
 
182
  return selected_type
183
 
184
  @app.callback(
@@ -229,6 +230,8 @@ def update_output(list_of_contents, list_of_names, existing_files):
229
  ]))
230
  if existing_files is None:
231
  existing_files = []
 
 
232
  shredded_document = None
233
  logging.info("Documents uploaded and file list updated.")
234
  return existing_files + new_files
@@ -245,11 +248,33 @@ def remove_file(n_clicks, existing_files):
245
  ctx = dash.callback_context
246
  if not ctx.triggered:
247
  raise dash.exceptions.PreventUpdate
248
- removed_file = ctx.triggered[0]['prop_id'].split(',')[0].split(':')[-1].strip('}')
 
 
 
 
 
 
 
 
 
 
 
249
  uploaded_files.pop(removed_file, None)
250
  shredded_document = None
251
  logging.info(f"Removed file: {removed_file}")
252
- return [file for file in existing_files if file['props']['children'][1]['props']['children'] != removed_file]
 
 
 
 
 
 
 
 
 
 
 
253
 
254
  @app.callback(
255
  Output('document-preview', 'children'),
@@ -286,6 +311,7 @@ def generate_any_doc(n_clicks_list, btn_ids, radio_values, upload_contents, uplo
286
  current_document = generated
287
  shredded_document = generated
288
  preview = spreadsheet_preview(generated, doc_type)
 
289
  return preview, "Shred generated"
290
  except Exception as e:
291
  logging.error(f"Error generating document: {str(e)}")
@@ -325,21 +351,25 @@ def generate_any_doc(n_clicks_list, btn_ids, radio_values, upload_contents, uplo
325
  pink_review_document = generated
326
  current_document = generated
327
  preview = spreadsheet_preview(generated, doc_type)
 
328
  return preview, f"{doc_type} generated"
329
  elif doc_type in ["Red Review", "Gold Review", "Virtual Board", "LOE"]:
330
  generated = generate_document(doc_type, [doc_content, shredded_document])
331
  current_document = generated
332
  preview = spreadsheet_preview(generated, doc_type)
 
333
  return preview, f"{doc_type} generated"
334
  elif doc_type in ["Pink", "Red", "Gold"]:
335
  generated = generate_document(doc_type, [doc_content])
336
  current_document = generated
337
  preview = dcc.Markdown(generated)
 
338
  return preview, f"{doc_type} generated"
339
  else:
340
  generated = generate_document(doc_type, [doc_content])
341
  current_document = generated
342
  preview = dcc.Markdown(generated)
 
343
  return preview, f"{doc_type} generated"
344
  except Exception as e:
345
  logging.error(f"Error generating document: {str(e)}")
 
179
  selected_type = btn_ids[idx[-1]]['index']
180
  else:
181
  selected_type = "Shred"
182
+ logging.info(f"Doc type selected: {selected_type}")
183
  return selected_type
184
 
185
  @app.callback(
 
230
  ]))
231
  if existing_files is None:
232
  existing_files = []
233
+ elif not isinstance(existing_files, list):
234
+ existing_files = [existing_files]
235
  shredded_document = None
236
  logging.info("Documents uploaded and file list updated.")
237
  return existing_files + new_files
 
248
  ctx = dash.callback_context
249
  if not ctx.triggered:
250
  raise dash.exceptions.PreventUpdate
251
+ # Only proceed if a remove button was actually clicked
252
+ triggered_id = ctx.triggered[0]['prop_id'].split('.')[0]
253
+ if not triggered_id.startswith("{\"type\":\"remove-file\""):
254
+ raise dash.exceptions.PreventUpdate
255
+ try:
256
+ # Parse the file name from the triggered id
257
+ import json
258
+ triggered_dict = json.loads(triggered_id)
259
+ removed_file = triggered_dict['index']
260
+ except Exception as e:
261
+ logging.error(f"Could not parse removed file from callback context: {e}")
262
+ raise dash.exceptions.PreventUpdate
263
  uploaded_files.pop(removed_file, None)
264
  shredded_document = None
265
  logging.info(f"Removed file: {removed_file}")
266
+ # Filter out the removed file from the list
267
+ filtered_files = []
268
+ if existing_files:
269
+ for file in existing_files:
270
+ # Defensive: file['props']['children'][1]['props']['children'] is the filename
271
+ try:
272
+ file_name = file['props']['children'][1]['props']['children']
273
+ if file_name != removed_file:
274
+ filtered_files.append(file)
275
+ except Exception as e:
276
+ filtered_files.append(file)
277
+ return filtered_files
278
 
279
  @app.callback(
280
  Output('document-preview', 'children'),
 
311
  current_document = generated
312
  shredded_document = generated
313
  preview = spreadsheet_preview(generated, doc_type)
314
+ logging.info("Shred document generated.")
315
  return preview, "Shred generated"
316
  except Exception as e:
317
  logging.error(f"Error generating document: {str(e)}")
 
351
  pink_review_document = generated
352
  current_document = generated
353
  preview = spreadsheet_preview(generated, doc_type)
354
+ logging.info("Pink Review document generated.")
355
  return preview, f"{doc_type} generated"
356
  elif doc_type in ["Red Review", "Gold Review", "Virtual Board", "LOE"]:
357
  generated = generate_document(doc_type, [doc_content, shredded_document])
358
  current_document = generated
359
  preview = spreadsheet_preview(generated, doc_type)
360
+ logging.info(f"{doc_type} document generated.")
361
  return preview, f"{doc_type} generated"
362
  elif doc_type in ["Pink", "Red", "Gold"]:
363
  generated = generate_document(doc_type, [doc_content])
364
  current_document = generated
365
  preview = dcc.Markdown(generated)
366
+ logging.info(f"{doc_type} document generated.")
367
  return preview, f"{doc_type} generated"
368
  else:
369
  generated = generate_document(doc_type, [doc_content])
370
  current_document = generated
371
  preview = dcc.Markdown(generated)
372
+ logging.info(f"{doc_type} document generated.")
373
  return preview, f"{doc_type} generated"
374
  except Exception as e:
375
  logging.error(f"Error generating document: {str(e)}")