Merge pull request #923 from kellya/main

Added task detail display for taskwarrior
This commit is contained in:
tobi-wan-kenobi 2022-09-12 19:50:40 +02:00 committed by GitHub
commit 96c9989ad5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 3 deletions

View file

@ -24,15 +24,32 @@ class Module(core.module.Module):
self.__pending_tasks = "0" self.__pending_tasks = "0"
def update(self): def update(self):
"""Return a string with the number of pending tasks from TaskWarrior.""" """Return a string with the number of pending tasks from TaskWarrior
or the descripton of an active task.
if show.active is set in the config, show the description of the
current active task, otherwise the number of pending tasks will be displayed.
"""
try: try:
taskrc = self.parameter("taskrc", "~/.taskrc") taskrc = self.parameter("taskrc", "~/.taskrc")
show_active = self.parameter("show_active", False)
w = TaskWarrior(config_filename=taskrc) w = TaskWarrior(config_filename=taskrc)
pending_tasks = w.filter_tasks({"status": "pending"}) active_tasks = (
self.__pending_tasks = str(len(pending_tasks)) w.filter_tasks({"start.any": "", "status": "pending"}) or None
)
if show_active and active_tasks:
# this is using the first element of the list, if there happen
# to be other active tasks, they won't be displayed.
reporting_tasks = (
f"{active_tasks[0]['id']} - {active_tasks[0]['description']}"
)
else:
reporting_tasks = len(w.filter_tasks({"status": "pending"}))
self.__pending_tasks = reporting_tasks
except: except:
self.__pending_tasks = "n/a" self.__pending_tasks = "n/a"
@core.decorators.scrollable
def output(self, _): def output(self, _):
"""Format the task counter to output in bumblebee.""" """Format the task counter to output in bumblebee."""
return "{}".format(self.__pending_tasks) return "{}".format(self.__pending_tasks)

View file

@ -1612,6 +1612,7 @@ Requires the following library:
Parameters: Parameters:
* taskwarrior.taskrc : path to the taskrc file (defaults to ~/.taskrc) * taskwarrior.taskrc : path to the taskrc file (defaults to ~/.taskrc)
* taskwarrior.show_active: true/false(default) to show the active task ID and description when one is active, otherwise show the total number pending.
contributed by `chdorb <https://github.com/chdorb>`_ - many thanks! contributed by `chdorb <https://github.com/chdorb>`_ - many thanks!