Rendering of reStructured text is not possible, please install Docutils.
Direct subscription mock-ups
============================

Developing top-part of the mock-ups that relate to describing subscriptions and allow doing something regarding your non-structural subscriptions.

https://dev.launchpad.net/LEP/BetterBugSubscriptionsAndNotifications/Testing/EditingRound2

"Control the email you receive about bug #XXXX"
"Control the email your team receives about bug #XXXX"

Subscription types
------------------

  * Assignee ["You receive emails about this bug because you are assigned to work on it."] [Actions: mute, omit comments, or only see when bug closes.]

  * Direct/indirect

    * Directly subscribed ["You receive emails about this bug because you are directly subscribed to it."  ...describe level...] [Actions: mute, change subscription level, or unsubscribe]

    * Directly subscribed as the reporter [use previous "directly subscribed" copy plus "This subscription was created when you reported the bug."]

    * Directly subscribed as the bug reporter on a private bug [use "directly subscribed" copy plus "This subscription may have been created because the bug was private and you are the bug supervisor."]

    * Subscribed from duplicate (primary looking at secondary or vice versa) 

      * Directly subscribed ["You receive emails about this bug because you are a direct subscriber to all events on bug #23456, which is marked as a duplicate of this bug, #12345"] [Actions: mute duplicate, change subscription level of duplicate, unsubscribe from duplicate, mute this bug, omit comments from this bug, or only see when this bug closes]

      * Indirectly through team subscribed to a duplicate as team member ["You receive emails about this bug because you are a member of the team _$TEAM_.  That team is a direct subscriber to all events on bug #23456, which is marked as a duplicate of this bug, #12345"] [Actions: mute this bug, omit comments from this bug, or only see when this bug closes]

      * Indirectly through team subscribed to a duplicate as team admin ["You receive emails about this bug because you are a member and administrator of the team _$TEAM_.  That team is a direct subscriber to all events on bug #23456, which is marked as a duplicate of this bug, #12345"] [Actions: mute duplicate, change subscription level of duplicate, unsubscribe from duplicate, mute this bug, omit comments from this bug, or only see when this bug closes]

    * Indirectly through team as team member ["You receive emails about this bug because you are a member of the team _$TEAM_.  That team is directly subscribed to it."] [Actions: mute for yourself, omit comments for yourself, or only see when bug closes yourself.]

    * Indirectly through team as team admin ["You receive emails about this bug because you are a member and administrator of the team _$TEAM_.  That team is directly subscribed to it."] [Actions: mute for yourself, omit comments yourself, only see when bug closes yourself, mute for team, change subscription level for team, or unsubscribe for team.]

    * If the team subscribed is the bug reporter on a private bug [use the appropriate copy above plus "This subscription may have been created because the bug was private and the team is the bug supervisor."]

  * Structural/supervisor 

    * Structural  ["You might receive emails about this bug because you subscribe to one or more groups of bugs like this one."] [Actions: Mute, omit comments, only show closing, "View your subscriptions that may send you email about this bug" and work there]

      * Benji on it, though we need to handle the description

    * Supervisor: NOTE THAT THE BUG SUPERVISOR GETS A STRUCTURAL SUBSCRIPTION, AND DIRECT SUBSCRIPTIONS TO PRIVATE BUGS, SO THEY CAN BE MANAGED SEPARATELY.

      * No bug supervisor, you are the product owner ["You receive emails about this bug because you are the owner of ["the Mozilla Firefox project"], which has no bug supervisor."] [Actions: mute, omit comments, only show closing, "Set the bug supervisor of the Mozilla Firefox project."]

      * No bug supervisor, your team is the product owner and you are team admin ["You receive emails about this bug because you are the owner of ["the Mozilla Firefox project"], which has no bug supervisor."] [Actions: mute, omit comments, only show closing, "Set the bug supervisor of the Mozilla Firefox project."]

      * No bug supervisor, your team is the product owner and you are team member ["You receive emails about this bug because you are the owner of ["the Mozilla Firefox project"], which has no bug supervisor."] [Actions: mute, omit comments, only show closing]

Overlaps
~~~~~~~~

Note that any of the following can overlap.  There can be multiple overlaps.   ("[*]" indicates that you may have multiple within the given category).

  * [*] (1 per task) assigned
  * direct subscription [as reporter or not]
  * [*] duplicate subscription
  * [*] team subscription [as admin or not]
  * [*] team duplicate subscription [as admin or not]
  * [*] structural subscription
  * [*] team structural subscription
  * [*] (1 per task) product owner with no bug supervisor

We divide overlaps into two cases.

  * Overlaps with a direct subscription.  These override everything else, so concentrate on them.  Show normal direct subscription stuff as above except omit normal display of unsubscribe action, then "You can also _unsubscribe from bug #XXXX_.  However, if you do so, there are other reasons you might still get emails about this bug.  _View the other reasons that Launchpad may send you email about this bug._"]
  
  * Overlaps with no direct subscriptions.    ["You receive emails about this bug for more than one reason."] [Actions: mute, omit comments, only show closing, "Click here to see all the reasons you get mail about this bug, and what your other options are."]

