bluenevus commited on
Commit
ba0c167
·
1 Parent(s): 27430be

Update app.py via AI Editor

Browse files
Files changed (1) hide show
  1. app.py +18 -16
app.py CHANGED
@@ -240,7 +240,6 @@ def get_right_col_content(selected_type, store_data):
240
  children=[html.Div(id="loading-output")]
241
  ))
242
 
243
- # For Shred, show upload
244
  if selected_type == "Shred":
245
  controls.append(
246
  html.Div([
@@ -265,7 +264,6 @@ def get_right_col_content(selected_type, store_data):
265
  file_list_component()
266
  ])
267
  )
268
- # For others, show dependency uploads and previews
269
  elif selected_type in doc_dependencies:
270
  sources = doc_dependencies[selected_type]["source"]
271
  for src in sources:
@@ -495,7 +493,6 @@ def handle_shred_upload(contents, filenames, current_shred, file_list):
495
  logging.info("Shred document uploaded and stored.")
496
  return latest_text, file_previews, filenames[-1]
497
 
498
- # Pattern-matching callback for all dependency uploads
499
  @app.callback(
500
  [
501
  Output('store-pink', 'data'),
@@ -506,7 +503,6 @@ def handle_shred_upload(contents, filenames, current_shred, file_list):
506
  Output('store-gold-review', 'data'),
507
  Output('store-loe', 'data'),
508
  Output('store-virtual-board', 'data'),
509
- Output({'type': 'uploaded-doc-name', 'subtype': MATCH, 'index': MATCH}, 'children')
510
  ],
511
  [
512
  Input({'type': 'upload-doc-type', 'subtype': ALL, 'index': ALL}, 'contents')
@@ -516,11 +512,10 @@ def handle_shred_upload(contents, filenames, current_shred, file_list):
516
  ],
517
  prevent_initial_call=True
518
  )
519
- def handle_dep_upload(contents_list, filenames_list):
520
  stores = [dash.no_update]*8
521
- upload_name = ""
522
  if not contents_list or not filenames_list:
523
- return [dash.no_update]*8 + [upload_name]
524
  for i, (contents, filenames) in enumerate(zip(contents_list, filenames_list)):
525
  if contents and filenames:
526
  if isinstance(contents, str):
@@ -528,7 +523,7 @@ def handle_dep_upload(contents_list, filenames_list):
528
  filenames = [filenames]
529
  for content, name in zip(contents, filenames):
530
  file_text = process_document(content, name)
531
- if 'pink' in name.lower():
532
  stores[0] = file_text
533
  elif 'pink_review' in name.lower():
534
  stores[1] = file_text
@@ -544,8 +539,21 @@ def handle_dep_upload(contents_list, filenames_list):
544
  stores[6] = file_text
545
  elif 'virtual' in name.lower():
546
  stores[7] = file_text
547
- upload_name = name
548
- return stores + [upload_name]
 
 
 
 
 
 
 
 
 
 
 
 
 
549
 
