(I know this makes get_object_fallback particularly complex. I'll file a CQ bug to address that next.) In get_object_fallback, we need an extra case, essentially in here: > if hasattr(fallback, 'translated_to'): > trans = fallback.translated_to(locale) > if trans and trans.current_revision: > return trans > --> RIGHT HERE We need to check fallback.content to see if it's a redirect, and if so, check that the target article has been localized. In pseudocode: if fallback.content.startswith('REDIRECT'): target = get_redirect_target(fallback.content) if target.exists() trans = target.translated_to(locale) if trans and trans.current_revision: return trans I don't think we should return target if the trans doesn't exist, but I'm open to arguments for or against that.
The test for whether the doc is a redirect belongs in the Document model. Perhaps Document.redirect_url() suffices; perhaps not.
That sounds like volunteering => Erik. I agree that this belongs on the model, but it shouldn't require schema changes.
Assignee: nobody → erik
Status: NEW → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → FIXED
Please add QA steps or [qa-], thanks
From the commit message: "This means that, for example, if you have Document D in Deutsch which links to [[A]], A is a redirect to B, and B has a Deutsch translation Bd, rendering D will give you a link straight to Bd. That's about as simple as it gets, I'm afraid, but it's really handy when English articles get renamed and tranlations linked straight to the English."
Took me a while, but I verified this. Sorry I missed the checkin notes.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.