diff --git a/ChangeLog b/ChangeLog index 5e1fef9a5..39c374f08 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ Features + Added Feature #685, which provides a 'blocking' report, and new color rule (thanks to Michelle Crane). + + Added Feature #953, which includes the total number of blocked and blocking + tasks to the 'statistics' command output (thanks to T. Charles Yun). + Added Feature #1069, which gives a clearer error when a UDA is added without the uda..type variable. + The 'projects' command now outputs abstract parents and reduces diff --git a/NEWS b/NEWS index 4b6ce1c4e..62989f562 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ New Features in taskwarrior 2.2.0 appear as orphaned UDAs. - Tasks now have a 'modified' attribute, which indicates the last time, if at all, that they were modified. + - Statistics now report total number of blocked and blocking tasks. New commands in taskwarrior 2.2.0 diff --git a/src/commands/CmdStatistics.cpp b/src/commands/CmdStatistics.cpp index 198f28125..daa23801f 100644 --- a/src/commands/CmdStatistics.cpp +++ b/src/commands/CmdStatistics.cpp @@ -94,6 +94,8 @@ int CmdStatistics::execute (std::string& output) int taggedT = 0; int annotationsT = 0; int recurringT = 0; + int blockingT = 0; + int blockedT = 0; float daysPending = 0.0; int descLength = 0; std::map allTags; @@ -114,6 +116,9 @@ int CmdStatistics::execute (std::string& output) case Task::waiting: ++waitingT; break; } + if (task->is_blocked) ++blockedT; + if (task->is_blocking) ++blockingT; + time_t entry = strtol (task->get ("entry").c_str (), NULL, 10); if (entry < earliest) earliest = entry; if (entry > latest) latest = entry; @@ -189,6 +194,14 @@ int CmdStatistics::execute (std::string& output) view.set (row, 0, STRING_CMD_STATS_PROJECTS); view.set (row, 1, (int)allProjects.size ()); + row = view.addRow (); + view.set (row, 0, STRING_CMD_STATS_BLOCKED); + view.set (row, 1, blockedT); + + row = view.addRow (); + view.set (row, 0, STRING_CMD_STATS_BLOCKING); + view.set (row, 1, blockingT); + row = view.addRow (); view.set (row, 0, STRING_CMD_STATS_DATA_SIZE); view.set (row, 1, formatBytes (dataSize)); diff --git a/src/en-US.h b/src/en-US.h index 8e6c98cde..a13cf0668 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -260,6 +260,8 @@ #define STRING_CMD_STATS_DESC_LEN "Average desc length" #define STRING_CMD_STATS_CHARS "{1} characters" #define STRING_CMD_STATS_LAST_SYNCH "Last server synchronization" +#define STRING_CMD_STATS_BLOCKED "Blocked tasks" +#define STRING_CMD_STATS_BLOCKING "Blocking tasks" #define STRING_CMD_REPORTS_USAGE "Lists all supported reports" #define STRING_CMD_REPORTS_REPORT "Report" #define STRING_CMD_REPORTS_DESC "Description"