Add transaction-oriented editing to projects

Summary:
  - Make some editing operations transaction-oriented, like Maniphest. (This
seems to be a good model, particularly for extensibility.) I'll move the rest of
the editing operations to transactions in future diffs.
  - Make transaction-oriented operations publish feed stories.

Test Plan:
  - Created a new project.
  - Edited an existing project.
  - Created a new project via quick create flow from Maniphest.
  - Verified feed stories publish correctly.

Reviewers: btrahan, jungejason

Reviewed By: btrahan

CC: aran, epriestley

Maniphest Tasks: T681

Differential Revision: https://secure.phabricator.com/D1477
This commit is contained in:
epriestley
2012-01-24 07:11:37 -08:00
parent 3c8bb8a608
commit b43eb5aa7c
18 changed files with 383 additions and 26 deletions

View File

@@ -0,0 +1,11 @@
CREATE TABLE phabricator_project.project_transaction (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
projectID INT UNSIGNED NOT NULL,
authorPHID VARCHAR(64) BINARY NOT NULL,
transactionType VARCHAR(32) NOT NULL,
oldValue LONGBLOB NOT NULL,
newValue LONGBLOB NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
KEY (projectID)
) ENGINE=InnoDB;