- Yokadi has been updated to SQLAlchemy 2.0.32.
t_list
now uses color to display keywords.- Fixed the crash handler failing on Windows.
- The new
p_merge
command lets you merge a project into another. - It is now possible to turn a task into a note with
t_to_note
and a note into a task withn_to_task
.
- The
k_remove
command no longer ignores unused keywords. - HTML output has been fixed to no longer output strings wrapped in
b""
. t_list
filtering has been fixed so thatt_list --urgency 0
filters out tasks with a negative urgency, as expected.
- HTML output has been refreshed:
- It looks more modern now.
- Some fields have been removed (doneDate, creationDate).
- The title, keywords and description fields have been merged.
- An ID field has been added (handy to run a command on a task listed in the output).
- Columns now use human-friendly titles.
- The
--db
option is now deprecated and replaced by the--datadir
option.--db
will be removed in the next version. - Similarly, the
YOKADI_DB
environment variable is now deprecated and will be removed in the next version. - Yokadi no longer supports cryptography: encrypted databases will be decrypted at update.
- When listing multiple projects, order them alphabetically.
- Fixed parse error if the user sets a time of "17m".
- When the user edits a tasks with t_edit and removes a keyword, remove the keyword from the task.
- Made recurrence code work with dateutil 2.6.0.
- A new command has been added:
t_medit
.t_medit
lets you edit all tasks of a project in one go. - Aliases can now be modified. The name of the alias can be modified with
a_edit_name
and the command witha_edit_command
. - Database format updates are now easier to run: just run
yokadi -u
, no more separateupdate.py
command. Updates are also much faster. - Task lists have been improved:
- Borders look nicer.
- Some bugs in the rendering of the title column have been fixed (wrong width, badly cropped text).
- Yokadi now uses standard paths by default: the database is stored in ~/.local/share/yokadi/yokadi.db and non-essential data is in ~/.cache/yokadi/.
- Reviewed and improved documentation. Moved developer documentation to a separate dir (doc/dev).
- The code handling recurrences has been made more robust.
- Recurrences are now stored in a more future proof way.
- Fixed
bug_edit
crash. - Fixed negative keyword filter: A task with two keywords k1 and k2 would not be excluded by a filter !k1.
- Use a more portable way to get the terminal size. This makes it possible to use Yokadi inside Android terminal emulators like Termux
- Sometimes the task lock used to prevent editing the same task description from multiple Yokadi instances were not correctly released
- Deleting a keyword from the database caused a crash when a t_list returned tasks which previously contained this keyword
- Make sure installing via pip installs the required dependencies
- Improved release process
- Fixed an issue which caused t_list to fail when filtering by keywords on large lists
- Removed the project keywords feature. It was not very useful and made the searching code more complicated
- Fixed ical support: it now works with ical 3.6 or later
- Improved documentation
- Added Keywords field to yokadi.desktop
- Yokadi has been ported to Python 3
- The application now uses SQLAlchemy instead of SQLObject to access the SQLite database
- t_add, n_add:
- Allow creating two tasks with the same title (useful for recurrent tasks, like "buy bread").
- Allow using _ to select last project, making it possible to do multiple t_add on the same project with
t_add _ <task description>
. - Add --describe option to start describing the task right after adding it.
- t_describe, n_describe:
- Safer task description editing: task is updated each time the editor saves, a lock manager now prevents multiple edits.
- Use .md suffix instead of .txt for the temporary filename to allow some smart things with editors that understand Markdown.
- Use project and task name for the temporary filename. Useful when using graphical editors or when your terminal title shows the current running command.
- t_due:
- When called with a time argument which is before current time, set due date to the day after.
- t_show:
- Show the task ID.
- t_list:
- Use month and year for the task age if the task is older than 12 months.
- Add support for arbitrary minimum date for --done.
- Fixed broken help.
- n_list:
- Display creation date instead of age.
- Notes are now grouped by date.
- p_list:
- Show task count per project.
- p_remove:
- Show the number of associated tasks in the prompt.
- p_edit:
- Handle case where user tries to rename a project using the name of an existing project.
- Add --restart option and --log option.
- Set process name with setproctitle.
- Configuration keys can now be overridden using environment variables.
- Date/time commands now support
%d/%m/%y
date format. - Replaced xyokadi with a desktop file.
- Updated README to match real output.
- Command parser has been ported from optparse to argparse.
- Code is now PEP 8 compliant, with the exception of camelCase usage.
- All imports have been changed to absolute imports (ie
import yokadi.<something>
). - Code has been reorganized into different sub directories.
- The scripts in bin/ are now smart enough to run the source tree version instead of the installed version if possible.
- We now use Travis for continuous integration.
- cryptographic support to encrypt tasks title and description.
- t_apply now accept id range (x-y).
- Special keyword
__
can used in t_apply to affect all tasks previously select by t_list.
- Negative keyword support. Ex.:
t_list !@home
- Permanent filters on keyword or project.
t_filter @foo
will filter any further call to t_list on @foo keyword.
- yokadi symlink (useful to run yokadi without installing it) was broken
- dynamic display width according to user terminal
- display keywords in t_list
- bugs keywords are prefixed with a
_
to distinguish them from user keywords - YOKADI_DB environment variable can be defined to set default yokadi database path
- tasks can be grouped by keyword instead of project
- special character
_
can be used to represent last task id - custom aliases can be defined for all commands with a_add
- switch from GPL 3 to GPL v3 or newer license
- ability to assign keywords to a project
- shortened some commands (old ones still available but deprecated):
t_set_due
=>t_due
t_set_project
=>t_project
t_set_urgency
=>t_urgency
- changed keyword syntax: use
@foo
instead of-k foo
- added t_recurs command to define task recursion (weekly, monthly, yearly...)
- added full text search with
t_list -s foo
- enhanced t_list display
- added purge command (t_purge) to remove old tasks
- added Windows support
- fixed install script to be more friendly to both users and packagers
First public release. Fully usable for home and work.