synergy/server/model/review/ReviewAssignment.php (108 lines of code) (raw):

<?php namespace Synergy\Model\Review; use Synergy\App\Synergy; use Synergy\Model\Action; use Synergy\Model\TestAssignment; /** * Description of ReviewAssignment * * @author vriha */ class ReviewAssignment { public $userId; public $userDisplayName; public $username; public $testRunId; public $testRunTitle; public $info; public $id; public $comments; public $deadline; public $lastUpdated; public $started; public $createdBy; public $reviewUrl; public $title; public $owner; public $isFinished; public $weight; public $timeTaken; public $numberOfComments; private $email; const CREATED_BY_TESTER = 2; const CREATED_BY_MANAGER_ADMIN = 1; const CREATED_BY_TRIBE_LEADER = 3; public static function canCreate() { $role = Synergy::getSessionProvider()->getUserRole(); switch ($role) { case "manager" : case "admin" : return true; default : return false; } } public function getEmail() { return $this->email; } public function setEmail($email) { $this->email = $email; } function addControls($role) { $this->controls = array(); array_push($this->controls, new Action("View comments", "view", "icon-eye-open")); switch ($this->createdBy) { case TestAssignment::CREATED_BY_TESTER: if ($this->username === Synergy::getSessionProvider()->getUsername() || $role === "admin" || $role === "manager") { array_push($this->controls, new Action("Delete", "delete", "icon-trash")); } break; case TestAssignment::CREATED_BY_MANAGER_ADMIN: if ($this->username === Synergy::getSessionProvider()->getUsername() || $role === "admin" || $role === "manager") { array_push($this->controls, new Action("Delete", "delete", "icon-trash")); } break; default: break; } } /** * Returns body of email that is supposed to be sent on new assignment creation * @return String */ public function getCreatedEmailBody() { return "Review URL: " . $this->reviewUrl . "\r\n Test run: " . $this->testRunTitle . " \r\n Finished by: " . $this->deadline; } public function getCreatedEmailBodyHTML() { return "<ul><li><b>Review URL:</b> <a href='" . $this->reviewUrl . "'>" . $this->reviewUrl . "</a></li><li><b>Test run:</b> <a href='" . SYNERGY_URL . "client/app/index.html#/run/" . $this->testRunId . "'>" . $this->testRunTitle . "</a> </li><li><b>Finished by:</b> " . $this->deadline . "</li></ul>"; } public function getFinishedEmailBody() { return "Title: " . $this->title . " \r\n URL: " . $this->reviewUrl . "\r\n Reviewed by: " . $this->userDisplayName . " (" . $this->username . ") \r\n \r\n Comments are available at " . SYNERGY_URL . "client/app/index.html#/review/" . $this->id . "/view"; } public function getFinishedEmailBodyHTML() { return "<ul><li><b>Title: </b> " . $this->title . "</li><li><b>URL:</b> <a href='" . $this->reviewUrl . "'>" . $this->reviewUrl . "</a></li><li><b>Reviewed by:</b> " . $this->userDisplayName . "(" . $this->username . ")</li></ul><br/>Comments are available <a href='" . SYNERGY_URL . "client/app/index.html#/review/" . $this->id . "/view'>here</a>"; } /** * Returns subject of email that is supposed to be sent on new assignment creation * @return String */ public function getCreatedEmailSubject() { return "New review assignment"; } public function getFinishedEmailSubject() { return "Tutorial reviewed"; } public function setLastUpdated($updatedDateTime) { $this->lastUpdated = ""; if (isset($updatedDateTime) && !is_null($updatedDateTime)) { date_default_timezone_set('UTC'); $str = strtotime($updatedDateTime); $this->lastUpdated = gmdate("d M Y H:i:s", $str) . " UTC"; } } public function setStarted($startedDateTime) { $this->started = ""; if (isset($startedDateTime) && !is_null($startedDateTime)) { date_default_timezone_set('UTC'); $str = strtotime($startedDateTime); $this->started = gmdate("d M Y H:i:s", $str) . " UTC"; } } public static function canDelete() { $role = Synergy::getSessionProvider()->getUserRole(); switch ($role) { case "manager" : case "admin" : return true; default : return false; } } }