Changeset View
Changeset View
Standalone View
Standalone View
src/applications/maniphest/controller/ManiphestReportController.php
| Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | if ($project_phid) { | ||||
| id(new ManiphestTask())->getTableName(), | id(new ManiphestTask())->getTableName(), | ||||
| PhabricatorEdgeConfig::TABLE_NAME_EDGE, | PhabricatorEdgeConfig::TABLE_NAME_EDGE, | ||||
| PhabricatorProjectObjectHasProjectEdgeType::EDGECONST, | PhabricatorProjectObjectHasProjectEdgeType::EDGECONST, | ||||
| $project_phid); | $project_phid); | ||||
| } | } | ||||
| $data = queryfx_all( | $data = queryfx_all( | ||||
| $conn, | $conn, | ||||
| 'SELECT x.oldValue, x.newValue, x.dateCreated FROM %T x %Q | 'SELECT x.transactionType, x.oldValue, x.newValue, x.dateCreated | ||||
| WHERE transactionType = %s | FROM %T x %Q | ||||
| WHERE transactionType IN (%Ls) | |||||
| ORDER BY x.dateCreated ASC', | ORDER BY x.dateCreated ASC', | ||||
| $table->getTableName(), | $table->getTableName(), | ||||
| $joins, | $joins, | ||||
| ManiphestTaskStatusTransaction::TRANSACTIONTYPE); | array( | ||||
| ManiphestTaskStatusTransaction::TRANSACTIONTYPE, | |||||
| ManiphestTaskMergedIntoTransaction::TRANSACTIONTYPE, | |||||
| )); | |||||
| $stats = array(); | $stats = array(); | ||||
| $day_buckets = array(); | $day_buckets = array(); | ||||
| $open_tasks = array(); | $open_tasks = array(); | ||||
| $default_status = ManiphestTaskStatus::getDefaultStatus(); | |||||
| $duplicate_status = ManiphestTaskStatus::getDuplicateStatus(); | |||||
| foreach ($data as $key => $row) { | foreach ($data as $key => $row) { | ||||
| switch ($row['transactionType']) { | |||||
| case ManiphestTaskStatusTransaction::TRANSACTIONTYPE: | |||||
| // NOTE: Hack to avoid json_decode(). | // NOTE: Hack to avoid json_decode(). | ||||
| $oldv = trim($row['oldValue'], '"'); | $oldv = trim($row['oldValue'], '"'); | ||||
| $newv = trim($row['newValue'], '"'); | $newv = trim($row['newValue'], '"'); | ||||
| break; | |||||
| case ManiphestTaskMergedIntoTransaction::TRANSACTIONTYPE: | |||||
| // NOTE: Merging a task does not generate a "status" transaction. | |||||
| // We pretend it did. Note that this is not always accurate: it is | |||||
| // possble to merge a task which was previously closed, but this | |||||
| // fake transaction always counts a merge as a closure. | |||||
| $oldv = $default_status; | |||||
| $newv = $duplicate_status; | |||||
| break; | |||||
| } | |||||
| if ($oldv == 'null') { | if ($oldv == 'null') { | ||||
| $old_is_open = false; | $old_is_open = false; | ||||
| } else { | } else { | ||||
| $old_is_open = ManiphestTaskStatus::isOpenStatus($oldv); | $old_is_open = ManiphestTaskStatus::isOpenStatus($oldv); | ||||
| } | } | ||||
| $new_is_open = ManiphestTaskStatus::isOpenStatus($newv); | $new_is_open = ManiphestTaskStatus::isOpenStatus($newv); | ||||
| ▲ Show 20 Lines • Show All 678 Lines • Show Last 20 Lines | |||||