/** * Update schemas of collection issue and issueActivity. */ public function actionMigrate() { echo "Begin to update collection issue\n"; // Update collection issue $issues = Issue::find()->all(); foreach ($issues as &$issue) { $creator = $issue->creator; if (!$creator instanceof \mongoId) { $issue->creator = new \MongoId($creator['id']); } if (!isset($issue->origin)) { $issue->origin = IssueUser::HELPDESK; } if (!empty($issue->assignee)) { $assignee = $issue->assignee; if (!$assignee instanceof \MongoId) { $issue->assignee = new \MongoId($assignee['id']); } } $issue->update(); } echo "Successfully updated collection issue.\n"; echo "Begin to update collection issueActivity\n"; // Update collection issueActivity $issueActivities = IssueActivity::find()->all(); foreach ($issueActivities as $activity) { $creator = $activity->creator; if (!$creator instanceof \mongoId) { $activity->creator = new \MongoId($creator['id']); } $activity->save(); } echo "Successfully updated collection issueActivity.\n"; echo "Complete migration.\n"; }
public function getActivities() { return $this->hasMany(IssueActivity::className(), ['issueId' => '_id'])->orderBy(['createdAt' => SORT_ASC]); }
private function _createActivity($issue, $description = null) { $issueActivity = new IssueActivity(); $issueActivity->issueId = $issue['_id']; $issueActivity->description = $description; if ($issue->status === Issue::STATUS_OPEN) { $issueActivity->creator = $issue->creator; } else { $issueActivity->creator = $this->_getCurrentUser(); } switch ($issue->status) { case Issue::STATUS_OPEN: $issueActivity->action = IssueActivity::ACTION_CREATE; break; case Issue::STATUS_ASSIGNED: $issueActivity->action = IssueActivity::ACTION_CLAIM; break; case Issue::STATUS_RESOLVED: $issueActivity->action = IssueActivity::ACTION_RESOLVE; break; case Issue::STATUS_CLOSED: $issueActivity->action = IssueActivity::ACTION_CLOSE; break; default: $issueActivity->action = IssueActivity::ACTION_COMMENT; break; } $issueActivity->save(); $issueActivity->creator = $issueActivity->creatorDetail; return $issueActivity; }