From 9aa25f6d134b4bb81a98cfb7765d5e8fc81ea0c8 Mon Sep 17 00:00:00 2001
From: Jorran de Wit <jorrandewit@outlook.com>
Date: Sat, 1 Jul 2017 13:42:54 +0200
Subject: [PATCH] Make production admin more efficient

---
 production/admin.py | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/production/admin.py b/production/admin.py
index 9ede6f036..88c57e5e3 100644
--- a/production/admin.py
+++ b/production/admin.py
@@ -4,22 +4,23 @@ from django import forms
 
 from .models import ProductionStream, ProductionEvent
 
-from submissions.models import Submission
 
+def event_count(obj):
+    return obj.productionevent_set.count()
 
-class ProductionStreamAdminForm(forms.ModelForm):
-    submission = forms.ModelChoiceField(
-        queryset=Submission.objects.order_by('-arxiv_identifier_w_vn_nr'))
 
-    class Meta:
-        model = ProductionStream
-        fields = '__all__'
+class ProductionEventInline(admin.TabularInline):
+    model = ProductionEvent
+    extra = 1
 
 
 class ProductionStreamAdmin(admin.ModelAdmin):
     search_fields = ['submission']
-    list_display = ['submission', 'opened', 'status']
-    form = ProductionStreamAdminForm
+    list_filter = ['status']
+    list_display = ['submission', 'opened', 'status', event_count]
+    inlines = (
+        ProductionEventInline,
+    )
 
 
 admin.site.register(ProductionStream, ProductionStreamAdmin)
-- 
GitLab