11import logging
2- from datetime import timedelta
32
43from django .urls import path
54from django .contrib import admin
@@ -91,7 +90,12 @@ class ValidationRequestAdmin(BaseAdmin, NonAdminAddable):
9190 actions_on_top = True
9291
9392 def get_queryset (self , request ):
94- queryset = super ().get_queryset (request )
93+ queryset = super ().get_queryset (request ).select_related (
94+ 'model__produced_by' ,
95+ 'model__produced_by__company' ,
96+ 'created_by__useradditionalinfo' ,
97+ 'updated_by__useradditionalinfo'
98+ )
9599 queryset = queryset .annotate (
96100 _duration = Case (
97101 When (completed__isnull = True , then = Now () - F ('started' )),
@@ -376,11 +380,13 @@ class ValidationTaskAdmin(BaseAdmin, NonAdminAddable):
376380
377381 list_display = ["id" , "public_id" , "request" , "type" , "status" , "progress" , "started" , "ended" , "duration_text" , "created" , "updated" ]
378382 readonly_fields = ["id" , "public_id" , "request" , "type" , "process_id" , "process_cmd" , "started" , "ended" , "created" , "updated" ]
379- date_hierarchy = "created"
380383
381384 list_filter = ["status" , "type" , "status" , "started" , "ended" , ('created' , AdvancedDateFilter )]
382385 search_fields = ('request__file_name' , 'status' , 'type' )
383386
387+ paginator = utils .LargeTablePaginator
388+ show_full_result_count = False # do not use COUNT(*) twice
389+
384390 def get_queryset (self , request ):
385391 queryset = super ().get_queryset (request )
386392 queryset = queryset .annotate (
@@ -442,14 +448,20 @@ class ValidationOutcomeAdmin(BaseAdmin, NonAdminAddable):
442448
443449 list_display = ["id" , "public_id" , "model_text" , "instance_id" , "type_text" , "feature" , "feature_version" , "outcome_code" , "severity" , "is_whitelisted" , "expected" , "observed" , "created" , "updated" ]
444450 readonly_fields = ["id" , "public_id" , "created" , "updated" ]
445- date_hierarchy = "created"
446-
447- list_filter = ['validation_task__type' , 'severity_in_db' , 'validation_task__request__model' , 'outcome_code' , 'feature' , ('created' , AdvancedDateFilter )]
451+
452+ list_filter = ['validation_task__type' , 'severity_in_db' , 'outcome_code' , ('created' , AdvancedDateFilter )]
448453 search_fields = ('validation_task__request__file_name' , 'feature' , 'feature_version' , 'outcome_code' , 'severity_in_db' , 'expected' , 'observed' )
449454
450455 paginator = utils .LargeTablePaginator
451456 show_full_result_count = False # do not use COUNT(*) twice
452457
458+ # optimize for list display and filters
459+ def get_queryset (self , request ):
460+ return super ().get_queryset (request ).select_related (
461+ 'validation_task__request__model' ,
462+ 'validation_task'
463+ )
464+
453465 @admin .display (description = "Model" )
454466 def model_text (self , obj ):
455467 return obj .validation_task .request .model
@@ -833,13 +845,13 @@ class VersionAdmin(BaseAdmin):
833845 search_fields = ("name" , "released" , "release_notes" )
834846
835847
836- class WhiteListQueryFragmentInline (admin .TabularInline ):
848+ class WhiteListQueryFragmentInlineAdmin (admin .TabularInline ):
837849 model = WhiteListQueryFragment
838850 extra = 1
839851
840- @ admin . register ( WhiteListEntry )
852+
841853class WhiteListEntryAdmin (BaseAdmin ):
842- inlines = [WhiteListQueryFragmentInline ]
854+ inlines = [WhiteListQueryFragmentInlineAdmin ]
843855
844856 readonly_fields = ["id" , "created" , "updated" ]
845857 fieldsets = [
@@ -916,6 +928,7 @@ def get_row(field):
916928 )
917929 return TemplateResponse (request , "admin/whitelistentry_test_outcome.html" , context )
918930
931+
919932class WhiteListTestForm (forms .Form ):
920933 whitelist_entry = forms .ModelChoiceField (
921934 queryset = WhiteListEntry .objects .all (),
@@ -937,6 +950,7 @@ class WhiteListTestForm(forms.Form):
937950admin .site .register (Company , CompanyAdmin )
938951admin .site .register (AuthoringTool , AuthoringToolAdmin )
939952admin .site .register (Version , VersionAdmin )
953+ admin .site .register (WhiteListEntry , WhiteListEntryAdmin )
940954
941955admin .site .unregister (User )
942956admin .site .register (User , CustomUserAdmin )
0 commit comments