feat(scopes): denormalize full_name and use it for sorting #408
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.
The full_name attribute on the Scopes was dynamically generated on access. This is rather inefficient, as it may cause a bunch of DB hits, especially in deep hierarchies.
Additionally, most of the time we want scopes to be sorted in a meaningful manner (namely, by hierarchical name). MPTTModel supports this, but as the ordering may differ between languages, we cannot use that functionality. This is a secondary use of the denormalized full_name.
This also required a fix in the case insensitive ordering code, as localized fields were not treated correctly yet (casting directly to text instead of extracting the correct language and using that to sort)