Add a version column, sortable columns and filters to the process instances list

Implements #3608552: three improvements to the process instances list.

  • Version column: the pinned version, marked "N (current)" when it is the workflow's published version (matching the Versions page), or "Live" for an unpinned instance.
  • Sortable columns: Instance, Workflow, Version, Status, Tenant sort via the entity query's tableSort(), composing with the pager (newest-first by default).
  • Filter: a collapsed "Filter" above the list (Workflow, Status, and Tenant for administrators) with an active-filter chip bar and Apply/Reset, as a GET form so the filtered view lives in the URL and pages/sorts cleanly.

Reusable base: the filter is built on a new orchestra_ui\Form\FilterFormBase (collapsed GET filter + chips + Reset), so other orchestra admin lists can adopt it with a small subclass; InstanceFilterForm is the first consumer. The instances route now renders the GET filter form above the POST bulk list through a controller (a GET filter cannot nest inside the POST form).

Tests: InstanceListDisplayTest covers the version cell (current and Live), the sortable header, workflow/status query-parameter filtering, and the filter form's fields and chip. The existing InstanceBulkTenantAccessTest still passes.

Verified locally: phpcs (Drupal, DrupalPractice) and cspell clean; the two kernel tests green.

Merge request reports

Loading