mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-02 01:48:23 +01:00
Always use the same set of transactions to generate mail and mail tags
Summary: See PHI307. Currently, when reviews undraft, we retroactively add in older activity to the mail ("alice created this revision..."). However, we don't add that activity to the mail tags, so the relevant tags (like "revision created") are dropped forever. Instead, use the same set of transactions for both mail body and mail tag construction. This should be obsoleted in the relatively near future by T10448, but it's a better/more correct behavior in general and we probably can't get rid of tags completely for a while. Test Plan: Applied patch, created a revision with builds, saw it auto-undraft after builds finished. Used `bin/mail list-outbound` and `bin/mail show-outbound` to see the mail. Verified that it included retroactive text ("created this revision") AND retroactive tags. Note that the tag for "A new revision is created" is `DifferentialTransaction::MAILTAG_REVIEW_REQUEST` with literal value `differential-review-request`. Reviewers: amckinley Reviewed By: amckinley Differential Revision: https://secure.phabricator.com/D18941
This commit is contained in:
parent
ad7755d9a9
commit
fd66ab5579
2 changed files with 24 additions and 10 deletions
|
@ -700,20 +700,26 @@ final class DifferentialTransactionEditor
|
|||
->addHeader('Thread-Topic', $thread_topic);
|
||||
}
|
||||
|
||||
protected function buildMailBody(
|
||||
protected function getTransactionsForMail(
|
||||
PhabricatorLiskDAO $object,
|
||||
array $xactions) {
|
||||
|
||||
$viewer = $this->requireActor();
|
||||
|
||||
// If this is the first time we're sending mail about this revision, we
|
||||
// generate mail for all prior transactions, not just whatever is being
|
||||
// applied now. This gets the "added reviewers" lines and other relevant
|
||||
// information into the mail.
|
||||
if ($this->isFirstBroadcast()) {
|
||||
$xactions = $this->loadUnbroadcastTransactions($object);
|
||||
return $this->loadUnbroadcastTransactions($object);
|
||||
}
|
||||
|
||||
return $xactions;
|
||||
}
|
||||
|
||||
protected function buildMailBody(
|
||||
PhabricatorLiskDAO $object,
|
||||
array $xactions) {
|
||||
|
||||
$viewer = $this->requireActor();
|
||||
|
||||
$body = new PhabricatorMetaMTAMailBody();
|
||||
$body->setViewer($this->requireActor());
|
||||
|
||||
|
|
|
@ -2546,6 +2546,12 @@ abstract class PhabricatorApplicationTransactionEditor
|
|||
return $messages;
|
||||
}
|
||||
|
||||
protected function getTransactionsForMail(
|
||||
PhabricatorLiskDAO $object,
|
||||
array $xactions) {
|
||||
return $xactions;
|
||||
}
|
||||
|
||||
private function buildMailForTarget(
|
||||
PhabricatorLiskDAO $object,
|
||||
array $xactions,
|
||||
|
@ -2566,17 +2572,19 @@ abstract class PhabricatorApplicationTransactionEditor
|
|||
return null;
|
||||
}
|
||||
|
||||
$mail = $this->buildMailTemplate($object);
|
||||
$body = $this->buildMailBody($object, $xactions);
|
||||
$mail_xactions = $this->getTransactionsForMail($object, $xactions);
|
||||
|
||||
$mail_tags = $this->getMailTags($object, $xactions);
|
||||
$action = $this->getMailAction($object, $xactions);
|
||||
$mail = $this->buildMailTemplate($object);
|
||||
$body = $this->buildMailBody($object, $mail_xactions);
|
||||
|
||||
$mail_tags = $this->getMailTags($object, $mail_xactions);
|
||||
$action = $this->getMailAction($object, $mail_xactions);
|
||||
|
||||
if (PhabricatorEnv::getEnvConfig('metamta.email-preferences')) {
|
||||
$this->addEmailPreferenceSectionToMailBody(
|
||||
$body,
|
||||
$object,
|
||||
$xactions);
|
||||
$mail_xactions);
|
||||
}
|
||||
|
||||
$mail
|
||||
|
|
Loading…
Add table
Reference in a new issue