Problem/Motivation
Follow-up to address #3113992-79: The 'Update' page has no idea that some updates are incompatible (point 3).
In that issue, we're adding a private helper method, UpdateManagerUpdateForm::removeCheckboxFromRow()
That was a compromise to avoid some code duplication and make things easier to read, while trying not to explode the scope of that critical bugfix for a wider refactoring. However, as we now have 3 possible tables on that form, and only one of them needs checkboxes, we should refactor how this all works.
Proposed resolution
Instead of building up $entry as if it needs a checkbox from the start, the buildForm() method should use a more simple data structure as the bulk of that method runs to store the stuff we always care about (project name, currently installed version, recommended update, etc). Then, once we know what table the entry belongs in, we should have a helper method that converts it into a row that's appropriate for either '#theme' => 'table' or 'tableselect' as appropriate.
#3121769: Make the table of incompatible releases in UpdateManagerUpdateForm more theme-friendly is related to this, since that issue might introduce an entirely different twig template for the 'Not compatible' table, so the helper method might need to do something different to generate rows for that table, too.
Remaining tasks
- Decide exactly how we want this to all work.
- Implement it.
- Ensure we didn't break anything.
- Reviews/improvements.
- RTBC.
- Commit.
User interface changes
None.
API changes
Nothing public. Only changes to private or protected methods..
Data model changes
None.
Release notes snippet
N/A.
Comments
Comment #2
dwwComment #9
dwwNow that #3491731: [META] Remove the ability to update modules and themes via authorize.php and child issues are done, all this code is deprecated and will be removed in D12.