This is my branch to add support for an action menu and involvement portlet. This branch is extracted form my product index page branch. lp:~sinzui/launchpad/action-menu-bug-403641 Diff size: 496 Launchpad bug: https://bugs.launchpad.net/bugs/403641 https://bugs.launchpad.net/bugs/403651 Test command: ./bin/test -vvt "(tales|menu|pillar-views).txt" Pre-implementation: beuno Target release: 2.2.8 = Add support for an action menu and involvement portlet = Bug 403641 [base-layout must support a object action menu] The 3.0 design allows an object to have an action menu for links that affect the object that cannot be represented in the content. The examples links are "Change details", "Change password", and "Make private". Bug 403651 [base-layout must support an Involvement menu] The 3.0 design has an involvement portlet to encourage users to participate. Martin asked me to remove the 2.0 backward compatibility style hacks and land it as soon as possible so that the engineers designing pages see their work appear as the example designs. == Rules == Bug 403641 [base-layout must support a object action menu] Reuse the NavigationMenu to present the menu. The nav menu is best because it can be used with with context object and views (which may be necessary) Bug 403651 [base-layout must support an Involvement menu] Create a view to render the involvement menu for pillars. The menu should only list the officially supported applications. == QA == Bug 403641 [base-layout must support a object action menu] Nothing uses this on edge/staging. It works with the product-page branch. We can get feedback from engineers who want to use this now. Bug 403651 [base-layout must support an Involvement menu] Nothing uses this on edge/staging. It works with the product-page branch. We can get feedback from engineers who want to use this now. As for the style changes, the search page will have smaller fonts. Developers will stop complaining that the fonts looks to big and the space is wrong. == Lint == Checking for conflicts. and issues in doctests and templates. Running jslint, xmllint, pyflakes, and pylint. Using normal rules. Linting changed files: lib/canonical/launchpad/browser/launchpad.py lib/canonical/launchpad/doc/tales.txt lib/canonical/launchpad/icing/style-3-0.css lib/canonical/launchpad/images/answers-arrow-right.png lib/canonical/launchpad/images/bg-project-downloads.png lib/canonical/launchpad/images/blueprints-arrow-right.png lib/canonical/launchpad/images/bugs-arrow-right.png lib/canonical/launchpad/images/code-arrow-right.png lib/canonical/launchpad/images/link-grey-arrow.png lib/canonical/launchpad/images/translations-arrow-right.png lib/canonical/launchpad/webapp/tales.py lib/lp/app/browser/configure.zcml lib/lp/app/browser/tests/menu.txt lib/lp/app/templates/navigationmenu-actions.pt lib/lp/registry/browser/configure.zcml lib/lp/registry/browser/pillar.py lib/lp/registry/browser/tests/pillar-views.txt lib/lp/registry/templates/pillar-involvement-portlet.pt == Test == * lib/canonical/launchpad/doc/tales.txt * Added support for the releasefile urls that are needed by the forthcoming download portlet. * lib/lp/app/browser/tests/menu.txt * Added a test to verify the action portlet renders the expected content. * lib/lp/registry/browser/tests/pillar-views.txt * Added a test to verify that the involvement portlet renders links to official applications. == Implementation == * lib/canonical/launchpad/icing/style-3-0.css * lib/canonical/launchpad/images/answers-arrow-right.png * lib/canonical/launchpad/images/bg-project-downloads.png * lib/canonical/launchpad/images/blueprints-arrow-right.png * lib/canonical/launchpad/images/bugs-arrow-right.png * lib/canonical/launchpad/images/code-arrow-right.png * lib/canonical/launchpad/images/link-grey-arrow.png * lib/canonical/launchpad/images/translations-arrow-right.png * Removed the backward-compatible 2.0 isms. * Added the final art for the CSS. The art we were first given were GIFS. * I re-implement the .downloads .released CSS rule because the text length is variable and will not work with background image we were given. * lib/canonical/launchpad/browser/launchpad.py * Added the enabled_links property to the NavigationMenuTabView so that the template not need to filter the links itself. * lib/canonical/launchpad/webapp/tales.py * Added the fmt:url rules for releasefiles * lib/lp/app/browser/configure.zcml * Registered the +global-actions url for the actions menu. * lib/lp/app/templates/navigationmenu-actions.pt * Added the template to render the actions menu * lib/lp/registry/browser/configure.zcml * Registered the pillar view * lib/lp/registry/browser/pillar.py * Create a pillar view. * lib/lp/registry/templates/pillar-involvement-portlet.pt * Added a template to render the involvement menu.