Comment 3 for bug 429473

Revision history for this message
Curtis Hovey (sinzui) wrote :

New Note 41

While investigating spurious errors in a local test run, I saw many fmt:pagetitle errors. All the views in question used label. They did not have a page_title and were not registered in pagetitles.py. I looked at that pagetitle tales adapter and it *absolutely* requires page_title. Some pages work because LaunchpadFormView is providing a page_title from the label.

A simple solution to the current issue is to add a two lines to in the tales adapter to fall back to label when page_title is not found. then removing the many `page_title = label` and `label = page_title` hacks in our views.[1]

The Launchpad 3.0 header is still a root problem headings/labels. We sometimes want the label (used as the h2) to be different from the page_title (the last item in the breadcrumbs) because it is not clear what is being edited. The problem is most clear when you are looking a a deep pages where the context object is not the branded project/distro. For example:
    https://launchpad.net/ubuntu/maverick/+source/wsjt/+changelog

The heading cannot be "Change log" because seen under "Ubuntu", the user will pause as ask "what the ...?". We use a label to clarify the Change log is for a secondary context """Change logs for “wsjt” source package in Maverick""".

I conclude we still need a separate page_title and label attributes for many views. Those attributes could be renamed. It may be possible to drop the label (long heading) if the header was redesigned to show the immediate context before the action/view that the user is seeing. For example:

@ UBUNTU <primary context>
     “wsjt” source package <immediate context>
     Change log <view>
    Ubuntu >> Maverick (10.10) >> “wsjt” source package >> Change log

This suggestion is fatally flawed of course because it does not consider the Launchpad applications (bugs, code, ...)

[1] The errors cause by the play order of the tests were resolved by adding a rule to fall back to label, but I cannot explain why there was no error when the test was played by itself.