Needs review
Project:
Drupal core
Version:
main
Component:
views.module
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
3 May 2026 at 23:39 UTC
Updated:
5 Aug 2026 at 11:44 UTC
Jump to comment: Most recent
Comments
Comment #4
kieran.cottI've taken a pass at implementing this, I hope I've understood #3574506 correctly.
MR 16077 adds a Views config updater method that finds table displays with result counter fields and sets their stored table `sortable` setting to `FALSE`. Then adds a new Views post-update to run that updater for existing views.
Open to suggestions for improvement.
Comment #5
quietone commentedComment #6
smustgrave commentedLooks good! But left a comment around the MR. Would check in gitlab 11.x branch for examples. Reason they're not on main is they've been removed already for D12
Comment #7
kieran.cottThanks @smustgrave, I've added CounterFieldTableSortableUpdateTest under Functional\Update which hopefully mirrors the example you mentioned in the MR.
Comment #8
dcam commentedThank you for your work to improve Drupal. I reviewed the MR and found several items that need to be addressed or explained. I left comments on the MR about them.
Comment #9
kieran.cottAppreciate you taking the time to review @dcam, I've replied to your comments and made some changes.
Comment #10
smustgrave commentedbelieve feedback for this one has been addressed. Thanks!
Comment #11
quietone commentedI've updated credit. Also, the title could be improved.
Comment #12
catchOne comment on the MR, the new method on ViewsConfigUpdater needs to handle the case when deprecation triggering is one (e.g. when it's called from ViewsHooks::viewPreSave().
Comment #14
sjpagan commentedupdateTableSortableCounter() now triggers the deprecation when deprecations are enabled, guarded by triggeredDeprecations. Two saves of the same view emit one message.
The post update calls setDeprecationsEnabled(FALSE) before ConfigEntityUpdater, matching the other views post updates.
updateAll() calls the updater directly. processDisplayHandlers() reads the display array before the callback and writes that copy back, discarding the change.
Kernel test covers both states of the flag. The update path passes with 288 assertions and no deprecation from views.
Does this need a change record, or is the issue link in the deprecation message enough?
Comment #15
sjpagan commented