getFieldName(); } public function renderPropertyViewValue(array $handles) { $viewer = $this->getViewer(); $src_phid = $this->getObject()->getPHID(); $edge_type = PhabricatorObjectHasAsanaTaskEdgeType::EDGECONST; $query = id(new PhabricatorEdgeQuery()) ->withSourcePHIDs(array($src_phid)) ->withEdgeTypes(array($edge_type)) ->needEdgeData(true); $edges = $query->execute(); if (!$edges) { return null; } $edge = head($edges[$src_phid][$edge_type]); if (!empty($edge['data']['gone'])) { return phutil_tag( 'em', array(), pht('Asana Task Deleted')); } $ref = id(new DoorkeeperImportEngine()) ->setViewer($viewer) ->withPHIDs(array($edge['dst'])) ->needLocalOnly(true) ->executeOne(); if (!$ref) { return null; } return id(new DoorkeeperTagView()) ->setExternalObject($ref->getExternalObject()); } }