diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index f4fb3278583426d1aef9b3cb9603ff1be856b9d6..178726d15ce8207e086ef1d47b30a23930ff8195 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -31,7 +31,7 @@ {% include 'taskdatabase/pagination.html' %} </div> </div> - <p class="footer"> Version 16 Feb 2024 (7:00) + <p class="footer"> Version 16 Feb 2024 (11:00) </div> {% include 'taskdatabase/refresh.html' %} diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html b/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html index e5f633f78d8952acb549ed39924edaaf65fe14c3..8ecf45fde4ac35cf20dfe88abd77fd33d29ab9f1 100644 --- a/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html +++ b/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html @@ -1,4 +1,4 @@ -<!-- keep the old mechanism in comments to test/evaluate, remove later when it works --> +<!-- keep the old mechanism in comments to test/evaluate, remove later when it works {% if task.sasid_is_verified %} <a href="{% url 'task-validate-sasid' task.pk 'poor' 'validated' my_tasks.number %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-check"></i> P</a> @@ -16,7 +16,8 @@ <a href="{% url 'task-validate-sasid' task.pk 'calculated' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> Validate</a> {% endif %} -<!-- new activity mechanism, to enable SDC-1188 +--> +<!-- new activity mechanism, to enable SDC-1188 --> {% if task.activity.is_verified %} <a href="{% url 'task-validate-sasid' task.pk 'poor' 'validated' my_tasks.number %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-check"></i> P</a> {% endif %} @@ -32,4 +33,3 @@ {% if task.activity.is_verified %} <a href="{% url 'task-validate-sasid' task.pk 'calculated' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> Validate</a> {% endif %} ---> \ No newline at end of file diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index bf8ed0a4087b273b865f695267985371d1a628f7..981c97a99cb6facff7b554a0e51c80a1deed830f 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -133,6 +133,7 @@ urlpatterns = [ #some migration and repair endpoints path('tasks/repair/associate-activities/', views.AssociateActivities, name='associate-activities'), path('tasks/repair/update-all-activities/', views.UpdateAllActivities, name='update-all-activities'), + path('tasks/repair/update-activity/<sas_id>', views.UpdateActivitySasId, name='update-activity-sasid'), path('tasks/repair/update-failed-tasks/', views.UpdateFailedTasks, name='update-failed-tasks'), path('tasks/repair/update-ingestq-tasks/<batch_size>', views.UpdateIngestQTasks, name='update-ingestq-tasks'), path('tasks/repair/update-finished-tasks/', views.UpdateFinishedTasks, name='update-finished-tasks'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 44a6189a7dd9f47e7837e34d31ca7984c0a8017b..d049b9e667418700777444a134037aa6f4fdc1bd 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -9,6 +9,7 @@ from django.contrib import messages from rest_framework import generics from rest_framework.response import Response +from django.http import JsonResponse from django_filters import rest_framework as filters from django_filters.views import FilterView @@ -1728,6 +1729,33 @@ def UpdateAllActivities(request): return redirect('index') +def UpdateActivitySasId(request, sas_id): + # this function is called externally to avoid worker timeouts + # http://localhost:8000/atdb/tasks/repair/update-activity/600907 + + try: + activity = Activity.objects.get(sas_id=sas_id) + + tasks = Task.objects.filter(sas_id=activity.sas_id) + total = tasks.count() + i = 0 + + for task in tasks: + i += 1 + activities_handler.update_activity(task) + logger.info(f'{i} of {total} for sas_id = {sas_id}') + + logger.info(f'UpdateActivitySasId {sas_id}') + except Exception as error: + logger.error(error) + return JsonResponse({ + 'error': error + }) + + return JsonResponse({ + 'total': total + }) + @staff_member_required def UpdateFailedTasks(request):