Page MenuHomePhabricator

D18419.id44263.diff
No OneTemporary

D18419.id44263.diff

diff --git a/resources/sql/autopatches/20170811.differential.03.modernxaction.php b/resources/sql/autopatches/20170811.differential.03.modernxaction.php
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20170811.differential.03.modernxaction.php
@@ -0,0 +1,38 @@
+<?php
+
+$map = array(
+ '0' => 'needs-review',
+ '1' => 'needs-revision',
+ '2' => 'accepted',
+ '3' => 'published',
+ '4' => 'abandoned',
+ '5' => 'changes-planned',
+);
+
+$table = new DifferentialTransaction();
+$conn = $table->establishConnection('w');
+
+foreach (new LiskMigrationIterator($table) as $xaction) {
+ $type = $xaction->getTransactionType();
+
+ if (($type != 'differential:status') &&
+ ($type != 'differential.revision.status')) {
+ continue;
+ }
+
+ $old = $xaction->getOldValue();
+ $new = $xaction->getNewValue();
+
+ $old = idx($map, $old, $old);
+ $new = idx($map, $new, $new);
+
+ queryfx(
+ $conn,
+ 'UPDATE %T SET transactionType = %s, oldValue = %s, newValue = %s
+ WHERE id = %d',
+ $table->getTableName(),
+ 'differential.revision.status',
+ json_encode($old),
+ json_encode($new),
+ $xaction->getID());
+}
diff --git a/src/applications/differential/constants/DifferentialRevisionStatus.php b/src/applications/differential/constants/DifferentialRevisionStatus.php
--- a/src/applications/differential/constants/DifferentialRevisionStatus.php
+++ b/src/applications/differential/constants/DifferentialRevisionStatus.php
@@ -88,27 +88,6 @@
return $result;
}
- public static function newForLegacyStatus($legacy_status) {
- $result = new self();
-
- $map = self::getMap();
- foreach ($map as $key => $spec) {
- if (!isset($spec['legacy'])) {
- continue;
- }
-
- if ($spec['legacy'] != $legacy_status) {
- continue;
- }
-
- $result->key = $key;
- $result->spec = $spec;
- break;
- }
-
- return $result;
- }
-
public static function getAll() {
$result = array();
diff --git a/src/applications/differential/editor/DifferentialTransactionEditor.php b/src/applications/differential/editor/DifferentialTransactionEditor.php
--- a/src/applications/differential/editor/DifferentialTransactionEditor.php
+++ b/src/applications/differential/editor/DifferentialTransactionEditor.php
@@ -535,27 +535,25 @@
return $xactions;
}
- $old_legacy_status = $revision->getLegacyRevisionStatus();
- $revision->setModernRevisionStatus($new_status);
- $new_legacy_status = $revision->getLegacyRevisionStatus();
- if ($new_legacy_status == $old_legacy_status) {
+ $old_status = $revision->getModernRevisionStatus();
+ if ($new_status == $old_status) {
return $xactions;
}
$xaction = id(new DifferentialTransaction())
->setTransactionType(
DifferentialRevisionStatusTransaction::TRANSACTIONTYPE)
- ->setOldValue($old_legacy_status)
- ->setNewValue($new_legacy_status);
+ ->setOldValue($old_status)
+ ->setNewValue($new_status);
$xaction = $this->populateTransaction($revision, $xaction)
->save();
$xactions[] = $xaction;
// Save the status adjustment we made earlier.
- // TODO: This can be a little cleaner and more obvious once storage
- // migrates.
- $revision->save();
+ $revision
+ ->setModernRevisionStatus($new_status)
+ ->save();
return $xactions;
}
diff --git a/src/applications/differential/storage/DifferentialTransaction.php b/src/applications/differential/storage/DifferentialTransaction.php
--- a/src/applications/differential/storage/DifferentialTransaction.php
+++ b/src/applications/differential/storage/DifferentialTransaction.php
@@ -41,10 +41,6 @@
}
}
- if ($xaction_type == 'differential:status') {
- return new DifferentialRevisionStatusTransaction();
- }
-
return parent::newFallbackModularTransactionType();
}
@@ -513,13 +509,8 @@
}
private function isStatusTransaction($xaction) {
- $old_status = 'differential:status';
- if ($xaction->getTransactionType() == $old_status) {
- return true;
- }
-
- $new_status = DifferentialRevisionStatusTransaction::TRANSACTIONTYPE;
- if ($xaction->getTransactionType() == $new_status) {
+ $status_type = DifferentialRevisionStatusTransaction::TRANSACTIONTYPE;
+ if ($xaction->getTransactionType() == $status_type) {
return true;
}
diff --git a/src/applications/differential/xaction/DifferentialRevisionStatusTransaction.php b/src/applications/differential/xaction/DifferentialRevisionStatusTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionStatusTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionStatusTransaction.php
@@ -6,11 +6,11 @@
const TRANSACTIONTYPE = 'differential.revision.status';
public function generateOldValue($object) {
- return $object->getLegacyRevisionStatus();
+ return $object->getModernRevisionStatus();
}
public function applyInternalEffects($object, $value) {
- $object->setLegacyRevisionStatus($value);
+ $object->setModernRevisionStatus($value);
}
public function getTitle() {
@@ -67,7 +67,7 @@
private function newStatusObject() {
$new = $this->getNewValue();
- return DifferentialRevisionStatus::newForLegacyStatus($new);
+ return DifferentialRevisionStatus::newForStatus($new);
}
}

File Metadata

Mime Type
text/plain
Expires
Thu, May 9, 11:40 PM (1 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6280375
Default Alt Text
D18419.id44263.diff (5 KB)

Event Timeline