From 3cb8b90a0d48068a750e061391d2033a912580d8 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Fri, 17 Apr 2020 18:04:49 +0100 Subject: [PATCH] Implement filtering on workflow reports --- wagtail/admin/filters.py | 16 +++++++++++++++- wagtail/admin/views/reports.py | 5 ++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/wagtail/admin/filters.py b/wagtail/admin/filters.py index 70c22274a0..9f95a01600 100644 --- a/wagtail/admin/filters.py +++ b/wagtail/admin/filters.py @@ -3,7 +3,7 @@ from django import forms from django.utils.translation import gettext_lazy as _ from django_filters.widgets import SuffixedMultiWidget -from wagtail.core.models import Page +from wagtail.core.models import Page, TaskState, WorkflowState from .widgets import AdminDateInput @@ -95,3 +95,17 @@ class LockedPagesReportFilterSet(WagtailFilterSet): class Meta: model = Page fields = ['locked_by', 'locked_at', 'live'] + + +class WorkflowReportFilterSet(WagtailFilterSet): + + class Meta: + model = WorkflowState + fields = ['workflow', 'status'] + + +class WorkflowTasksReportFilterSet(WagtailFilterSet): + + class Meta: + model = TaskState + fields = ['task', 'status'] diff --git a/wagtail/admin/views/reports.py b/wagtail/admin/views/reports.py index 77608c1d23..0c22606294 100644 --- a/wagtail/admin/views/reports.py +++ b/wagtail/admin/views/reports.py @@ -11,7 +11,8 @@ from django.views.generic.list import BaseListView from xlsxwriter.workbook import Workbook from wagtail.admin.auth import permission_denied -from wagtail.admin.filters import LockedPagesReportFilterSet +from wagtail.admin.filters import ( + LockedPagesReportFilterSet, WorkflowReportFilterSet, WorkflowTasksReportFilterSet) from wagtail.core.models import Page, TaskState, UserPagePermissionsProxy, WorkflowState @@ -277,6 +278,7 @@ class WorkflowView(ReportView): template_name = 'wagtailadmin/reports/workflow.html' title = _('Workflows') header_icon = 'clipboard-list' + filterset_class = WorkflowReportFilterSet export_headings = { "page.id": _("Page ID"), @@ -309,6 +311,7 @@ class WorkflowTasksView(ReportView): template_name = 'wagtailadmin/reports/workflow_tasks.html' title = _('Workflows') header_icon = 'clipboard-list' + filterset_class = WorkflowTasksReportFilterSet export_headings = { "workflow_state.page.id": _("Page ID"),