From 2214b1d6bb99f2613be50f61cd3a1d3807dd5458 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Tue, 7 Mar 2023 10:23:32 +0100 Subject: [PATCH] MT#55988 buildinfo: filter by job type Change-Id: I42dec542432ed3a97ea1888823b52dceaefb0366 --- buildinfo/admin.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/buildinfo/admin.py b/buildinfo/admin.py index c2f1f9a..c14cea6 100644 --- a/buildinfo/admin.py +++ b/buildinfo/admin.py @@ -43,11 +43,39 @@ class DurationListFilter(admin.SimpleListFilter): return queryset.filter(duration__gte=value) +class JobTypeListFilter(admin.SimpleListFilter): + title = "job type" + parameter_name = "type" + + def lookups(self, request, model_admin): + vals = [ + "gerrit", + "get-code", + "source-tests", + "debian-check", + "manage-docker", + "source", + "tap-test", + "binaries", + "repos", + "piuparts", + "docker-ppa", + "docker-ppa-dummy", + ] + return [(f"{val}", f"*-{val}") for val in vals] + + def queryset(self, request, queryset): + value = self.value() + if value: + return queryset.filter(jobname__endswith=value) + + @admin.register(models.BuildInfo) class BuildInfoAdmin(ImportExportModelAdmin): resource_class = BuildInfoResource list_filter = ( DurationListFilter, + JobTypeListFilter, "param_release", "projectname", "param_distribution",