mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-01 19:22:42 +01:00
8756d82cf6
Summary: I'm pretty sure that `@group` annotations are useless now... see D9855. Also fixed various other minor issues. Test Plan: Eye-ball it. Reviewers: #blessed_reviewers, epriestley, chad Reviewed By: #blessed_reviewers, epriestley Subscribers: epriestley, Korvin, hach-que Differential Revision: https://secure.phabricator.com/D9859
49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This is a DAO for the Task -> Project table, which denormalizes the
|
|
* relationship between tasks and projects into a link table so it can be
|
|
* efficiently queried. This table is not authoritative; the projectPHIDs field
|
|
* of ManiphestTask is. The rows in this table are regenerated when transactions
|
|
* are applied to tasks which affected their associated projects.
|
|
*/
|
|
final class ManiphestTaskProject extends ManiphestDAO {
|
|
|
|
protected $taskPHID;
|
|
protected $projectPHID;
|
|
|
|
public function getConfiguration() {
|
|
return array(
|
|
self::CONFIG_IDS => self::IDS_MANUAL,
|
|
self::CONFIG_TIMESTAMPS => false,
|
|
);
|
|
}
|
|
|
|
public static function updateTaskProjects(ManiphestTask $task) {
|
|
$dao = new ManiphestTaskProject();
|
|
$conn = $dao->establishConnection('w');
|
|
|
|
$sql = array();
|
|
foreach ($task->getProjectPHIDs() as $project_phid) {
|
|
$sql[] = qsprintf(
|
|
$conn,
|
|
'(%s, %s)',
|
|
$task->getPHID(),
|
|
$project_phid);
|
|
}
|
|
|
|
queryfx(
|
|
$conn,
|
|
'DELETE FROM %T WHERE taskPHID = %s',
|
|
$dao->getTableName(),
|
|
$task->getPHID());
|
|
if ($sql) {
|
|
queryfx(
|
|
$conn,
|
|
'INSERT INTO %T (taskPHID, projectPHID) VALUES %Q',
|
|
$dao->getTableName(),
|
|
implode(', ', $sql));
|
|
}
|
|
}
|
|
|
|
}
|