Closed Bug 627359 Opened 13 years ago Closed 13 years ago

get_object_fallback needs to be redirect-aware

Categories

(support.mozilla.org :: Knowledge Base Software, task, P1)

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: jsocol, Assigned: erik)

References

Details

(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.
Blocks: 627360
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
Landed in http://github.com/jsocol/kitsune/commit/fe593fb.
Status: NEW → RESOLVED
Closed: 13 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.