imag/doc/src/05100-lib-todo.md
Matthias Beyer 21cc901d06 Rewrite what libimagtodo should implement
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-11-09 17:35:06 +01:00

1.9 KiB

libimagtodo

The library for the todo module which provides functionality to implement/implements a todomanager in imag.

Implementation details

One todo entry is stored as one imag entry. The ID of the imag entry is generated by appending a unique ID (UUID) to "todo/".

The unique ID identifies the todo entry.

Stored data

A todo entry stores the following information:

  • The (UU)ID of the todo entry
  • A status of the todo entry. Valid values are: "deleted", "done", "pending"
  • An optional "scheduled" date/datetime
  • An optional "hidden" value, which specifies a date in the future where this todo entry should show up.
  • An optional "due" date/datetime
  • A "priority"-level, either "h", "m", "l"

The description of the todo entry is stored as plain text.

Data not stored

Some data is explicitely not stored by the library because there are other libraries fullfilling that purpose. These are:

  • Related todos, which can be done via libimagentrylink
  • Tags, which can be done with libimagentrytag
  • Category, which can be done with libimagentrycategory
  • Project belonging, which can be done with libimagentrylink (by linking to a project file - note that "project" is a domain not yet implemented by imag)
  • Annotations, which can be stored with libimagentryannotation

Header format

The header partial for libimagtodo is as follows:

[todo]
uuid = "string"
status = "enum { 'deleted', 'done', 'pending' }"
scheduled = "<NaiveDateTime>" // optional
hidden = "<NaiveDateTime>" // optional
due = "<NaiveDateTime>" // optional
priority = "enum { 'h', 'm', 'l' }" // optional

Functionality

The provided functionality of this library includes, but is not limited to:

  • Creating
  • Deleting
  • Get/Retrieving
  • Getting data about the todo
    • Reading metadata: scheduled, due, waiting, prio, uuid, status,...
    • Related (via libimagentrylink) todo entries