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)
|