mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-26 06:37:20 +02:00
Make tasks affect statistics of super-projects
This commit is contained in:
parent
ffd6465661
commit
48be6986c2
3 changed files with 32 additions and 15 deletions
|
@ -1,5 +1,7 @@
|
||||||
2.4.2 () -
|
2.4.2 () -
|
||||||
|
|
||||||
|
- TW-41 Tasks in subprojects are not counted in project completion (thanks
|
||||||
|
to Renato Alves).
|
||||||
- TW-1450 Projects command should trigger running garbage collector (thanks to
|
- TW-1450 Projects command should trigger running garbage collector (thanks to
|
||||||
Tomas Babej).
|
Tomas Babej).
|
||||||
- TW-1535 move default listing-break from list to ls (thanks to David Patrick).
|
- TW-1535 move default listing-break from list to ls (thanks to David Patrick).
|
||||||
|
|
|
@ -92,8 +92,16 @@ int CmdProjects::execute (std::string& output)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Increase the count for the project the task belongs to and all
|
||||||
|
// its super-projects
|
||||||
project = task->get ("project");
|
project = task->get ("project");
|
||||||
unique[project] += 1;
|
|
||||||
|
std::vector <std::string> projects = extractParents (project);
|
||||||
|
projects.push_back (project);
|
||||||
|
|
||||||
|
std::vector <std::string>::const_iterator parent;
|
||||||
|
for (parent = projects.begin (); parent != projects.end (); ++parent)
|
||||||
|
unique[*parent] += 1;
|
||||||
|
|
||||||
if (project == "")
|
if (project == "")
|
||||||
no_project = true;
|
no_project = true;
|
||||||
|
|
|
@ -92,26 +92,33 @@ int CmdSummary::execute (std::string& output)
|
||||||
for (task = filtered.begin (); task != filtered.end (); ++task)
|
for (task = filtered.begin (); task != filtered.end (); ++task)
|
||||||
{
|
{
|
||||||
std::string project = task->get ("project");
|
std::string project = task->get ("project");
|
||||||
++counter[project];
|
std::vector <std::string> projects = extractParents (project);
|
||||||
|
projects.push_back (project);
|
||||||
|
|
||||||
|
std::vector <std::string>::const_iterator parent;
|
||||||
|
for (parent = projects.begin (); parent != projects.end (); ++parent)
|
||||||
|
++counter[*parent];
|
||||||
|
|
||||||
if (task->getStatus () == Task::pending ||
|
if (task->getStatus () == Task::pending ||
|
||||||
task->getStatus () == Task::waiting)
|
task->getStatus () == Task::waiting)
|
||||||
|
for (parent = projects.begin (); parent != projects.end (); ++parent)
|
||||||
{
|
{
|
||||||
++countPending[project];
|
++countPending[*parent];
|
||||||
|
|
||||||
time_t entry = strtol (task->get ("entry").c_str (), NULL, 10);
|
time_t entry = strtol (task->get ("entry").c_str (), NULL, 10);
|
||||||
if (entry)
|
if (entry)
|
||||||
sumEntry[project] = sumEntry[project] + (double) (now - entry);
|
sumEntry[*parent] = sumEntry[*parent] + (double) (now - entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (task->getStatus () == Task::completed)
|
else if (task->getStatus () == Task::completed)
|
||||||
|
for (parent = projects.begin (); parent != projects.end (); ++parent)
|
||||||
{
|
{
|
||||||
++countCompleted[project];
|
++countCompleted[*parent];
|
||||||
|
|
||||||
time_t entry = strtol (task->get ("entry").c_str (), NULL, 10);
|
time_t entry = strtol (task->get ("entry").c_str (), NULL, 10);
|
||||||
time_t end = strtol (task->get ("end").c_str (), NULL, 10);
|
time_t end = strtol (task->get ("end").c_str (), NULL, 10);
|
||||||
if (entry && end)
|
if (entry && end)
|
||||||
sumEntry[project] = sumEntry[project] + (double) (end - entry);
|
sumEntry[*parent] = sumEntry[*parent] + (double) (end - entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue