fix(Buckets): save featured type using morph map instead of module name #2536
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Currently when using the bucket feature, the morphMap has to match exactly the name of the twill module, this is very restrictive especially in projects where the morphMap was already defined, because the featured_type column is saved using the module name instead of the MorphMap of the class
This effectively results in a fatal error when loading the Feature because the Morph fails
This PR aims to fix this issue by correctly saving the Feature using the morph map
It also fixes the label displayed here to be taken from the bucketable config rather than the current behavior of ucfirst the module name on reload
And it improves the performance of the bucket controller which currently loads all of the repositories in any case even though only one is ever displayed at a time, it now only loads the first one or the requested one
Also added a documented 'repository' option for bucketables to allow passing the repository class directly (or it cannot work with Package capsules)
PS: it would also be a nice addition to buckets to add an option to edit the featured model either clicking on the title or with an edit button somewhere here