/**
  * 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";
 }
Beispiel #2
0
 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;
 }