550
  @app.callback(
551
  Output('document-preview', 'children'),
@@ -569,7 +577,6 @@ def preview_or_generate_doc(n_clicks_list, selected_type, shred, pink, pink_revi
569
  ctx = callback_context
570
  trigger = ctx.triggered[0]['prop_id'] if ctx.triggered else ""
571
  logging.info(f"Document preview trigger: {trigger}")
572
- # If generate button pressed
573
  if any(n_clicks_list):
574
  logging.info(f"Generating document for type: {selected_type}")
575
  inputs = {
@@ -612,12 +619,9 @@ def preview_or_generate_doc(n_clicks_list, selected_type, shred, pink, pink_revi
612
  preview = markdown_narrative_preview(generated_doc)
613
  logging.info("Document preview updated.")
614
  return preview
615
- # If just switching doc type, show preview of loaded doc (from store)
616
  else:
617
- # For Shred, show table preview
618
  if selected_type == "Shred" and shred:
619
  return markdown_table_preview(shred)
620
- # For spreadsheet types, preview from store
621
  elif selected_type in spreadsheet_types:
622
  doc_store = {
623
  "Pink Review": pink_review,
@@ -628,7 +632,6 @@ def preview_or_generate_doc(n_clicks_list, selected_type, shred, pink, pink_revi
628
  }
629
  doc = doc_store.get(selected_type, "")
630
  return markdown_table_preview(doc)
631
- # For narrative types, preview from store
632
  elif selected_type in narrative_types:
633
  doc_store = {
634
  "Pink": pink,
@@ -685,7 +688,6 @@ def update_generated_doc(n_clicks_list, selected_type, preview_content, shred, p
685
  )
686
  def download_document(n_clicks, selected_type, generated_doc, shred, pink, pink_review, red, red_review, gold, gold_review, loe, virtual_board):
687
  doc = generated_doc
688
- # If not generated, try to get from store for preview/download
689
  if not doc:
690
  if selected_type == "Shred":
691
  doc = shred
 
240
  children=[html.Div(id="loading-output")]
241
  ))
242
 
 
243
  if selected_type == "Shred":
244
  controls.append(
245
  html.Div([
 
264
  file_list_component()
265
  ])
266
  )
 
267
  elif selected_type in doc_dependencies:
268
  sources = doc_dependencies[selected_type]["source"]
269
  for src in sources:
 
493
  logging.info("Shred document uploaded and stored.")
494
  return latest_text, file_previews, filenames[-1]
495
 
 
496
  @app.callback(
497
  [
498
  Output('store-pink', 'data'),
 
503
  Output('store-gold-review', 'data'),
504
  Output('store-loe', 'data'),
505
  Output('store-virtual-board', 'data'),
 
506
  ],
507
  [
508
  Input({'type': 'upload-doc-type', 'subtype': ALL, 'index': ALL}, 'contents')
 
512
  ],
513
  prevent_initial_call=True
514
  )
515
+ def handle_dep_upload_to_stores(contents_list, filenames_list):
516
  stores = [dash.no_update]*8
 
517
  if not contents_list or not filenames_list:
518
+ return stores
519
  for i, (contents, filenames) in enumerate(zip(contents_list, filenames_list)):
520
  if contents and filenames:
521
  if isinstance(contents, str):
 
523
  filenames = [filenames]
524
  for content, name in zip(contents, filenames):
525
  file_text = process_document(content, name)
526
+ if 'pink' in name.lower() and 'review' not in name.lower():
527
  stores[0] = file_text
528
  elif 'pink_review' in name.lower():
529
  stores[1] = file_text
 
539
  stores[6] = file_text
540
  elif 'virtual' in name.lower():
541
  stores[7] = file_text
542
+ return stores
543
+
544
+ @app.callback(
545
+ Output({'type': 'uploaded-doc-name', 'subtype': MATCH, 'index': MATCH}, 'children'),
546
+ [
547
+ Input({'type': 'upload-doc-type', 'subtype': MATCH, 'index': MATCH}, 'filename')
548
+ ],
549
+ prevent_initial_call=True
550
+ )
551
+ def update_uploaded_doc_name(filename):
552
+ if not filename:
553
+ return ""
554
+ if isinstance(filename, list):
555
+ return filename[-1]
556
+ return filename
557
 
558
  @app.callback(
559
  Output('document-preview', 'children'),
 
577
  ctx = callback_context
578
  trigger = ctx.triggered[0]['prop_id'] if ctx.triggered else ""
579
  logging.info(f"Document preview trigger: {trigger}")
 
580
  if any(n_clicks_list):
581
  logging.info(f"Generating document for type: {selected_type}")
582
  inputs = {
 
619
  preview = markdown_narrative_preview(generated_doc)
620
  logging.info("Document preview updated.")
621
  return preview
 
622
  else:
 
623
  if selected_type == "Shred" and shred:
624
  return markdown_table_preview(shred)
 
625
  elif selected_type in spreadsheet_types:
626
  doc_store = {
627
  "Pink Review": pink_review,
 
632
  }
633
  doc = doc_store.get(selected_type, "")
634
  return markdown_table_preview(doc)
 
635
  elif selected_type in narrative_types:
636
  doc_store = {
637
  "Pink": pink,
 
688
  )
689
  def download_document(n_clicks, selected_type, generated_doc, shred, pink, pink_review, red, red_review, gold, gold_review, loe, virtual_board):
690
  doc = generated_doc
 
691
  if not doc:
692
  if selected_type == "Shred":
693
  doc = shred