Spaces:
Paused
Paused
Update app.py via AI Editor
Browse files
app.py
CHANGED
|
@@ -66,8 +66,6 @@ def process_document(action, selected_filename=None, chat_input=None, selected_p
|
|
| 66 |
logging.info(f"Process document called with action: {action}")
|
| 67 |
|
| 68 |
doc_content = None
|
| 69 |
-
# Actions "shred" and "generate" use the RFP/SOW/PWS/RFI document dropdown.
|
| 70 |
-
# If needed, proposal document available in selected_proposal.
|
| 71 |
if action in ["shred", "generate"]:
|
| 72 |
if selected_filename and selected_filename in uploaded_documents:
|
| 73 |
doc_content = uploaded_documents[selected_filename]
|
|
@@ -186,16 +184,10 @@ def get_uploaded_proposal_list(docdict):
|
|
| 186 |
app.layout = dbc.Container([
|
| 187 |
dbc.Row([
|
| 188 |
dbc.Col([
|
| 189 |
-
dbc.Card([
|
| 190 |
-
dbc.CardHeader(html.H3("Documents")),
|
| 191 |
-
dbc.CardBody([
|
| 192 |
-
html.Div(id='uploaded-doc-list')
|
| 193 |
-
])
|
| 194 |
-
], className="mb-3"),
|
| 195 |
-
|
| 196 |
dbc.Card([
|
| 197 |
dbc.CardHeader(html.H5("RFP/SOW/PWS/RFI")),
|
| 198 |
dbc.CardBody([
|
|
|
|
| 199 |
dcc.Dropdown(
|
| 200 |
id='select-document-dropdown',
|
| 201 |
options=[{'label': fn, 'value': fn} for fn in uploaded_documents.keys()],
|
|
@@ -228,6 +220,7 @@ app.layout = dbc.Container([
|
|
| 228 |
dbc.Card([
|
| 229 |
dbc.CardHeader(html.H5("Proposal")),
|
| 230 |
dbc.CardBody([
|
|
|
|
| 231 |
dcc.Dropdown(
|
| 232 |
id='select-proposal-dropdown',
|
| 233 |
options=[{'label': fn, 'value': fn} for fn in uploaded_proposals.keys()],
|
|
@@ -313,7 +306,6 @@ def update_uploaded_docs(
|
|
| 313 |
output_document_upload = ""
|
| 314 |
output_proposal_upload = ""
|
| 315 |
|
| 316 |
-
# --- Handle RFP/SOW/PWS/RFI document upload ---
|
| 317 |
if rfp_content is not None and rfp_filename:
|
| 318 |
content_type, content_string = rfp_content.split(',')
|
| 319 |
decoded = base64.b64decode(content_string)
|
|
@@ -326,7 +318,6 @@ def update_uploaded_docs(
|
|
| 326 |
output_document_upload = html.Div("Error: Could not decode document. Please upload a valid text file.", style={"wordWrap": "break-word"})
|
| 327 |
logging.error(f"Failed to decode uploaded document: {rfp_filename}")
|
| 328 |
|
| 329 |
-
# --- Handle Proposal document upload ---
|
| 330 |
if proposal_content is not None and proposal_filename:
|
| 331 |
content_type, content_string = proposal_content.split(',')
|
| 332 |
decoded = base64.b64decode(content_string)
|
|
@@ -339,7 +330,6 @@ def update_uploaded_docs(
|
|
| 339 |
output_proposal_upload = html.Div("Error: Could not decode proposal. Please upload a valid text file.", style={"wordWrap": "break-word"})
|
| 340 |
logging.error(f"Failed to decode uploaded proposal: {proposal_filename}")
|
| 341 |
|
| 342 |
-
# --- Handle RFP/SOW/PWS/RFI document delete ---
|
| 343 |
if rfp_delete_clicks:
|
| 344 |
for i, n_click in enumerate(rfp_delete_clicks):
|
| 345 |
if n_click:
|
|
@@ -351,7 +341,6 @@ def update_uploaded_docs(
|
|
| 351 |
if selected_doc == del_filename:
|
| 352 |
selected_doc = next(iter(uploaded_documents), None)
|
| 353 |
break
|
| 354 |
-
# --- Handle Proposal document delete ---
|
| 355 |
if proposal_delete_clicks:
|
| 356 |
for i, n_click in enumerate(proposal_delete_clicks):
|
| 357 |
if n_click:
|
|
|
|
| 66 |
logging.info(f"Process document called with action: {action}")
|
| 67 |
|
| 68 |
doc_content = None
|
|
|
|
|
|
|
| 69 |
if action in ["shred", "generate"]:
|
| 70 |
if selected_filename and selected_filename in uploaded_documents:
|
| 71 |
doc_content = uploaded_documents[selected_filename]
|
|
|
|
| 184 |
app.layout = dbc.Container([
|
| 185 |
dbc.Row([
|
| 186 |
dbc.Col([
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 187 |
dbc.Card([
|
| 188 |
dbc.CardHeader(html.H5("RFP/SOW/PWS/RFI")),
|
| 189 |
dbc.CardBody([
|
| 190 |
+
get_uploaded_doc_list(uploaded_documents),
|
| 191 |
dcc.Dropdown(
|
| 192 |
id='select-document-dropdown',
|
| 193 |
options=[{'label': fn, 'value': fn} for fn in uploaded_documents.keys()],
|
|
|
|
| 220 |
dbc.Card([
|
| 221 |
dbc.CardHeader(html.H5("Proposal")),
|
| 222 |
dbc.CardBody([
|
| 223 |
+
get_uploaded_proposal_list(uploaded_proposals),
|
| 224 |
dcc.Dropdown(
|
| 225 |
id='select-proposal-dropdown',
|
| 226 |
options=[{'label': fn, 'value': fn} for fn in uploaded_proposals.keys()],
|
|
|
|
| 306 |
output_document_upload = ""
|
| 307 |
output_proposal_upload = ""
|
| 308 |
|
|
|
|
| 309 |
if rfp_content is not None and rfp_filename:
|
| 310 |
content_type, content_string = rfp_content.split(',')
|
| 311 |
decoded = base64.b64decode(content_string)
|
|
|
|
| 318 |
output_document_upload = html.Div("Error: Could not decode document. Please upload a valid text file.", style={"wordWrap": "break-word"})
|
| 319 |
logging.error(f"Failed to decode uploaded document: {rfp_filename}")
|
| 320 |
|
|
|
|
| 321 |
if proposal_content is not None and proposal_filename:
|
| 322 |
content_type, content_string = proposal_content.split(',')
|
| 323 |
decoded = base64.b64decode(content_string)
|
|
|
|
| 330 |
output_proposal_upload = html.Div("Error: Could not decode proposal. Please upload a valid text file.", style={"wordWrap": "break-word"})
|
| 331 |
logging.error(f"Failed to decode uploaded proposal: {proposal_filename}")
|
| 332 |
|
|
|
|
| 333 |
if rfp_delete_clicks:
|
| 334 |
for i, n_click in enumerate(rfp_delete_clicks):
|
| 335 |
if n_click:
|
|
|
|
| 341 |
if selected_doc == del_filename:
|
| 342 |
selected_doc = next(iter(uploaded_documents), None)
|
| 343 |
break
|
|
|
|
| 344 |
if proposal_delete_clicks:
|
| 345 |
for i, n_click in enumerate(proposal_delete_clicks):
|
| 346 |
if n_click:
|