Skip to content

Commit ff358fa

Browse files
committed
WIP: background processing
1 parent d7a4c82 commit ff358fa

1 file changed

Lines changed: 20 additions & 6 deletions

File tree

cove/cove_360/views.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import logging
66
import re
77
import os
8+
import django_rq
89
from decimal import Decimal
910

1011
from cove.views import explore_data_context, cove_web_input_error
@@ -43,7 +44,9 @@ def results_ready(request, pk):
4344
def 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

248262
def create_passed_tests_context_data(failed_tests, available_tests):

0 commit comments

Comments
 (0)