bluenevus commited on
Commit
6914bb7
·
1 Parent(s): 9b92a27

Update app.py via AI Editor

Browse files
Files changed (1) hide show
  1. app.py +22 -3
app.py CHANGED
@@ -192,6 +192,7 @@ app.layout = dbc.Container(
192
  [
193
  dcc.Store(id='session-id-store', storage_type='session'),
194
  dcc.Store(id='session-store', storage_type='session'),
 
195
  dbc.Row(
196
  [
197
  dbc.Col(
@@ -379,7 +380,7 @@ def handle_upload(contents, filename, clear_n, delete_upload_n_list, split_n, de
379
  html.Div(
380
  dbc.Button(
381
  "Download All (ZIP)", color="primary", size="lg", className='mb-3 mt-4',
382
- href=f"/download_zip/{session_id}/split_files.zip"
383
  ),
384
  style={'marginTop': '30px', 'display': 'block' if split_files else 'none'}
385
  ),
@@ -456,7 +457,7 @@ def handle_upload(contents, filename, clear_n, delete_upload_n_list, split_n, de
456
  split_files_list = get_split_files_ui(split_files, session_id)
457
  download_zip_btn = dbc.Button(
458
  "Download All (ZIP)", color="primary", size="lg", className='mb-3 mt-4',
459
- href=f"/download_zip/{session_id}/split_files.zip"
460
  )
461
  results = html.Div([
462
  html.H5("Split Files:"),
@@ -483,7 +484,7 @@ def handle_upload(contents, filename, clear_n, delete_upload_n_list, split_n, de
483
  split_files_list = get_split_files_ui(split_files, session_id)
484
  download_zip_btn = dbc.Button(
485
  "Download All (ZIP)", color="primary", size="lg", className='mb-3 mt-4',
486
- href=f"/download_zip/{session_id}/split_files.zip"
487
  )
488
  results = html.Div([
489
  html.H5("Split Files:"),
@@ -508,6 +509,24 @@ def handle_upload(contents, filename, clear_n, delete_upload_n_list, split_n, de
508
  logging.info(f"handle_upload: No action taken, returning current session_data for session {session_id}")
509
  return "", True, get_split_results_placeholder(), session_data
510
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
511
  @app.server.route('/download_zip/<session_id>/<filename>')
512
  def download_zip_file(session_id, filename):
513
  session_dir = get_session_dir(session_id)
 
192
  [
193
  dcc.Store(id='session-id-store', storage_type='session'),
194
  dcc.Store(id='session-store', storage_type='session'),
195
+ dcc.Download(id="download-zip-dcc"),
196
  dbc.Row(
197
  [
198
  dbc.Col(
 
380
  html.Div(
381
  dbc.Button(
382
  "Download All (ZIP)", color="primary", size="lg", className='mb-3 mt-4',
383
+ id="download-zip-btn"
384
  ),
385
  style={'marginTop': '30px', 'display': 'block' if split_files else 'none'}
386
  ),
 
457
  split_files_list = get_split_files_ui(split_files, session_id)
458
  download_zip_btn = dbc.Button(
459
  "Download All (ZIP)", color="primary", size="lg", className='mb-3 mt-4',
460
+ id="download-zip-btn"
461
  )
462
  results = html.Div([
463
  html.H5("Split Files:"),
 
484
  split_files_list = get_split_files_ui(split_files, session_id)
485
  download_zip_btn = dbc.Button(
486
  "Download All (ZIP)", color="primary", size="lg", className='mb-3 mt-4',
487
+ id="download-zip-btn"
488
  )
489
  results = html.Div([
490
  html.H5("Split Files:"),
 
509
  logging.info(f"handle_upload: No action taken, returning current session_data for session {session_id}")
510
  return "", True, get_split_results_placeholder(), session_data
511
 
512
+ @app.callback(
513
+ Output("download-zip-dcc", "data"),
514
+ Input("download-zip-btn", "n_clicks"),
515
+ State('session-id-store', 'data'),
516
+ prevent_initial_call=True
517
+ )
518
+ def trigger_download_zip(n_clicks, session_id):
519
+ if not n_clicks or not session_id:
520
+ return dash.no_update
521
+ session_dir = get_session_dir(session_id)
522
+ zip_path = os.path.join(session_dir, "split_files.zip")
523
+ if os.path.exists(zip_path):
524
+ logging.info(f"trigger_download_zip: Sending zip {zip_path} for session {session_id}")
525
+ return dcc.send_file(zip_path)
526
+ else:
527
+ logging.error(f"trigger_download_zip: Zip file not found for session {session_id}")
528
+ return dash.no_update
529
+
530
  @app.server.route('/download_zip/<session_id>/<filename>')
531
  def download_zip_file(session_id, filename):
532
  session_dir = get_session_dir(session_id)