1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-27 09:12:41 +01:00

Fix an issue with viewing an empty board with milestone columns

Summary:
Ref T10010.

  - Viewing an empty board with milestone columns did a meaningless edge query. Don't do that.
  - When creating the first milestone of a parent, force the indexing engine to rematerialize it inline. This sets `hasMilestones` properly. Otherwise, the daemons may take some time to fix this in the indexer.

Test Plan:
  - Viewed an empty board of a project with a milestone.
  - Viewed a normal board.
  - Created the first milestone of a project with a big queue of daemons, saw project state immediately fully reflect the project having milestones.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10010

Differential Revision: https://secure.phabricator.com/D15206
This commit is contained in:
epriestley 2016-02-06 21:19:10 -08:00
parent 73f5ff0659
commit d9bd062bba
2 changed files with 7 additions and 1 deletions

View file

@ -631,6 +631,7 @@ final class PhabricatorProjectTransactionEditor
} }
break; break;
case PhabricatorProjectTransaction::TYPE_PARENT: case PhabricatorProjectTransaction::TYPE_PARENT:
case PhabricatorProjectTransaction::TYPE_MILESTONE:
$materialize = true; $materialize = true;
$new_parent = $object->getParentProject(); $new_parent = $object->getParentProject();
break; break;
@ -669,6 +670,11 @@ final class PhabricatorProjectTransactionEditor
->rematerialize($object); ->rematerialize($object);
} }
if ($new_parent) {
id(new PhabricatorProjectsMembershipIndexEngineExtension())
->rematerialize($new_parent);
}
return parent::applyFinalEffects($object, $xactions); return parent::applyFinalEffects($object, $xactions);
} }

View file

@ -435,7 +435,7 @@ final class PhabricatorBoardLayoutEngine extends Phobject {
// If we have proxies, we need to force cards into the correct proxy // If we have proxies, we need to force cards into the correct proxy
// columns. // columns.
if ($proxy_map) { if ($proxy_map && $object_phids) {
$edge_query = id(new PhabricatorEdgeQuery()) $edge_query = id(new PhabricatorEdgeQuery())
->withSourcePHIDs($object_phids) ->withSourcePHIDs($object_phids)
->withEdgeTypes( ->withEdgeTypes(