Do not append language code to slug while synchronizing translation tree #196
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.
Hello, there is an issue created some time ago - #178 - which I believe this PR can solve.
With
WAGTAILTRANS_SYNC_TREE
set toTrue
we can end up with paths like this one:/fr/products-fr/
assuming that thefr
is not the default language. This is due to synchronizing translation tree algorithm which makes use ofcreate_translation()
method fromTranslatablePage
. Ascreate_translation()
can be used in a different contexts it tampers theslug
value trying to make it unique. WithWAGTAILTRANS_SYNC_TREE
set toTrue
we don't need to append language code to slug as the translated page is going to exist in a different sub-tree than the canonical page.After some experiments I think the
synchronize_trees()
signal handler is the right place for a fix. However, I'd love to get some feedback and discuss alternatives.