Implement custom fields in Projects

Summary:
Ref T4379. Ref T3794. Fixes T4010. This brings CustomFields to projects.

My primary goal is to get rid of the special casing around project profiles and profile editing, so all edits are ApplicationTransactions. Particularly, I want to make the "blurb/description" field a custom field which goes through builtin infrastructure.

A distant secondary goal is that this is a feature which users like/want because users like/want features.

Test Plan: Added a custom field and examined it in the edit, view, and search interfaces.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3794, T4010, T4379

Differential Revision: https://secure.phabricator.com/D8180
This commit is contained in:
epriestley
2014-02-10 14:31:34 -08:00
parent b99f72216d
commit 7c8a875c19
9 changed files with 214 additions and 45 deletions

View File

@@ -246,7 +246,7 @@ final class PhabricatorProjectQuery
if ($this->memberPHIDs) {
return 'GROUP BY p.id';
} else {
return '';
return $this->buildApplicationSearchGroupClause($conn_r);
}
}
@@ -270,6 +270,8 @@ final class PhabricatorProjectQuery
PhabricatorEdgeConfig::TYPE_PROJ_MEMBER);
}
$joins[] = $this->buildApplicationSearchJoinClause($conn_r);
return implode(' ', $joins);
}
@@ -278,4 +280,8 @@ final class PhabricatorProjectQuery
return 'PhabricatorApplicationProject';
}
protected function getApplicationSearchObjectPHIDColumn() {
return 'p.phid';
}
}