Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

 

 

Excerpt
hiddentrue

...

 A comparative review of various todo list / checklist plugins available for JIRA.
 

 

 

Image Added

Sometimes in JIRA you want a checklist, or todo list for your issue, just like Confluence's Task List

...

.

...

  • Show all checkboxes, even if unchecked, rather than hiding unchecked items as JIRA's Checkbox field does.
  • Show a mini completion status (X of Y checkboxes ticked).
  • Let users add new checkbox items dynamically.

...

What are your options?

  1. You could model your todo items as sub-tasks. Advantages: todo items can have assignees, due dates, and a fancy workflow. Disadvantage: visual clutter, difficult to use, and you don't need the full power for JIRA for something this simple.
  2. You might try to use JIRA's built-in 'Checkboxes' field type for a 'Todo' field. This does not work. With JIRA checkboxes, only checked items show. Unchecked items are considered to be "irrelevant to this issue", and so don't display except when editing. A todo list with no completed items wouldn't show up at all. In a todo list, unchecked means "task is not yet completed", which makes it just as (or more) important than checked items.
  3. Consider the various JIRA checklist / todo list plugins.


Here we review a handful of checklist / todo list plugins available (in February 2016), seeing how they stack up to each other and the built-in

...

Checkboxes field.

 

 Built-in JIRA Checkboxes

...

...

Kanoah Checklist

...

...

Kanoah Checklist

Simple Tasklists
Price (Feb '16)n/a$0

10 / 35 / 75 / 150 / 325 / 480 / 650 / 875 / 950

10 / 25 / 50 / 100 / 250 / 275 / 325 / 325

...

10 / 20 / 40 / 80 / 125 / 200 / 200 / 400 / 400
Supportn/a

...

...

...

...

Issue View

...

JIRA only displays the values of checkboxes that have been ticked.

Image Added

 

 

Image Added

By default only the first two checkboxes are shown – even if other hidden ones are checked:

Image Modified

Fortunately this behaviour can be turned off, showing all checkboxes:

Image Modified

Strikethrough can also be turned off.

 

 Image Modified

...

Unlike others, Simple Tasklists is not a custom field, but rather some specially formatted text (macro) in the issue description:

Image Added

 

All Checkboxes TickedImage ModifiedImage AddedImage ModifiedImage Modified

...

Image Added

...

Edit ViewImage ModifiedImage Added

Image Modified

Note the stars, indicating 'required' fields.

Image Modified

Note the ability to edit/delete items on the fly

 

...

Here are the {task}'s in the description, plus the rendered view on the right. There is also a {tasklist} macro, but this auto-expands to a set of {task}s.

Image Added

Search Results / List View

Image Modified

Image AddedImage Modified

Image Modified

...

Due to what may be a bug, checkboxes aren't appearing as ticked when they should See https://answers.atlassian.com/questions/37042292/search-results-not-showing-ticks-in-checked-items

Image Added

 

...

 

Structure ViewImage ModifiedImage Added

Image Modified

Image Modified

...

Image Added

...

Searchability

Image Modified

 

Image Modified

Image Added

Image Modified

Image Modified

 

 

Image Modified

 

...

Search does not appear to be possible. See https://answers.atlassian.com/questions/37042662/ability-to-search-for-an-issue-by-tasklist-item-status
ConfigurationImage Modified

...

\Image Removed

Options are not managed centrally, but rather per-issue. New issues acquire the Default Value

...

Image Removed

...

.

...

Due to what seems like a bug, the Default Value doesn't display:

Image Modified

until one clicks 'Edit Default Value':

Image Modified

...

\Image Added

Options are not managed centrally, but rather per-issue. New issues acquire the Default Value:

Image Added

Template sets of tasks called 'tasklists' can be defined:

Image Added

Tasklists are just templates, not centrally managed sets of tasks. Each issue's set of tasks derived from the tasklist may vary individually.

Customizability

n/a

...

n/a
  • Strike through is optional
  • Items can be made 'mandatory', towards a 'Completed' field status.
  • Addition of new items can be restricted by role

Image Modified

Image Modified

n/a

...

A few tweaks are available:

Image Added

...

Internal Database Representation

customfieldvalue.stringvalue stores ID references to predefined options:

11202
11201
11200

customfield.textvalue stores one JSON field per issue, with direct option values:

[{"id":"Overview Doc Written","type":"done"},{"id":"High Level User Stories Written","type":"done"},{"id":"UX Design Developed","type":"done"},{"id":"Eng Tech Spec Written","type":"todo"},{"id":"Eng t-shirt Size & Quarter Commit","type":"todo"},{"id":"All Sprints Scheduled","type":"todo"}]

customfieldvalue.textvalue stores JSON records (one per checkbox), referring to a predefined option.

{"checked":false,"name":"","mandatory":true,"rank":5,"optionId":11215,"version":"3.0","id":11215,"statusId":"none"}{"checked":false,"name":"","mandatory":true,"rank":4,"optionId":11214,"version":"3.0","id":11214,"statusId":"none"}{"checked":false,"name":"","mandatory":true,"rank":3,"optionId":11213,"version":"3.0","id":11213,"statusId":"none"}{"checked":true,"name":"","mandatory":true,"rank":2,"optionId":11212,"version":"3.0","id":11212,"statusId":"none"}{"checked":true,"name":"","mandatory":true,"rank":1,"optionId":11211,"version":"3.0","id":11211,"statusId":"none"}{"checked":true,"name":"","mandatory":false,"rank":0,"optionId":11210,"version":"3.0","id":11210,"statusId":"none"}

customfieldvalue.textvalue stores one JSON field per issue, with direct option values:

[{"description":"Overview Doc Written","checked":true},{"description":"High Level User Stories Written","checked":true},{"description":"UX Design Developed","checked":true},{"description":"Eng Tech Spec Written","checked":false},{"description":"Eng t-shirt Size & Quarter Commit","checked":false},{"description":"All Sprints Scheduled","checked":false},{"description":"All Code Checked In & Tested","checked":false}]

customfield.textvalue stores one JSON field per issue, with direct option values:

...

A custom table, AO_5345B8_TASK, is used to store tasks, which the {task} macros simply reference:

Image Added

Likewise for tasklists:

Image Added

    Once an issue is created, its options vary completely independently of any other. You can create new checkboxes on the fly within the issue. You cannot bulk-change the wording of a checkbox across issues. 
     

Simple Tasklists is the most interesting and promising of the bunch, because it implements its own back-end, rather than being limited by the custom field API, and exposes this back-end via macros in the description and comments. Tasks can be interspersed within a free-form issue description, or added via comments, and are all nicely aggregated by the Task panel. Like in Confluence, tasks can be assigned via @mention reference, and will appear in a user's task tray.

There is also the possibility (hampered by bugs at present) of ticking off tasks via the search results or gadgets view.

The plugin has some limitations and missed opportunities at present:

  • There appears to be no search-for-issues-by-task facility (link)
  • Syncing changes from issue to search results pages is buggy (link)
  • Like all alternatives except Checklists for JIRA, issues do not share task list definitions. Each task list varies individually, and changing the templates will only affect new issues.
  • The database refers to issue keys (e.g. PRJ-9), which probably will break if projects are renamed.

 

Conclusion