Skip to content
Snippets Groups Projects
Commit af4742c7 authored by Nico Vermaas's avatar Nico Vermaas
Browse files

experimenting with activities

parent 466df5ba
Branches
No related tags found
1 merge request!339SDC-1188 - STEP 1 of 3 (the database)
Pipeline #71121 passed
......@@ -41,7 +41,7 @@ def calculate_ingested_fraction(this_task):
return result
def associate_activity(task):
def associate_activity(task, save_task=True):
if not task.activity:
......@@ -60,8 +60,10 @@ def associate_activity(task):
activity.save()
task.activity = activity
task.save()
if save_task:
task.save()
return task.activity
def update_activity(task):
"""
......@@ -77,24 +79,9 @@ def update_activity(task):
"""
logger.info(f'update_activity for task {task.id} with sas_id {task.sas_id} and status {task.status}')
try:
activity = Activity.objects.get(sas_id=task.sas_id)
except:
# no activity exists yet, create it
logger.info(f'create new activity for sas_id {task.sas_id}')
activity = Activity(sas_id=task.sas_id,
workflow=task.workflow,
project=task.project,
filter=task.filter,
priority=task.priority,
archive=task.archive)
activity.save()
# associate an activity to this tasks
if not task.activity:
activity = Activity.objects.get(sas_id=task.sas_id)
task.activity = activity
# do not save the task,
# because this function is called from signals where the task.save is delayed on purpose to avoid recursion
activity = associate_activity(task, save_task=False)
# depending on the status transition, perform calculations
if task.status == State.STORED.value:
......
......@@ -69,7 +69,7 @@ def handle_post_save(sender, **kwargs):
"""
task = kwargs.get('instance')
# temporarily disconnect to avoid recursion.
# temporarily disconnect and save later, to avoid recursion.
update_activity(task)
disconnect_signals()
......
......@@ -24,12 +24,12 @@
{% endif %}
</td>
<td>{{ task.activity.ingestq_status }}</td>
<td>{{ task.sasid_ingested_fraction.completion }}%</td>
<td>{{ task.activity.ingested_fraction }}%</td>
<td>
{% if task.sas_id_has_archived != None %}
{% if task.activity.has_archived != None %}
<a href={{ task.sasid_path_to_lta }} target="_blank">
<img src="{% static 'taskdatabase/ldvlogo_small.png' %}" height="20" alt="link to LTA">
{{ task.sas_id_has_archived }}
{{ task.activity.has_archived }}
</a>&nbsp;
{% else %}
-
......
......@@ -1717,4 +1717,4 @@ def AssociateActivities(request):
activities.associate_activity(task)
logger.info(f'{task.id} => {task.sas_id}')
return redirect('index')
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment