imag/lib/domain/libimagtodo
Matthias Beyer 5be95227c4 Add builder for todo entries
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-11-09 17:35:19 +01:00
..
src Add builder for todo entries 2019-11-09 17:35:19 +01:00
Cargo.toml Reimplement libimagtodo 2019-11-09 17:35:06 +01:00
README.md Fix broken README symlinks 2017-08-27 15:13:25 +02:00

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