Nikolaus Rath's Website

Roundup TODO Template

NOTE: I am no longer maintaining or using this template. It was developed for roundup 1.4.20 and may require changes to work with recent roundup versions.

Note: This template requires the RoundupMsgFile extension that you need to install first.

This template configures roundup for usage as a personal todo list manager. It has the following features:

  • Issues (corresponding to todo list items) can be in the following four states:

    • in progress: This items is currently worked on / you need to work on this item
    • waiting: This item has not yet been completed, but there is nothing you can do to complete it right now. This status can be used if you are waiting for input from someone else or if the item depends on another item that needs to be completed first.
    • needs attention: the condition that caused you to set an item to "waiting" has just been resolved and you can start working on this item
    • done: This item has been completed

    To make optimum use of these states, your queries should make use of the pseudostatus not waiting/done that has been added as well. It allows you to match only those issues you can really do work on.

  • To track dependencies, the Supersedes field has been renamed to Depends On. If an issue is in waiting state and all its dependencies have been marked as done, it automatically changes to needs attention.

  • The Priority field takes into account dependencies, i.e. an issue with high priority cannot depend on an issue with low priority (in that case the second issue should probably have high priority as well)

  • There is a new field Due Date. An issue can not have a due date that is later than any of its dependencies, except if the dependencies also have a revive date (see below) which is before the due date of the depending issue.

  • There is a new field Revive Date. This field is used together with the waiting status. If the revive date of an issue has been reached, and the current status of the issue is waiting, then the status is changed to needs attention. To illustrate this, let's consider an example use case: You have an issue you only want to start working on after you have received payment (or maybe you want to use the issue solely to track the payment). Since there is nothing you can do to get the payment (you have to wait for someone else to transfer it) you should set the status of this issue to waiting. However, you certainly don't want to wait indefinetely (and maybe never receive the payment at all), so you should also set a revive date, say 10 days into the future. If you later receive the payment, you can look up the issue, change the status and start working on it. If, however, the payment does not come, the issue will automatically change status after 10 days and you can take appropriate action (e.g. send a payment reminder)

  • There is also support to automatically add repeating issues, e.g. a VAT registration that you have to hand in at the beginning of every month.

  • Optionally you can get reminder emails once per day, summarizing all the issues that are due within the next days

  • Optionally, issues that are done and had no activity in the last 3 months can be physically deleted from the tracker.

A screenshot that demonstrates the changed UI is also available.

To install this template, proceed along the following steps:

  1. Create the tracker directory and run roundup-admin install
  2. Patch the schema.py file using schema.diff:

    # patch -p1 < schema.diff
    
  3. Change into the html directory in your tracker and apply this patch:

    # patch -p1 < html.diff
    
  4. Place the file deprevive.py in the detectors folder

  5. Place the file check-tracker.py in some convenient place and configure your system to run these scripts once a day with your tracker directory as parameter. If you want to enable issue expiry, uncomment the appropriate line in this file.

  6. If you want support for repeating issues, do the same with the file add-issues.py. To configure the repeated issues to add, edit this file. It should be well documented.

  7. If you want to get reminder emails, do the same with the file remind-tracker.py. Don't forget to edit the script first to configure your email address though.