Org mode is so flexible that you have, in addition to the previous answer, a bunch of additional possibilities, if you don't file like coding. This requires a little modification of your setup, but not much.
One of the simplest solutions is to use properties. If we define the properties I-1
, I-2
, I-3
and I-4
and set them the value TODO
, ONGOING
or DONE
(by pressing C-C C-x p
over the desired task) for those items (properties) that have to be executed for each task, we set effectively the list of items for each task. For example, we could have:
* All tasks
** DONE Task 1
:PROPERTIES:
:I-1: DONE
:I-2: DONE
:END:
** TODO Task 2
:PROPERTIES:
:I-2: DONE
:I-3: ONGOING
:END:
** TODO Task 3
:PROPERTIES:
:I-1: TODO
:I-2: ONGOING
:I-4: TODO
:END:
* config :noexport:
#+COLUMNS: %35ITEM %3PRIORITY %7I-1 %7I-2 %7I-3 %7I-4
#+PROPERTY: I-1_ALL TODO ONGOING DONE
#+PROPERTY: I-2_ALL TODO ONGOING DONE
#+PROPERTY: I-3_ALL TODO ONGOING DONE
#+PROPERTY: I-4_ALL TODO ONGOING DONE
The last lines under the config
heading are there to set up the heading in table view mode, and to define the valid values of the properties I-1..4.
Pressing C-c C-x C-c
(edited, thanks for the comment!) in the All tasks
heading will show you this in form of table:
ITEM______________________________|_PRI_|_I-1_____|_I-2_____|_I-3_____|_I-4_____|
* All tasks | | | | | |
** DONE Task 1 | | DONE | DONE | | |
** TODO Task 2 | | | DONE | ONGOING | |
** TODO Task 3 | | TODO | ONGOING | | TODO |
The nice thing about this is that when placed over a given value of a property, pressing S-left/right
moves the value over the valid values of that property. Press q
to exit column view mode.