protected function getParamsForEmailSubject()
 {
     assert('$this->model instanceof Task');
     $relatedModelStringValue = TasksUtil::resolveFirstRelatedModelStringValue($this->model);
     if ($relatedModelStringValue != null) {
         $relatedModelStringValue = '(' . $relatedModelStringValue . ')';
     }
     $params = array('{task}' => strval($this->model), '{relatedModel}' => $relatedModelStringValue);
     return $params;
 }
 /**
  * Gets email subject for the notification
  * @param Task $task
  * @param $action
  * @return string
  */
 public static function getTaskEmailSubject(Task $task, $action)
 {
     assert('$task instanceof Task');
     $relatedModelStringValue = TasksUtil::resolveFirstRelatedModelStringValue($task);
     if ($relatedModelStringValue != null) {
         $relatedModelStringValue = '(' . $relatedModelStringValue . ')';
     }
     $params = array('{task}' => strval($task), '{relatedModel}' => $relatedModelStringValue);
     if ($action == self::TASK_NEW) {
         return Zurmo::t('TasksModule', 'ASSIGNMENT {relatedModel}: {task}', $params);
     } elseif ($action == self::TASK_STATUS_BECOMES_AWAITING_ACCEPTANCE) {
         return Zurmo::t('TasksModule', 'DELIVERED {relatedModel}: {task}', $params);
     } elseif ($action == self::TASK_STATUS_BECOMES_COMPLETED) {
         return Zurmo::t('TasksModule', 'ACCEPTED {relatedModel}: {task}', $params);
     } elseif ($action == self::TASK_STATUS_BECOMES_REJECTED) {
         return Zurmo::t('TasksModule', 'REJECTED {relatedModel}: {task}', $params);
     } elseif ($action == self::TASK_OWNER_CHANGE) {
         return Zurmo::t('TasksModule', 'ASSIGNMENT {relatedModel}: {task}', $params);
     } elseif ($action == self::TASK_NEW_COMMENT) {
         return Zurmo::t('TasksModule', 'NEW COMMENT {relatedModel}: {task}', $params);
     }
 }
 /**
  * @covers resolveFirstRelatedModel
  * @covers resolveFirstRelatedModelStringValue
  * @covers castDownActivityItem
  */
 public function testResolveFirstRelatedModelForProject()
 {
     Yii::app()->user->userModel = User::getByUsername('super');
     $project = ProjectTestHelper::createProjectByNameForOwner('MyRelatedProject', Yii::app()->user->userModel);
     $dueStamp = DateTimeUtil::convertTimestampToDbFormatDateTime(time() + 10000);
     $task = new Task();
     $task->name = 'MyFirstRelatedTask';
     $task->dueDateTime = $dueStamp;
     $task->project = $project;
     $this->assertTrue($task->save());
     $id = $task->id;
     unset($task);
     $task = Task::getById($id);
     $model = TasksUtil::resolveFirstRelatedModel($task);
     $this->assertEquals('MyRelatedProject', $model->name);
     $content = TasksUtil::resolveFirstRelatedModelStringValue($task);
     $this->assertEquals('MyRelatedProject', $content);
 }