Spaces:
Paused
Paused
Update app.py via AI Editor
Browse files
app.py
CHANGED
@@ -342,7 +342,7 @@ def get_right_col_content(selected_type, store_data):
|
|
342 |
},
|
343 |
multiple=False
|
344 |
),
|
345 |
-
|
346 |
dbc.RadioItems(
|
347 |
id={'type': 'radio-doc-source', 'subtype': src, 'index': selected_type},
|
348 |
options=[
|
@@ -491,14 +491,6 @@ def update_right_col(selected_type):
|
|
491 |
Output('store-virtual-board', 'data'),
|
492 |
Output('file-list', 'children'),
|
493 |
Output('uploaded-doc-name-shred', 'children'),
|
494 |
-
Output('uploaded-doc-name-pink', 'children'),
|
495 |
-
Output('uploaded-doc-name-pink_review', 'children'),
|
496 |
-
Output('uploaded-doc-name-red', 'children'),
|
497 |
-
Output('uploaded-doc-name-red_review', 'children'),
|
498 |
-
Output('uploaded-doc-name-gold', 'children'),
|
499 |
-
Output('uploaded-doc-name-gold_review', 'children'),
|
500 |
-
Output('uploaded-doc-name-loe', 'children'),
|
501 |
-
Output('uploaded-doc-name-virtual_board', 'children'),
|
502 |
Output('document-preview', 'children'),
|
503 |
Output('store-generated-doc', 'data'),
|
504 |
Output('download-document', 'data'),
|
@@ -529,7 +521,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
529 |
filenames_lists, shred, pink, pink_review, red, red_review, gold, gold_review, loe, virtual_board, prev_generated):
|
530 |
stores = [shred, pink, pink_review, red, red_review, gold, gold_review, loe, virtual_board]
|
531 |
file_list = []
|
532 |
-
|
533 |
preview = dash.no_update
|
534 |
generated_doc = dash.no_update
|
535 |
download_data = dash.no_update
|
@@ -539,15 +531,15 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
539 |
trigger = ctx.triggered[0]['prop_id'] if ctx.triggered else ""
|
540 |
|
541 |
subtype_map = {
|
542 |
-
"shred":
|
543 |
-
"pink":
|
544 |
-
"pink_review":
|
545 |
-
"red":
|
546 |
-
"red_review":
|
547 |
-
"gold":
|
548 |
-
"gold_review":
|
549 |
-
"loe":
|
550 |
-
"virtual_board":
|
551 |
}
|
552 |
|
553 |
# Handle upload
|
@@ -556,7 +548,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
556 |
if contents and filenames:
|
557 |
id_dict = ctx.inputs_list[0][i]['id']
|
558 |
subtype = id_dict['subtype']
|
559 |
-
idx
|
560 |
if isinstance(contents, str):
|
561 |
contents = [contents]
|
562 |
filenames = [filenames]
|
@@ -565,7 +557,6 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
565 |
file_text = process_document(content, name)
|
566 |
set_uploaded_doc(subtype, file_text, name)
|
567 |
stores[idx] = file_text
|
568 |
-
doc_names[doc_name_idx] = name
|
569 |
if subtype == "shred":
|
570 |
file_list = [
|
571 |
dbc.Row([
|
@@ -579,6 +570,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
579 |
)
|
580 |
], id={'type': 'file-row', 'index': name}, align="center", className="mb-1")
|
581 |
]
|
|
|
582 |
progress = "progress"
|
583 |
# Set preview for this upload
|
584 |
if subtype == "shred":
|
@@ -589,7 +581,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
589 |
preview = markdown_table_preview(file_text)
|
590 |
generated_doc = dash.no_update
|
591 |
download_data = dash.no_update
|
592 |
-
return stores + [file_list
|
593 |
|
594 |
# Handle Generate
|
595 |
if any(n_clicks_generate_list):
|
@@ -634,7 +626,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
634 |
preview = markdown_narrative_preview(generated_doc)
|
635 |
progress = "progress"
|
636 |
download_data = dash.no_update
|
637 |
-
return stores + [file_list
|
638 |
|
639 |
# Handle Download
|
640 |
if "btn-download" in trigger:
|
@@ -662,19 +654,19 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
662 |
doc = stores[8]
|
663 |
if not doc:
|
664 |
logging.warning("No generated document to download.")
|
665 |
-
return stores + [file_list
|
666 |
if selected_type in spreadsheet_types:
|
667 |
xlsx_io = markdown_tables_to_xlsx(doc)
|
668 |
logging.info("Spreadsheet document prepared for download.")
|
669 |
download_data = dcc.send_bytes(xlsx_io.getvalue(), filename=f"{selected_type}_output.xlsx")
|
670 |
progress = "progress"
|
671 |
-
return stores + [file_list
|
672 |
else:
|
673 |
content = doc.encode('utf-8')
|
674 |
logging.info("Narrative document prepared for download.")
|
675 |
download_data = dcc.send_bytes(content, filename=f"{selected_type}_output.md")
|
676 |
progress = "progress"
|
677 |
-
return stores + [file_list
|
678 |
|
679 |
# Handle Doc Type Change/Preview
|
680 |
doc = get_generated_doc(selected_type)
|
@@ -701,12 +693,12 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
701 |
preview = markdown_narrative_preview(doc)
|
702 |
else:
|
703 |
preview = html.Div("No document loaded.")
|
704 |
-
return stores + [file_list
|
705 |
if selected_type in spreadsheet_types:
|
706 |
preview = markdown_table_preview(doc)
|
707 |
else:
|
708 |
preview = markdown_narrative_preview(doc)
|
709 |
-
return stores + [file_list
|
710 |
|
711 |
@app.callback(
|
712 |
Output("main-progress-dot-output", "children"),
|
|
|
342 |
},
|
343 |
multiple=False
|
344 |
),
|
345 |
+
# Only the 'shred' one is present in layout, so don't add for others
|
346 |
dbc.RadioItems(
|
347 |
id={'type': 'radio-doc-source', 'subtype': src, 'index': selected_type},
|
348 |
options=[
|
|
|
491 |
Output('store-virtual-board', 'data'),
|
492 |
Output('file-list', 'children'),
|
493 |
Output('uploaded-doc-name-shred', 'children'),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
494 |
Output('document-preview', 'children'),
|
495 |
Output('store-generated-doc', 'data'),
|
496 |
Output('download-document', 'data'),
|
|
|
521 |
filenames_lists, shred, pink, pink_review, red, red_review, gold, gold_review, loe, virtual_board, prev_generated):
|
522 |
stores = [shred, pink, pink_review, red, red_review, gold, gold_review, loe, virtual_board]
|
523 |
file_list = []
|
524 |
+
uploaded_doc_name_shred = dash.no_update
|
525 |
preview = dash.no_update
|
526 |
generated_doc = dash.no_update
|
527 |
download_data = dash.no_update
|
|
|
531 |
trigger = ctx.triggered[0]['prop_id'] if ctx.triggered else ""
|
532 |
|
533 |
subtype_map = {
|
534 |
+
"shred": 0,
|
535 |
+
"pink": 1,
|
536 |
+
"pink_review": 2,
|
537 |
+
"red": 3,
|
538 |
+
"red_review": 4,
|
539 |
+
"gold": 5,
|
540 |
+
"gold_review": 6,
|
541 |
+
"loe": 7,
|
542 |
+
"virtual_board": 8
|
543 |
}
|
544 |
|
545 |
# Handle upload
|
|
|
548 |
if contents and filenames:
|
549 |
id_dict = ctx.inputs_list[0][i]['id']
|
550 |
subtype = id_dict['subtype']
|
551 |
+
idx = subtype_map[subtype]
|
552 |
if isinstance(contents, str):
|
553 |
contents = [contents]
|
554 |
filenames = [filenames]
|
|
|
557 |
file_text = process_document(content, name)
|
558 |
set_uploaded_doc(subtype, file_text, name)
|
559 |
stores[idx] = file_text
|
|
|
560 |
if subtype == "shred":
|
561 |
file_list = [
|
562 |
dbc.Row([
|
|
|
570 |
)
|
571 |
], id={'type': 'file-row', 'index': name}, align="center", className="mb-1")
|
572 |
]
|
573 |
+
uploaded_doc_name_shred = name
|
574 |
progress = "progress"
|
575 |
# Set preview for this upload
|
576 |
if subtype == "shred":
|
|
|
581 |
preview = markdown_table_preview(file_text)
|
582 |
generated_doc = dash.no_update
|
583 |
download_data = dash.no_update
|
584 |
+
return stores + [file_list, uploaded_doc_name_shred, preview, generated_doc, download_data, progress]
|
585 |
|
586 |
# Handle Generate
|
587 |
if any(n_clicks_generate_list):
|
|
|
626 |
preview = markdown_narrative_preview(generated_doc)
|
627 |
progress = "progress"
|
628 |
download_data = dash.no_update
|
629 |
+
return stores + [file_list, uploaded_doc_name_shred, preview, generated_doc, download_data, progress]
|
630 |
|
631 |
# Handle Download
|
632 |
if "btn-download" in trigger:
|
|
|
654 |
doc = stores[8]
|
655 |
if not doc:
|
656 |
logging.warning("No generated document to download.")
|
657 |
+
return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, dash.no_update, dash.no_update]
|
658 |
if selected_type in spreadsheet_types:
|
659 |
xlsx_io = markdown_tables_to_xlsx(doc)
|
660 |
logging.info("Spreadsheet document prepared for download.")
|
661 |
download_data = dcc.send_bytes(xlsx_io.getvalue(), filename=f"{selected_type}_output.xlsx")
|
662 |
progress = "progress"
|
663 |
+
return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, download_data, progress]
|
664 |
else:
|
665 |
content = doc.encode('utf-8')
|
666 |
logging.info("Narrative document prepared for download.")
|
667 |
download_data = dcc.send_bytes(content, filename=f"{selected_type}_output.md")
|
668 |
progress = "progress"
|
669 |
+
return stores + [file_list, uploaded_doc_name_shred, dash.no_update, dash.no_update, download_data, progress]
|
670 |
|
671 |
# Handle Doc Type Change/Preview
|
672 |
doc = get_generated_doc(selected_type)
|
|
|
693 |
preview = markdown_narrative_preview(doc)
|
694 |
else:
|
695 |
preview = html.Div("No document loaded.")
|
696 |
+
return stores + [file_list, uploaded_doc_name_shred, preview, dash.no_update, dash.no_update, dash.no_update]
|
697 |
if selected_type in spreadsheet_types:
|
698 |
preview = markdown_table_preview(doc)
|
699 |
else:
|
700 |
preview = markdown_narrative_preview(doc)
|
701 |
+
return stores + [file_list, uploaded_doc_name_shred, preview, doc, dash.no_update, dash.no_update]
|
702 |
|
703 |
@app.callback(
|
704 |
Output("main-progress-dot-output", "children"),
|