55import logging
66import re
77import os
8+ import django_rq
89from decimal import Decimal
910
1011from cove .views import explore_data_context , cove_web_input_error
@@ -43,7 +44,9 @@ def results_ready(request, pk):
4344def data_loading (request , pk , template = 'cove_360/data_loading.html' ):
4445 # Backward compatibility if we receive a post request to the loading page
4546 if request .method == 'POST' :
46- return explore_360 (request , pk )
47+ explore_result = explore_360 (request , pk )
48+ if explore_result :
49+ return explore_result
4750
4851 # Data already loaded so redirect to results page
4952 try :
@@ -54,9 +57,8 @@ def data_loading(request, pk, template='cove_360/data_loading.html'):
5457
5558 return render (request , template , {"pk" : pk })
5659
57-
5860@cove_web_input_error
59- def explore_360 (request , pk , template = 'cove_360/explore.html' ):
61+ def explore_360 (request , pk , template = 'cove_360/explore.html' ) -> HttpResponse | None :
6062
6163 cached_context = cache .get (pk )
6264
@@ -91,7 +93,6 @@ def explore_360(request, pk, template='cove_360/explore.html'):
9193 data_status , dsc = SuppliedDataStatus .objects .get_or_create (
9294 supplied_data = db_data ,
9395 )
94- context ["data_status" ] = data_status
9596 if db_data .source_url :
9697 context ["source_url_domain" ] = extract_domain (db_data .source_url )
9798
@@ -105,6 +106,19 @@ def explore_360(request, pk, template='cove_360/explore.html'):
105106 context ["submission_tool" ] = True
106107 context ["publisher" ] = publisher
107108
109+ explore_360_process .delay (pk , context , db_data , flatten = request .POST .get ("flatten" ))
110+
111+ return data_loading (request , pk )
112+
113+
114+ @django_rq .job ("default" , timeout = 1800 )
115+ def explore_360_process (pk , context , db_data , flatten ):
116+
117+ data_status , dsc = SuppliedDataStatus .objects .get_or_create (
118+ supplied_data = db_data ,
119+ )
120+ context ["data_status" ] = data_status
121+
108122 lib_cove_config = LibCoveConfig ()
109123 lib_cove_config .config .update (settings .COVE_CONFIG )
110124
@@ -140,7 +154,7 @@ def explore_360(request, pk, template='cove_360/explore.html'):
140154 extension_metadatas = schema_360 .resolve_extension (json_data )
141155
142156 context .update (convert_json (upload_dir , upload_url , file_name , schema_url = schema_360 .schema_file ,
143- request = request , flatten = request . POST . get ( ' flatten' ) ,
157+ flatten = flatten ,
144158 lib_cove_config = lib_cove_config ))
145159
146160 else :
@@ -242,7 +256,7 @@ def explore_360(request, pk, template='cove_360/explore.html'):
242256 # Helpful when debugging DQT
243257 # import pprint
244258 # pprint.pprint(context, stream=open("/tmp/dqt.py", "w"), indent=2)
245- return render (request , template , context )
259+ # return render(request, template, context)
246260
247261
248262def create_passed_tests_context_data (failed_tests , available_tests ):
0 commit comments