Comment 39 for bug 298152

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

The current problem is that the privacy presentation is bug-centric, but the
issue is about all launchpad pages. base-layout.pt is responsible for setting
the private class on the body element of every page. We want an implementation
that shows the privacy ribbon when the body has the private class. I think
there are several smaller issues/bugs that need fixing to truly close this
bug.

1. display_privacy_notification() must move from bugtask_index.js to a module
   in app.
2. bugtask-index.pt currently injects js
   var bug_private
   using an if-not tales clause. I expect the display_privacy_notification()
   js function to use the body class. This will make the function compatible
   with other Lp pages.
   * I assume some adjustments will be needed to ensure that changing the
     body class enables and disabled to ribbon
3. base-layout.pt uses fmt:public-private-css which uses IPrivacy() to adapt
   the context to a private/public css classes. We use the adapter because
   we know that many objects are private because their containing object
   may be private (has a .private attribute). I believe that adapters are
   missing.
   * We need individual adapters to support artefacts that can be private,
     subordinate objects that belong to bugs, branches, and archives. eg:
     def bugcomment_to_privacy(comment):
         return comment.bug.private
   * We know that the IPrimaryContext can be private. This means teams and
     every subordinate object is private,
     def primary_context_to_privacy(obj):
         return IPrimaryContext(obj).private
   * Both artefact and primary rules must work together. Even when the
     primary context is public, an artefact like a bug in traversal can
     be private. Maybe all privacy adapters must also call the primary
     context adapter first.
   This class us issue might be four bugs for privacy adapters:
   primary context, archive, bug, branch