Spaces:
Paused
Paused
Update app.py via AI Editor
Browse files
app.py
CHANGED
@@ -35,12 +35,10 @@ SESSION_STORE = {}
|
|
35 |
def get_session_id():
|
36 |
ctx = dash.callback_context
|
37 |
sid = None
|
38 |
-
# Dash >=2.9.0 supports flask request in ctx.request
|
39 |
if hasattr(ctx, "request") and hasattr(ctx.request, "cookies"):
|
40 |
cookies = ctx.request.cookies
|
41 |
sid = cookies.get('dash_session', None)
|
42 |
if not sid:
|
43 |
-
# fallback
|
44 |
sid = str(uuid.uuid4())
|
45 |
return sid
|
46 |
|
@@ -643,7 +641,6 @@ def master_callback(
|
|
643 |
proposal_delete_clicks = safe_get_n_clicks(ctx, 12)
|
644 |
uploaded_rfp_decoded_bytes = None
|
645 |
|
646 |
-
# Cancel action
|
647 |
if triggered_id == 'cancel-action-btn':
|
648 |
output_data_upload = html.Div("[Cancelled by user]\n", style={"wordWrap": "break-word"})
|
649 |
doc_options = [{'label': truncate_filename(fn), 'value': fn} for fn in sess_data["uploaded_documents"].keys()]
|
@@ -659,7 +656,6 @@ def master_callback(
|
|
659 |
"expanded"
|
660 |
)
|
661 |
|
662 |
-
# Handle uploads
|
663 |
if triggered_id == 'upload-document' and rfp_content is not None and rfp_filename:
|
664 |
content_type, content_string = rfp_content.split(',')
|
665 |
decoded = base64.b64decode(content_string)
|
@@ -692,7 +688,6 @@ def master_callback(
|
|
692 |
else:
|
693 |
logging.error(f"[{session_id}] Failed to decode uploaded proposal: {proposal_filename}")
|
694 |
|
695 |
-
# Handle deletes
|
696 |
if triggered_id and isinstance(doc_delete_clicks, list):
|
697 |
for i, n_click in enumerate(doc_delete_clicks):
|
698 |
if n_click:
|
@@ -818,26 +813,6 @@ def master_callback(
|
|
818 |
"expanded"
|
819 |
)
|
820 |
|
821 |
-
@app.callback(
|
822 |
-
Output('documents-list', 'children'),
|
823 |
-
Output('select-document-dropdown', 'options'),
|
824 |
-
Output('select-document-dropdown', 'value'),
|
825 |
-
Output('proposals-list', 'children'),
|
826 |
-
Output('select-proposal-dropdown', 'options'),
|
827 |
-
Output('select-proposal-dropdown', 'value'),
|
828 |
-
Input('output-data-upload', 'children')
|
829 |
-
)
|
830 |
-
def update_lists_on_output(children):
|
831 |
-
session_id = get_session_id()
|
832 |
-
sess_data = get_session_data(session_id)
|
833 |
-
documents_list = get_documents_list(sess_data["uploaded_documents"], sess_data["shredded_documents"])
|
834 |
-
doc_options = [{'label': truncate_filename(fn), 'value': fn} for fn in sess_data["uploaded_documents"].keys()]
|
835 |
-
doc_value = next(iter(sess_data["uploaded_documents"]), None) if sess_data["uploaded_documents"] else None
|
836 |
-
proposals_list = get_proposals_list(sess_data["proposals"])
|
837 |
-
proposal_options = [{'label': truncate_filename(fn), 'value': fn} for fn in sess_data["proposals"].keys()]
|
838 |
-
proposal_value = next(iter(sess_data["proposals"]), None) if sess_data["proposals"] else None
|
839 |
-
return documents_list, doc_options, doc_value, proposals_list, proposal_options, proposal_value
|
840 |
-
|
841 |
if __name__ == '__main__':
|
842 |
print("Starting the Dash application...")
|
843 |
app.run(debug=True, host='0.0.0.0', port=7860, threaded=True)
|
|
|
35 |
def get_session_id():
|
36 |
ctx = dash.callback_context
|
37 |
sid = None
|
|
|
38 |
if hasattr(ctx, "request") and hasattr(ctx.request, "cookies"):
|
39 |
cookies = ctx.request.cookies
|
40 |
sid = cookies.get('dash_session', None)
|
41 |
if not sid:
|
|
|
42 |
sid = str(uuid.uuid4())
|
43 |
return sid
|
44 |
|
|
|
641 |
proposal_delete_clicks = safe_get_n_clicks(ctx, 12)
|
642 |
uploaded_rfp_decoded_bytes = None
|
643 |
|
|
|
644 |
if triggered_id == 'cancel-action-btn':
|
645 |
output_data_upload = html.Div("[Cancelled by user]\n", style={"wordWrap": "break-word"})
|
646 |
doc_options = [{'label': truncate_filename(fn), 'value': fn} for fn in sess_data["uploaded_documents"].keys()]
|
|
|
656 |
"expanded"
|
657 |
)
|
658 |
|
|
|
659 |
if triggered_id == 'upload-document' and rfp_content is not None and rfp_filename:
|
660 |
content_type, content_string = rfp_content.split(',')
|
661 |
decoded = base64.b64decode(content_string)
|
|
|
688 |
else:
|
689 |
logging.error(f"[{session_id}] Failed to decode uploaded proposal: {proposal_filename}")
|
690 |
|
|
|
691 |
if triggered_id and isinstance(doc_delete_clicks, list):
|
692 |
for i, n_click in enumerate(doc_delete_clicks):
|
693 |
if n_click:
|
|
|
813 |
"expanded"
|
814 |
)
|
815 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
816 |
if __name__ == '__main__':
|
817 |
print("Starting the Dash application...")
|
818 |
app.run(debug=True, host='0.0.0.0', port=7860, threaded=True)
|