bluenevus commited on
Commit
914ff41
·
1 Parent(s): df93eb7

Update app.py via AI Editor

Browse files
Files changed (1) hide show
  1. app.py +11 -36
app.py CHANGED
@@ -346,7 +346,6 @@ def process_document(action, selected_filename=None, chat_input=None, rfp_decode
346
  return result, None, None, None, None
347
 
348
  elif action == 'loe':
349
- # LOE estimation implementation
350
  if not selected_proposal_filename or selected_proposal_filename not in proposals:
351
  logging.warning("No proposal document selected for LOE estimation.")
352
  return "No proposal document selected for LOE estimation.", None, None, None, None
@@ -617,12 +616,7 @@ def master_callback(
617
 
618
  global gemini_lock, uploaded_documents_bytes
619
 
620
- if triggered_id in [
621
- 'shred-action-btn', 'proposal-action-btn', 'compliance-action-btn',
622
- 'recover-action-btn', 'board-action-btn', 'loe-action-btn'
623
- ] and preview_window_state != "shrunk":
624
- return dash.no_update, dash.no_update, dash.no_update, dash.no_update, dash.no_update, dash.no_update, dash.no_update, "shrunk"
625
-
626
  if triggered_id == 'cancel-action-btn':
627
  output_data_upload = html.Div("[Cancelled by user]\n", style={"wordWrap": "break-word"})
628
  doc_options = [{'label': fn, 'value': fn} for fn in uploaded_documents.keys()]
@@ -638,6 +632,7 @@ def master_callback(
638
  "expanded"
639
  )
640
 
 
641
  if triggered_id == 'upload-document' and rfp_content is not None and rfp_filename:
642
  content_type, content_string = rfp_content.split(',')
643
  decoded = base64.b64decode(content_string)
@@ -670,6 +665,7 @@ def master_callback(
670
  else:
671
  logging.error(f"Failed to decode uploaded proposal: {proposal_filename}")
672
 
 
673
  if triggered_id and isinstance(doc_delete_clicks, list):
674
  for i, n_click in enumerate(doc_delete_clicks):
675
  if n_click:
@@ -720,7 +716,12 @@ def master_callback(
720
 
721
  output_data_upload = html.Div("No action taken yet.", style={"wordWrap": "break-word"})
722
 
723
- if triggered_id in ['shred-action-btn', 'compliance-action-btn', 'board-action-btn']:
 
 
 
 
 
724
  got_lock = gemini_lock.acquire(blocking=False)
725
  if not got_lock:
726
  output_data_upload = html.Div("Another Gemini operation is in progress. Please wait or cancel.", style={"wordWrap": "break-word"})
@@ -747,33 +748,7 @@ def master_callback(
747
  action_name, doc_value, chat_input, uploaded_rfp_decoded_bytes, proposal_value
748
  )
749
  output_data_upload = dcc.Markdown(result, style={"whiteSpace": "pre-wrap", "wordWrap": "break-word"})
750
- finally:
751
- gemini_lock.release()
752
- doc_options = [{'label': fn, 'value': fn} for fn in uploaded_documents.keys()]
753
- doc_value = doc_value if doc_value in uploaded_documents else (next(iter(uploaded_documents), None) if uploaded_documents else None)
754
- proposal_options = [{'label': fn, 'value': fn} for fn in proposals.keys()]
755
- proposal_value = proposal_value if proposal_value in proposals else (next(iter(proposals), None) if proposals else None)
756
- documents_list = get_documents_list(uploaded_documents, shredded_documents)
757
- proposals_list = get_proposals_list(proposals)
758
- return (
759
- output_data_upload,
760
- documents_list, doc_options, doc_value,
761
- proposals_list, proposal_options, proposal_value,
762
- "expanded"
763
- )
764
-
765
- if triggered_id in ['proposal-action-btn', 'recover-action-btn', 'loe-action-btn']:
766
- got_lock = gemini_lock.acquire(blocking=False)
767
- if not got_lock:
768
- output_data_upload = html.Div("Another Gemini operation is in progress. Please wait or cancel.", style={"wordWrap": "break-word"})
769
- return (
770
- output_data_upload,
771
- documents_list, doc_options, doc_value,
772
- proposals_list, proposal_options, proposal_value,
773
- "expanded"
774
- )
775
- try:
776
- if triggered_id == "proposal-action-btn":
777
  action_name = "proposal"
778
  selected_bytes = uploaded_documents_bytes.get(doc_value, None)
779
  result, _, _, generated_filename, generated_docx_bytes = process_document(
@@ -804,7 +779,7 @@ def master_callback(
804
  output_data_upload,
805
  documents_list, doc_options, doc_value,
806
  proposals_list, proposal_options, proposal_value,
807
- "expanded"
808
  )
809
 
810
  doc_value = doc_value if doc_value in uploaded_documents else (next(iter(uploaded_documents), None) if uploaded_documents else None)
 
346
  return result, None, None, None, None
347
 
348
  elif action == 'loe':
 
349
  if not selected_proposal_filename or selected_proposal_filename not in proposals:
350
  logging.warning("No proposal document selected for LOE estimation.")
351
  return "No proposal document selected for LOE estimation.", None, None, None, None
 
616
 
617
  global gemini_lock, uploaded_documents_bytes
618
 
619
+ # Cancel action
 
 
 
 
 
620
  if triggered_id == 'cancel-action-btn':
621
  output_data_upload = html.Div("[Cancelled by user]\n", style={"wordWrap": "break-word"})
622
  doc_options = [{'label': fn, 'value': fn} for fn in uploaded_documents.keys()]
 
632
  "expanded"
633
  )
634
 
635
+ # Handle uploads
636
  if triggered_id == 'upload-document' and rfp_content is not None and rfp_filename:
637
  content_type, content_string = rfp_content.split(',')
638
  decoded = base64.b64decode(content_string)
 
665
  else:
666
  logging.error(f"Failed to decode uploaded proposal: {proposal_filename}")
667
 
668
+ # Handle deletes
669
  if triggered_id and isinstance(doc_delete_clicks, list):
670
  for i, n_click in enumerate(doc_delete_clicks):
671
  if n_click:
 
716
 
717
  output_data_upload = html.Div("No action taken yet.", style={"wordWrap": "break-word"})
718
 
719
+ action_btns = [
720
+ 'shred-action-btn', 'proposal-action-btn', 'compliance-action-btn',
721
+ 'recover-action-btn', 'board-action-btn', 'loe-action-btn'
722
+ ]
723
+
724
+ if triggered_id in action_btns:
725
  got_lock = gemini_lock.acquire(blocking=False)
726
  if not got_lock:
727
  output_data_upload = html.Div("Another Gemini operation is in progress. Please wait or cancel.", style={"wordWrap": "break-word"})
 
748
  action_name, doc_value, chat_input, uploaded_rfp_decoded_bytes, proposal_value
749
  )
750
  output_data_upload = dcc.Markdown(result, style={"whiteSpace": "pre-wrap", "wordWrap": "break-word"})
751
+ elif triggered_id == "proposal-action-btn":
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
752
  action_name = "proposal"
753
  selected_bytes = uploaded_documents_bytes.get(doc_value, None)
754
  result, _, _, generated_filename, generated_docx_bytes = process_document(
 
779
  output_data_upload,
780
  documents_list, doc_options, doc_value,
781
  proposals_list, proposal_options, proposal_value,
782
+ "shrunk"
783
  )
784
 
785
  doc_value = doc_value if doc_value in uploaded_documents else (next(iter(uploaded_documents), None) if uploaded_documents else None)