In both cases, when showing the other reasons, these are the available options:

  * Assignee: no options
  * Subscribed from duplicate: give options on duplicate
  * Subscribed via team: give team options if team admin
  * Subscribed from duplicate via team: give options on duplicate, if team admin
  * Structural (self and team): (handled in that separate code)
  * Supervisor: set the bug supervisor for self and team admin

Potential actions
-----------------

  * Mute — always present

    * ACTION: "Mute all email from bug #XXX"

    * DESCRIPTION: "You will receive no further email about the bug, but it will still show in the _list of your subscribed bugs_."

  * Change direct subscription level — directly, directly as reporter

    * ACTION: Change your subscription to bug #XXXX

    * DESCRIPTION: Change which events will trigger an email.

  * Add a a direct subscription level to override the subscription level — not directly.  NOTE THESE ARE THE SAME OPTIONS AS ABOVE RIGHT NOW, AND MREVELL HAS NOT REVIEWED.

    * ACTION: Change your subscription to bug #XXXX

    * DESCRIPTION: Change which events will trigger an email.

  * Unsubscribe from the bug — directly subscribed, directly as reporter

    * WARNING: IF THIS IS A PRIVATE BUG, YOU ARE TAKING AWAY THE PRIVILEGES TO SEE THE BUG.

    * ACTION: Unsubscribe from bug #XXX

    * DESCRIPTION: You will no longer receive email about this bug. It will still show in the list of bugs you've reported.

  * Unsubscribe team from the bug — indirectly through team as team admin

    * ACTION: Unsubscribe $TEAM from bug #XXX

    * DESCRIPTION: This team will no longer receive email about this bug. This will not affect individual subscriptions made by team members.

  * Unsubscribe from duplicate — subscribed from duplicate

    * ACTION: Unsubscribe from bug #XXXX

    * DESCRIPTION: You subscribed to a bug that was later marked as a duplicate of another bug. You will receive no further email about this bug but you'll still receive email about the other bug.

  * Unsubscribe team from the duplicate — admin of a team subscribed to the duplicate

    * ACTION: Unsubscribe $TEAM from bug #XXXX

    * DESCRIPTION: You subscribed this team to a bug that was later marked as a duplicate of another bug. The team will receive no further email about this bug but will still receive email about the other bug.

  * Change team subscription level — indirectly through team as team admin

    * ACTION: Change $TEAM's subscription to bug #XXXX

    * DESCRIPTION: Change which events will trigger an email to this team.

  * Set the bug supervisor — no bug supervisor, you are the product owner

    * ACTION: Set $PROJECT's bug supervisor

    * DESCRIPTION: Choose an individual or team who will manage bug reports for this project.

Nice-to-have Actions
--------------------

* Disable all Launchpad bug notifications
* Opt out of team subscription

Rejected Actions
----------------

  * Leave the team — indirectly through team as team member

    * ACTION IS OF QUESTIONABLE VALUE

    * ACTION: Leave $TEAM to unsubscribe from bug #XXXX

    * DESCRIPTION: By leaving this team, you'll no longer receive any bug mail related to it or have any of the privileges associated with this team.

  * Leave the team — member of a team subscribed to the duplicate

    * ACTION IS OF QUESTIONABLE VALUE

    * ACTION: Leave $TEAM to unsubscribe from bug #XXXX

    * DESCRIPTION: By leaving this team, you'll no longer receive any bug mail related to it or have any of the privileges associated with this team.

  * Change the bug supervisor — you are a bug supervisor, you are the product owner

    * ACTION IS OF QUESTIONABLE VALUE: Limit this to when you are directly (instead of through the team) the bug supervisor? Do not have this action?

    * ACTIONS: Chose another bug supervisor for $PROJECT

    * DESCRIPTION: You are currently this project's bug supervisor. Choose another person or team to take over from you.

  * Leave the supervisor team — you are member of a team that is the bug supervisor

    * ACTION IS OF QUESTIONABLE VALUE

    * ACTION: Leave $TEAM

    * DESCRIPTION: By leaving this team, you'll no longer be one of the project's bug supervisors or have any of the privileges associated with this team.

  * Stop being the supervisor — you are the bug supervisor, you are not the product owner

    * ACTION: Resign your role as $PROJECT's bug supervisor

    * DESCRIPTION: You'll no longer receive email related to the bug supervisor role and the project will not have a bug supervisor.

Plan of attack
--------------

1. Start providing all the properties on the view that allow one to determine what type of description/action will be needed
2. Implement description
3. Implement actions

LEP/BetterBugSubscriptionsAndNotifications/DirectSubscriptionsOnBug (last edited 2011-03-08 20:44:13 by gary)