From 35f21d5a2b51f9a891ef7f1fe7428fe51c5807af Mon Sep 17 00:00:00 2001 From: Vermaas <vermaas@astron.nl> Date: Tue, 26 Mar 2024 13:55:34 +0100 Subject: [PATCH] handle review comments --- atdb/taskdatabase/serializers.py | 2 +- atdb/taskdatabase/services/algorithms.py | 35 +++++++------------ .../tests/test_views_get_summary.py | 1 - atdb/taskdatabase/views.py | 1 + 4 files changed, 15 insertions(+), 24 deletions(-) diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py index f80c4eb1..55484a36 100644 --- a/atdb/taskdatabase/serializers.py +++ b/atdb/taskdatabase/serializers.py @@ -132,7 +132,7 @@ class TaskReadSerializerFast(serializers.ModelSerializer): """ class Meta: model = Task - fields = ['id','task_type','creationTime','filter','predecessor','predecessor_status', + fields = ['id','task_type','is_summary','creationTime','filter','predecessor','predecessor_status', #'joined_input_tasks', 'joined_output_task', 'joined_status', 'project','sas_id','priority','purge_policy','cleanup_policy','resume', 'workflow', diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py index b29eafc3..8534a2e2 100644 --- a/atdb/taskdatabase/services/algorithms.py +++ b/atdb/taskdatabase/services/algorithms.py @@ -1096,7 +1096,7 @@ def construct_linc_summary(task): # find the summary in the quality json structure try: - #NV_25mar2023: + #NV_25mar2024: # it is not yet clear if LINC will have its 'summary' metadata directly under outputs or under outputs.quality # for now assuming directly under outputs #summary = task.quality_json["summary"] @@ -1138,10 +1138,7 @@ def construct_summary(task, format='html'): if format=='html': # construct the appropriate summary html - if summary_flavour == SummaryFlavour.DEFAULT.value: - return construct_default_summary(task) - - elif summary_flavour == SummaryFlavour.IMAGING_COMPRESSION.value: + if summary_flavour == SummaryFlavour.IMAGING_COMPRESSION.value: return construct_imaging_summary(task) elif summary_flavour == SummaryFlavour.LINC_CALIBRATOR.value: @@ -1150,17 +1147,18 @@ def construct_summary(task, format='html'): elif summary_flavour == SummaryFlavour.LINC_TARGET.value: return construct_linc_summary(task) - elif format=='json': + return construct_default_summary(task) - if summary_flavour == SummaryFlavour.DEFAULT.value: - return construct_default_summary_json(task) + elif format=='json': - elif summary_flavour == SummaryFlavour.LINC_CALIBRATOR.value: + if summary_flavour == SummaryFlavour.LINC_CALIBRATOR.value: return construct_linc_summary_json(task) elif summary_flavour == SummaryFlavour.LINC_TARGET.value: return construct_linc_summary_json(task) + return construct_default_summary_json(task) + return None @@ -1172,20 +1170,18 @@ def construct_default_summary_json(task): sas_id = task.sas_id title = f'Summary File for SAS_ID {task.sas_id}' - summary_json = {} - summary_json['title'] = title + summary_json = {'title':title} tasks = Task.objects.filter(sas_id=sas_id) tasks_records = [] for task in tasks: - task_record = {} # skip 'suspended' and 'discarded' tasks if task.status in ['suspended', 'discarded']: continue - task_record['task'] = task.id + task_record = {'task': task.id} # find the summary in the quality json structure try: @@ -1217,15 +1213,11 @@ def construct_default_summary_json(task): except: pass - try: + if 'added' in record: task_record['added'] = record['added'] - except: - pass - try: + if 'deleted' in record: task_record['deleted'] = record['deleted'] - except: - pass try: key = task.calculated_qualities['per_task'] @@ -1279,8 +1271,7 @@ def construct_linc_summary_json(task): sas_id = task.sas_id title = f'Summary File for SAS_ID {task.sas_id}' - summary_json = {} - summary_json['title'] = title + summary_json = {'title': title} tasks = Task.objects.filter(sas_id=sas_id) tasks_records = [] @@ -1301,7 +1292,7 @@ def construct_linc_summary_json(task): # find the summary in the quality json structure try: - #NV_25mar2023: + #NV_25mar2024: # it is not yet clear if LINC will have its 'summary' metadata directly under outputs or under outputs.quality # for now assuming directly under outputs. If that turns out differently then change the line below accordingly. # summary = task.quality_json["summary"] diff --git a/atdb/taskdatabase/tests/test_views_get_summary.py b/atdb/taskdatabase/tests/test_views_get_summary.py index df31ba49..22deb354 100644 --- a/atdb/taskdatabase/tests/test_views_get_summary.py +++ b/atdb/taskdatabase/tests/test_views_get_summary.py @@ -8,7 +8,6 @@ import json class GetSummaryTestCase(TestCase): def setUp(self): - print("setUp: Run once for every test method to setup clean data.") workflow_requantisation = Workflow(workflow_uri="psrfits_requantisation") workflow_requantisation.save() diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index f28ab7a5..e3469e62 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -1711,6 +1711,7 @@ def GetSummary(request, sas_id, format): This is the same informtion and algorithm as used when the user clicks the SUM button on the Validation page. See documentation: https://drive.google.com/file/d/16R8L06OFiKHFHBUA6FhrNVZVAaQBC2tU/view?usp=sharing + The return is either a JsonResponse (for format='json') or a HttpResponse for format is 'html' or 'pdf' example: /atdb/get_summary/606942/json """ try: -- GitLab