= Customisable columns for bug listings =
~+'''[[http://blog.launchpad.net/?p=3005|Read our blog post about this feature!]]'''+~
The information we present in lists of bugs, whether in bug search results or standard bug listing pages, is fixed and was chosen a long time ago. It has not kept pace with the data stored by the bug tracker nor with the different ways in which people want to use Launchpad to track bugs.
Similarly, Launchpad provides minimal choice in how bug listings are ordered.
As a general principle, Launchpad should give people access to their data in the ways that suit them. In that spirit, we should make it easy to customise the information presented on bug listings pages and the order in which that information is shown.
'''Contact:''' Matthew Revell <
>
'''On Launchpad:''' [[https://bugs.launchpad.net/launchpad/+bugs?field.tag=bug-columns|bug-columns tag]]
== Rationale ==
This is a much requested feature and has been requested by our stakeholders. We are working on it now because it is a relatively small project but will give a great deal of benefit both to stakeholders and general users of Launchpad's bug tracker.
Customisable columns for bug listings will help people be more productive when using the bug tracker.
== Stakeholders ==
Steve Magoun, who previously represented Canonical's OEM Solutions group, requested this feature. The QA CoP will find this particularly useful.
Chris Gregan, who heads up the Canonical QA CoP.
Dave Murphy who now represents the OEM Solutions portion of Professional and Engineering Services.
== User stories ==
<)>>
'''As a''' development manager<
>
'''I want''' a clear view of who in my team is assigned to which bugs<
>
'''so that''' I can evaluate how my team's workload is spread across its member and which of the bugs for which my team is reponsible are unassigned.
'''As a''' development manager<
>
'''I want''' to order bug reports by age<
>
'''so that''' I can factor the age of a bug into the decision of whether to work on it next.
'''As a''' development manager<
>
'''I want''' to see a bug's milestone and order by milestone
'''so that''' I can plan when each bug needs to be assigned to a developer.
'''As a''' QA engineer<
>
'''I want''' to see and order by tags in bug listings
'''so that''' I can have a quick overview of the QA status of the bugs I'm working on.
== Constraints and Requirements ==
=== Must ===
* Provide a way to remove and add information to the current bug listing, without having to refresh the page (bugs Bug:78608, Bug:416612, Bug:664808). Columns available should include:
* bug number
* bug title (bug Bug:574711)
* milestone name (bug Bug:455650)
* status (bug Bug:56845)
* importance
* bug heat
* bug importance icon
* package/project name linked to the package/project page, if distro bug (bugs Bug:99593, Bug:351147)
* Allow re-ordering of the bug listing by any of the information displayed, without having to refresh the page and without losing search criteria (bug Bug:81002, Bug:132759, Bug:295214)
* Provide a way for the user to save their preferred layout and ordering, which would be used as a default for subsequent listings.
* A way to specify the information displayed and ordering via the URL (bug Bug:124342)
* Provide a standard way for any page in Launchpad to be marked as beta, possibly based on privacy ribbon
* Provide a framework for developers to display new information in bugs listings
=== Likely to have ===
These are aspects of the feature that we believe are important and that we believe we will have time to add, if the work covered by the requirements above goes well.
(Items in '''bold''' are must-have from OEM perspective.)
* Add new columns:
* '''assignee (bugs Bug:105016, Bug:766960)'''
* '''bug age'''
* '''tags (bug Bug:389575)'''
* presence of an attachment
* presence of a patch ( (bug Bug:283097)
* presence of blueprint link(s)
* presence of branch link(s)
* reporter (bug Bug:6708)
* date of last change to the bug (bug Bug:894745)
* name of series in which the bug is Fix Released (bug Bug:340927)
* Allow for secondary and tertiary ordering: e.g. order by age, then status, then assignee.
=== Nice to have ===
* A short description of the search that resulted in the bug listing (bug Bug:28697)
* Show complete bug description in a tooltip on the bug the listing page (bug Bug:401243)
* Display options for:
* number of attachments (any type)
* number of patches
* number of links to blueprints
* number of links to branches
* Other projects/packages that are affected
* When a user changes the sort order, the back button will return to their previous sorting and batch number.
=== Must not ===
* Make it slower to fetch bug listings.
=== Out of scope ===
* Changes to the search functionality itself. This LEP covers only changes to the presentation of search results/bug listings.
* Adding new ways to view a search: RSS, Twitter, CSV, print-version, etc
* Ability to order by "most relevant to search" (bug Bug:53008)
* Column showing date of my last activity in that bug and, of course, a sort order by that column (bug Bug:509394)
* Saved searches for later re-use (bug Bug:1331)
== Subfeatures ==
None yet.
== Success ==
=== How will we know when we are done? ===
We will know we're done when it's possible to add and remove the columns displayed on a bug listing and to re-order the listing by any of those columns, then either save that choice as your default view or use it as a one-off for that session or until the user chooses to revert to either their saved preference or the Launchpad default.
=== How will we measure how well we have done? ===
We will measure the success of this feature through user acceptance testing with the stakeholders that requested it and also through wider usability testing. After some time, we will interview stakeholders to check that the feature has made it easier for them to get work done.
== Thoughts? ==
* Sorting by a column: clicking the column title seems a good way of choosing to order the listing by that column's data. Clicking again would switch from ascending to descending. (Source: Bugzilla, JIRA and almost every other web app that lets you sort a table by one of its columns.)
* We need an unobtrusive yet easy to find way of saving a new column configuration/sort order each time the person changes it.
* Similarly, we need a simple way to revert to the Launchpad default.
* It needs to be supremely easy to re-order the listing by one of the columns. The ability to add secondary and tertiary ordering should not make the primary ordering harder.
* If we don't get to add any new columns in the main development period of this feature, we can use the escalated bug process to add new columns.