Spaces:
Paused
Paused
Update app.py via AI Editor
Browse files
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
|
520 |
stores = [dash.no_update]*8
|
521 |
-
upload_name = ""
|
522 |
if not contents_list or not filenames_list:
|
523 |
-
return
|
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 |
-
|
548 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|