diff --git a/ChangeLog b/ChangeLog index 3041d6a91..eaba1e6e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -69,6 +69,8 @@ - TW-1617 Can't search for multi-word project (thanks to Audrey Easterday). - TW-1619 fish completion contain backspaces in fish master version (thanks to Johannes Wienke₎. +- TW-1621 Recurrent parent tasks shouldn't be counted in history (thanks to + Denis Kasak). - TW-1622 Duration UDA can't take an algebraic expression (thanks to Jeremy John Reeder). - TW-1626 Wrong wait date (thanks to Andrea Rizzi). diff --git a/src/commands/CmdHistory.cpp b/src/commands/CmdHistory.cpp index e6c6da506..f555a16d7 100644 --- a/src/commands/CmdHistory.cpp +++ b/src/commands/CmdHistory.cpp @@ -74,8 +74,9 @@ int CmdHistoryMonthly::execute (std::string& output) time_t epoch = entry.startOfMonth ().toEpoch (); groups[epoch] = 0; - // Every task has an entry date. - ++addedGroup[epoch]; + // Every task has an entry date, but exclude templates. + if (task.getStatus () != Task::recurring) + ++addedGroup[epoch]; // All deleted tasks have an end date. if (task.getStatus () == Task::deleted) @@ -230,8 +231,9 @@ int CmdHistoryAnnual::execute (std::string& output) time_t epoch = entry.startOfYear ().toEpoch (); groups[epoch] = 0; - // Every task has an entry date. - ++addedGroup[epoch]; + // Every task has an entry date, but exclude templates. + if (task.getStatus () != Task::recurring) + ++addedGroup[epoch]; // All deleted tasks have an end date. if (task.getStatus () == Task::deleted) @@ -383,8 +385,9 @@ int CmdGHistoryMonthly::execute (std::string& output) time_t epoch = entry.startOfMonth ().toEpoch (); groups[epoch] = 0; - // Every task has an entry date. - ++addedGroup[epoch]; + // Every task has an entry date, but exclude templates. + if (task.getStatus () != Task::recurring) + ++addedGroup[epoch]; // All deleted tasks have an end date. if (task.getStatus () == Task::deleted) @@ -577,8 +580,9 @@ int CmdGHistoryAnnual::execute (std::string& output) time_t epoch = entry.startOfYear ().toEpoch (); groups[epoch] = 0; - // Every task has an entry date. - ++addedGroup[epoch]; + // Every task has an entry date, but exclude templates. + if (task.getStatus () != Task::recurring) + ++addedGroup[epoch]; // All deleted tasks have an end date. if (task.getStatus () == Task::deleted)