From 3aeb1bff3f93600b4722220b816b373f17ef078d Mon Sep 17 00:00:00 2001
From: Erwan Rouchet <rouchet@teklia.com>
Date: Fri, 22 Mar 2019 14:14:40 +0000
Subject: [PATCH] Optimize requests in Django admin for DataImports

---
 arkindex/dataimport/admin.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arkindex/dataimport/admin.py b/arkindex/dataimport/admin.py
index 12e80c301d..166cec02d7 100644
--- a/arkindex/dataimport/admin.py
+++ b/arkindex/dataimport/admin.py
@@ -1,4 +1,5 @@
 from django.contrib import admin
+from django.db.models import Max
 from enumfields.admin import EnumFieldListFilter
 from arkindex.dataimport.models import DataImport, DataFile, Repository, Revision
 
@@ -14,6 +15,11 @@ class DataImportAdmin(admin.ModelAdmin):
     readonly_fields = ('id', 'workflow', 'state')
     inlines = [DataFileInline, ]
 
+    def get_queryset(self, *args, **kwargs):
+        return super().get_queryset(*args, **kwargs) \
+            .prefetch_related('workflow__tasks') \
+            .annotate(last_run=Max('workflow__tasks__run'))
+
 
 class DataFileAdmin(admin.ModelAdmin):
     list_display = ('id', 'name', 'corpus')
-- 
GitLab